如何创建熊猫滚动功能?

时间:2019-12-20 07:24:28

标签: python pandas rolling-computation

我现在将python和pandas一起使用,我想创建该函数以将其应用于pandas的滚动方法。

我想为列滚动创建滚动平均重量。

我尝试了下面的代码,我要应用“ weight”数组(最接近的值会产生最大的影响)

from pandas.core.window import _Rolling_and_Expanding
def weighted_mean(df):
    weight = np.asarray([0.05,0.1,0.15,0.175,0.525])
    x = np.dot(df,weight)
    result = x/len(weight)
    return pd.Series(result, index=['weightedMean'])

_Rolling_and_Expanding.weighted_mean = weighted_mean

但是,当应用于滚动功能时

df['weightedMean'] = df.return_.rolling(5).weighted_mean()

它显示了错误

----> 5     x = np.dot(df,weight)
      6     result = x/len(weight)
      7     return pd.Series(result, index=['weightedMean'])

<__array_function__ internals> in dot(*args, **kwargs)

TypeError: unsupported operand type(s) for *: 'Rolling' and 'float'

有人可以给我指路吗?非常感谢!

0 个答案:

没有答案