1. 导入pandas包
import pandas as pd
2. str转换为datetime
# 导入数据
df = pd.read_csv('stock.xlsx')
# 将'Date'列的字符串转换为python认识的日期格式
df['Date'] = pd.to_datetime(df['Date'])
此时运行:
type(df['Date'][0])
Python会告诉你,它的类型是“pandas._libs.tslibs.timestamps.Timestamp”
3. 获取datetime类型数据的年、月、日
# 获取年
df['Date'].dt.year
# 获取月
df['Date'].dt.month
# 获取日
df['Date'].dt.day
4. 时间段筛选
a. 仅根据年份进行筛选
# 以筛选出2022-2023年数据为例
df = df[df['Date'].dt.year.between(2022,2023)]
注意,此时between区间的左右端点都能被取到
b. 根据年、月进行筛选
# 筛选2022年1月-2023年12月的数据
df = df[(df['Date']>'2021-12-31') & (df['Date']<='2024-01-01')].reset_index(drop = True)
注意,此处不建议用以下代码
df = df[(df['Date']>='2022-01') & (df['Date']<'2024-01')].reset_index(drop = True)
这行代码:①不容易理解;②容易出错
简单来说,可以理解为'2022-01'表示2022年1月的第一天,'2024-01'为2024年1月的第一天,所以如果用这种写法,需要对①关系运算符和②时间都非常小心
如果确实需要使用,建议多进行排列组合,确保不会出错
c. 根据年、月、日进行筛选
直接套用上方“根据年、月进行筛选”的公式即可