我有这个数据框架(这里相关的是Multiindex):
VAL
FINT ID
2021-07-01 00:00:00 C7 32.0
C6 38.0
C5 94.0
2021-07-01 12:00:00 C7 28.0
C6 34.0
C5 95.0
2021-07-02 00:00:00 C7 29.0
C6 33.0
C5 22.1
2021-07-02 12:00:00 C7 29.0
C6 33.0
C5 62.2
...
我想创建一个新的数据框架,选择数据小时12。我想用query
,但我不知道如何选择小时内查询选择。我的意思是,我在搜索像
df.query('FINT.hour == 12')
,它不工作(而像df.query('ID=="C7"')
工作得很好)。我用的是熊猫1.2.4。Thx .
对于我的工作选择水平在MultiIndex像Series
与.dt
:
df = df.query('FINT.dt.hour == 12')
print (df)
VAL
FINT ID
2021-07-01 12:00:00 C7 28.0
C6 34.0
C5 95.0
2021-07-02 12:00:00 C7 29.0
C6 33.0
C5 62.2
使用布尔索引的解决方案是:
df[df.index.get_level_values('FINT').hour == 12]
您也可以尝试从第一层获取datetime值,并使用DatetimeIndex.indexer_at_time
来获取一天中特定时间值的索引位置。
out = df.iloc[df.index.get_level_values(0).indexer_at_time('12:00')]
print(out)
VAL
FINT ID
2021-07-01 12:00:00 C7 28.0
C6 34.0
C5 95.0
2021-07-02 12:00:00 C7 29.0
C6 33.0
C5 62.2