我有一个pandas数据帧(来自Binance API),按符号索引,然后按日期索引:
open high low close volume
symbol date
BTCUSDT 2017-08-17 4261.48 4485.39 4200.74 4285.08 795.150377
2017-08-18 4285.08 4371.52 3938.77 4108.37 1199.888264
2017-08-19 4108.37 4184.69 3850.00 4139.98 381.309763
2017-08-20 4120.98 4211.08 4032.62 4086.29 467.083022
2017-08-21 4069.13 4119.62 3911.79 4016.00 691.743060
... ... ... ... ...
2021-11-10 66947.67 69000.00 62822.90 64882.43 65171.504050
2021-11-11 64882.42 65600.07 64100.00 64774.26 37237.980580
2021-11-12 64774.25 65450.70 62278.00 64122.23 44490.108160
2021-11-13 64122.22 65000.00 63360.22 64380.00 22504.973830
2021-11-14 64380.01 65550.51 63576.27 65519.10 25705.073470我需要按日期进行过滤,比如date < '2021-11-11‘(其中'2021-11-11’是一个与date列类型匹配的datetime对象)。
我可以通过以下方式让它工作:
df = df[df['date'] < utc_datetime]
如果日期不在索引中。
我研究了df.filter(),阅读了pandas文档,并在发帖前用谷歌进行了大量搜索(并进行了搜索)。
如果这是显而易见的道歉,请给我指出正确的方向。
发布于 2021-11-16 07:54:20
使用MultiIndex.get_level_values
df = df[df.index.get_level_values('date') < utc_datetime]或MultiIndex.droplevel
df = df[df.index.droplevel(0) < utc_datetime]或者将MultiIndex转换为列,然后转换为不同的索引,因此转换为numpy数组:
df = df[df.reset_index()['date'].to_numpy() < utc_datetime]https://stackoverflow.com/questions/69985501
复制相似问题