我有一個按符號和日期索引的熊貓資料框(來自幣安 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' 是匹配日期列型別的日期時間物件)。
我可以通過以下方式使其作業:
df = df[df['date'] < utc_datetime]
如果日期不在索引中。
我已經調查了 df.filter(),閱讀了 Pandas 檔案,并在發布之前進行了廣泛的谷歌搜索(并搜索了 SO)。
如果這很明顯,我很抱歉,請指出正確的方向。
uj5u.com熱心網友回復:
使用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://www.uj5u.com/ruanti/357484.html
上一篇:特定位置字符的識別和轉換
