我有一个刻度数据的数据框,我已将其重新采样为分钟数据。做一个 Vanilla
df.resample('1Min').ohlc().fillna(method='ffill')
super 简单。
我现在需要每天一次迭代重新采样的数据帧,但我无法找出最好的方法。
我尝试采用 1 分钟重新采样的数据帧,然后将其重新采样为“1D”,然后将其转换为列表以进行迭代和过滤,但这给了我一个列表:
Timestamp('2011-09-13 00:00:00', freq='D')
对象,它不会让我根据它来切片数据帧。
这看起来很简单,但我就是找不到答案。谢谢-
#sample data_1m dataframe
data_1m.head()
open high low close
timestamp
2011-09-13 13:53:00 5.8 6.0 5.8 6.0
2011-09-13 13:54:00 5.8 6.0 5.8 6.0
2011-09-13 13:55:00 5.8 6.0 5.8 6.0
2011-09-13 13:56:00 5.8 6.0 5.8 6.0
2011-09-13 13:57:00 5.8 6.0 5.8 6.0
...
#i want to get everything for date 2011-09-13 im trying
days_in_df = data_1m.resample('1D').ohlc().fillna(method='ffill').index.to_list()
data_1m.loc[days_in_df[0]]
KeyError: Timestamp('2011-09-13 00:00:00', freq='D')
最佳答案
这是我的两分钱。我不会重新采样数据,而是向框架添加另一个索引级别:
data_1m = data_1m.reset_index()
data_1m['date'] = data_1m['timestamp'].astype('datetime64[D]')
data_1m = data_1m.set_index(['date', 'timestamp'])
并选择一整天:
data_1m.loc['2011-09-13']
关于python - 从重新采样的数据框中一次选择一个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56977181/