如何在一天内的特定时间段应用累积 python 函数,然后从第二天开始重置

我正在为特定数量的时间段应用时间序列累积函数,比如 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   Volume

13-02-2019 9:15 65.89   65.89   65.89   65.89   24339

13-02-2019 9:30 66.00   66.00   66.00   66.00   1892

14-02-2019 11:15 65.98  65.98   65.98   65.98   1937

14-02-2019 11:30 65.95  66.01   65.95   66.01   5181

15-02-2019 9:15 66.04   66.08   66.04   66.08   6189

请建议我对上述代码或新代码进行任何修改。


炎炎设计
浏览 129回答 1
1回答

猛跑小猪

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_col0 2019-02-13 09:15:00  65.89  65.89  65.89  65.89   24339  65.8900001 2019-02-13 09:30:00  66.00  66.00  66.00  66.00    1892  65.8979342 2019-02-14 11:15:00  65.98  65.98  65.98  65.98    1937  65.9800003 2019-02-14 11:30:00  65.95  66.01  65.95  66.01    5181  65.9872794 2019-02-15 09:15:00  66.04  66.08  66.04  66.08    6189  66.066667
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python