python按照日期筛选pandas数据

问题:筛选出某一段时期的数据。例如,从2015年-2017年的数据中筛选出2015年的数据。
#导入数据包
import pandas as pd

stock = pd.read_excel("../DaPy_data.xlsx", "Stock")  #导入数据,包含2015-2017年的数据

print(stock['date']) #显示导入的数据

#设置起始时间
s_date = datetime.datetime.strptime('2015-01-01', '%Y-%m-%d').date()

设置结束时间
e_date = datetime.datetime.strptime('2015-12-30', '%Y-%m-%d').date()

#选取数据
stock_2015 = stock[(stock['date'] >= s_date) & (stock['date'] <= e_date)]

print(stock_2015)

如果运行上面的代码报错:TypeError: Invalid comparison between dtype=datetime64[ns] and date, 

原因是导入的数据的时间格式化为 datetime64[ns] , 而文中提到的开始时间和截止时间是date类型,所以将导入的数据时间格式化为date类型即可。

解决办法:将stock_2015 = stock[(stock['date']>= s_date) & (stock['date'] <= e_date)]更换为

stock_2015 = stock[(stock['date'].dt.date >= s_date) & (stock['date'].dt.date <= e_date)]

问题得到解决。

你可能感兴趣的:(python,pandas,开发语言)