python - 如何创建熊猫滚动的功能?
问题描述
我现在正在使用 python 和 pandas,我想创建一个函数来应用 pandas 的滚动方法。
我想为列滚动创建滚动重量平均值。
我已经尝试了下面的代码,我想要应用“权重”数组(最接近的值将产生最大的影响)
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'
有人可以给我指路吗?非常感谢!!
解决方案
推荐阅读
- python - ModuleNotFoundError:没有命名的模块
点安装后 - jquery - 如何解决解析错误:Unexpected token using vuejs(由加减代码重新显示为stackoverflow中的参考)
- javascript - 如何在 Rails 6 中禁用 TurboLinks?
- r - 计数数据框 R 中的事件
- python - Tensorflow:如何在多类分类中使用 tf.keras.metrics?
- excel - 将超链接添加到一列
- excel - 数组的等级评估
- spring - 如何使用 Spring PropertyPlaceholderConfigurerconfiguration 获取 JSP 中的属性值作为布尔值进行条件检查
- javascript - 在 ES6 中编写 Maps/Sets 的更简单方法(编译器还是语法糖?)
- sql - 结果为左连接条件的情况