我有一个熊猫时间序列数据帧,其中包含较长时间内一天中每个小时的值,如下所示:
value
datetime
2018-01-01 00:00:00 38
2018-01-01 01:00:00 31
2018-01-01 02:00:00 78
2018-01-01 03:00:00 82
2018-01-01 04:00:00 83
2018-01-01 05:00:00 95
...
我想创建一个新的数据帧,其最小值在每天的 01:00 - 04:00 小时之间,但无法弄清楚如何做到这一点.. 我能想到的最接近的是:
df2 = df.groupby([pd.Grouper(freq='d'), df.between_time('01:00', '04:00')]).min()))
但这给了我:
值错误:"不是一维的石斑鱼
将DataFrame.between_time
与DataFrame.resample
一起使用:
df = df.between_time('01:00', '04:00').resample('d').min()
print (df)
value
datetime
2018-01-01 31
您的解决方案非常接近,只是链的功能不同:
df = df.between_time('01:00', '04:00').groupby(pd.Grouper(freq='d')).min()
print (df)
value
datetime
2018-01-01 31