Python pandas 计算 15 分钟内的平均价格

Tel*_*ies 2 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
Run Code Online (Sandbox Code Playgroud)

日期时间精确到秒。

我想每 15 分钟计算一次从上午 9:00 开始到下午 4:30 结束的平均价格,并将新数据存储到新数据框中。

我可以用老式的方式来做,列出每个日期上午 9 点到下午 4 点 30 分内所有 15 分钟的时间间隔,并遍历 CSV 文件的每一行,检查其时间并将其转储到适当的存储桶中。然后找到每天每个桶的平均值。

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

Jul*_*rec 6

您可以使用DataFrame.resample

df2 = df.resample(rule='15Min', on='datetime').mean()
Run Code Online (Sandbox Code Playgroud)

然后使用布尔索引过滤掉不需要的时间。最好使用DateTimeIndex

df2 = df2.set_index('datetime', drop=False)
df2.between_time('9:00','16:30')
Run Code Online (Sandbox Code Playgroud)