2024-05-13 20:25:36 发布
网友
用熊猫我可以计算
pandas.stats.moments.rolling_mean
pandas.stats.moments.ewma
但如何计算维基百科中描述的加权移动平均数(WMA)http://en.wikipedia.org/wiki/Exponential_smoothing。。。使用熊猫?
有计算WMA的pandas函数吗?
不,没有精确算法的实现。在这里创建了一个关于它的GitHub问题:
https://github.com/pydata/pandas/issues/886
我很乐意接受这个请求——实现应该是简单的Cython编码,并且可以集成到pandas.stats.moments
pandas.stats.moments
使用pandas,您可以结合使用.rolling()和.apply()计算加权移动平均值。 下面是一个具有3个权重和窗口=3的示例:
data = {'colA':random.randint(1, 6, 10)} df = pd.DataFrame(data) weights = np.array([0.5, 0.25, 0.25]) sum_weights = np.sum(weights) df['weighted_ma'] = (df['colA'] .rolling(window=3, center=True) .apply(lambda x: np.sum(weights*x) / sum_weights, raw=False) )
请注意,在.rolling()中,我使用了参数center=True。您应该检查这是否适用于您的用例,或者您是否需要center=False。
不,没有精确算法的实现。在这里创建了一个关于它的GitHub问题:
https://github.com/pydata/pandas/issues/886
我很乐意接受这个请求——实现应该是简单的Cython编码,并且可以集成到
pandas.stats.moments
使用pandas,您可以结合使用.rolling()和.apply()计算加权移动平均值。
下面是一个具有3个权重和窗口=3的示例:
请注意,在.rolling()中,我使用了参数center=True。您应该检查这是否适用于您的用例,或者您是否需要center=False。
相关问题 更多 >
编程相关推荐