Python熊猫在15分钟内计算平均价格

时间:2016-12-09 18:28:16

标签: python pandas

我的日期框架包含日期时间和价格。

以下是随机选择的样本

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文件的每一行,检查它的时间并将其转储到适当的桶。然后找出每天每桶的平均值。

但我想知道在熊猫中是否有更好的方法可以做到这一点。如果不是的话,我就会蛮力通过它...

1 个答案:

答案 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')