如何在数据框中获取日期范围(也是索引)内的部分数据?

2024-04-20 03:55:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据框,我需要获取两个日期之间的所有SPREAD值(例如,2021-03-25和2021-03-29之间)

DATE                          SPREAD
2021-03-23 01:16:20.510064    -35.79
2021-03-23 01:16:20.948753    -33.82
2021-03-23 01:16:21.385717    -33.82
2021-03-23 01:16:21.818057    -33.82
2021-03-23 01:16:22.249897    -33.82
                               ...  
2021-04-06 15:46:39.193054   -117.73
2021-04-06 15:46:39.447869   -117.73
2021-04-06 15:46:39.701930   -117.73
2021-04-06 15:46:39.963806   -117.73
2021-04-06 15:46:40.212487   -117.73

这是我正在尝试的代码,当然它不起作用;它只给出一个空的数据帧:

data = pd.read_csv(r'filev2server.csv',index_col="DATE", parse_dates=True, delimiter=",")
filter = (data.index > start_date) & (data.index <= end_date)
data=data.loc[filter]

这是我预期的结果(从3月25日到3月29日):

DATE                          SPREAD
2021-03-25 00:00:00.209803    -15.18
2021-03-25 00:00:01.834820    -15.25
2021-03-25 00:00:02.269944    -14.25
2021-03-25 00:00:02.706196    -14.12
2021-03-25 00:00:03.140489    -14.55
                               ...  
2021-03-29 23:59:58.876018    -77.52
2021-03-29 23:59:59.110395    -77.52
2021-03-29 23:59:59.497492    -77.47
2021-03-29 23:59:59.727999    -76.85
2021-03-29 23:59:59.963468    -76.84

1条回答
网友
1楼 · 发布于 2024-04-20 03:55:33

转换索引^{},然后使用布尔索引:

start_date = '2021-03-25'
end_date = '2021-03-29'

data.index = pd.to_datetime(data.index)
data = data[(data.index > start_date) & (data.index <= end_date)]

相关问题 更多 >