使用pandas数据帧中的1分钟数据计算每5分钟返回一次

时间:2016-08-10 22:51:20

标签: python pandas

我有1分钟的价格数据作为Python pandas数据帧如下:

import matplotlib

我想计算5分钟的回报,即日志(09:35:00关闭/ 09:31:00开启),日志(09:40:00关闭/ 09 :35:00关闭),...,日志(15:55:00关闭/ 15:50:00关闭),日志(16:00:00关闭/ 15:55:00关闭)。

然后我想得到四次回报的总和。我怎样才能做到这一点?感谢。

如果我使用datafame.shift(5)然后计算返回值,我得到的是滚动的5分钟返回,这不是我想要的。

1 个答案:

答案 0 :(得分:0)

用户pd.TimeGrouper('5T')

df = df.set_index(df.Date + (df.Time - pd.to_datetime(df.Time.dt.date)))

cols = ['Open', 'High', 'Low', 'Close']
agg = np.log(df[cols]).groupby(pd.TimeGrouper('5T')).agg(['first', 'last'])
agg.stack(0).T.diff().dropna().squeeze().unstack()

enter image description here