Pandas 指数加权移动平均在固定时间窗口

问题描述

我正在尝试使用 Pandas ewm 函数进行指数加权移动平均,其中衰减是根据日期时间列的半衰期指定的。 Pandas ewm 函数的工作原理类似于 pandas expand 函数,因为它会滚动整个数据帧。但是,在我的情况下,我需要指定一个固定的时间窗口或偏移量,ewm 函数将在该时间窗口或偏移量上应用。换句话说,带有截止或“max_periods”参数的 ewma。

我的解决方案如下:

df = pd.DataFrame({'a': np.random.randint(5,size=24),'b': ["S","A"] * 12,'c': pd.date_range(start='1/1/2018',end='12/12/2018',freq='15D')})

df.groupby('b').rolling('60d',on='c')['a'].apply(lambda x: x.ewm(halflife='15d',times=x.index).mean().tail(1))

我的解决方案非常低效。寻找更快的东西。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)