【发布时间】:2018-06-07 18:04:35
【问题描述】:
对于 pandas.DataFrame 示例:
In: cols = ['cols1', 'cols2']
In: df = pd.DataFrame({'col1': [1, 2, 3, 4], 'col2': [3, 4, 5, 6]})
Out: col1 col2
0 1 3
1 2 4
2 3 5
3 4 6
我使用的是指数加权平均值:
In: for i in range(len(df.columns)):
df[cols[i]] = df[cols[i]].ewm(com=None, span=None, halflife=None,
alpha=.8, min_periods=0, adjust=True,
ignore_na=False, axis=0).mean()
效果很好!然而,权重应用自上而下呈指数递减的值:
Out: col1 col2
0 1.000000 3.000000
1 1.833333 3.833333
2 2.774194 4.774194
3 3.756410 5.756410
我想知道是否有办法以相反的顺序(自下而上)应用权重。我想要的输出是:
Out: col1 col2
0 0.9391025 2.8173075
1 1.8494627 3.6982925
2 2.7499995 4.5833325
3 4.000000 6.000000
【问题讨论】:
-
你能发布你想要的输出吗?
-
我添加了所需的输出。我只想将权重以相反的顺序应用于数据。我最相关的数据位于表格底部,因此我希望它的权重最大。
标签: python pandas exponential weighted weighted-average