我正在为特定数量的时间段应用时间序列累积函数,比如 15 分钟到一系列天,我的主要函数是:def axmp(df): return np.cumsum(df.Volume * (df.High + df.Low + df.Close)/3) / np.cumsum(df.Volume)但是我无法通过pandas groupby方法将上述函数应用于由15分钟股票数据组成的pandas数据框。就像上面的函数一样,我想要在每个新的一天开始时重新设置上面的 python 函数(即它不应该采用前几天的任何累积数字)并且应该继续超过一年的股票数据。样本数据: Date Open High Low Close Volume13-02-2019 9:15 65.89 65.89 65.89 65.89 2433913-02-2019 9:30 66.00 66.00 66.00 66.00 189214-02-2019 11:15 65.98 65.98 65.98 65.98 193714-02-2019 11:30 65.95 66.01 65.95 66.01 518115-02-2019 9:15 66.04 66.08 66.04 66.08 6189请建议我对上述代码或新代码进行任何修改。
1 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
IIUC您需要axmp按天分组申请:
df.Date = pd.to_datetime(df.Date)
df['new_col'] = df.groupby(df.Date.dt.day).apply(axmp).reset_index(drop=True)
输出
Date Open High Low Close Volume new_col
0 2019-02-13 09:15:00 65.89 65.89 65.89 65.89 24339 65.890000
1 2019-02-13 09:30:00 66.00 66.00 66.00 66.00 1892 65.897934
2 2019-02-14 11:15:00 65.98 65.98 65.98 65.98 1937 65.980000
3 2019-02-14 11:30:00 65.95 66.01 65.95 66.01 5181 65.987279
4 2019-02-15 09:15:00 66.04 66.08 66.04 66.08 6189 66.066667
添加回答
举报
0/150
提交
取消