我的日期框架包含日期时间和价格。
以下是随机选择的样本
In [2]: df
Out[2]:
price datetime
239035 5.05 2016-04-14 14:13:27
1771224 5.67 2016-08-30 14:19:47
2859140 4.00 2016-12-05 20:57:01
1311384 7.71 2016-07-08 18:16:22
141709 4.19 2016-04-07 13:30:00
2802527 3.94 2016-11-30 15:36:11
1411955 7.27 2016-07-20 13:55:20
2215987 4.87 2016-10-07 19:56:13
日期时间精确到秒。
我想计算从上午9:00到下午4:30结束的每15分钟的平均价格,并将新数据存储到新的数据框中。
我可以用旧时尚的方式做到,在每个日期的上午9点到下午4点半之间列出所有15分钟的时间间隔,并遍历CSV文件的每一行,检查它的时间并将其转储到适当的桶。然后找出每天每桶的平均值。
但我想知道在熊猫中是否有更好的方法可以做到这一点。如果不是的话,我就会蛮力通过它...
答案 0 :(得分:3)
您可以使用DataFrame.resample:
df2 = df.resample(rule='15Min', on='datetime').mean()
然后使用布尔索引过滤掉您不想要的时间。最好使用DateTimeIndex
:
df2 = df2.set_index('datetime', drop=False)
df2.between_time('9:00','16:30')