为了熊猫.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
我使用指数加权平均值:
^{pr2}$ 这太好了!但是,权重是从上到下按指数递减的值应用的: 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
kel's solution上的变体。在
请注意
df[col].reindex(index=df.index[::-1])
达到类似的结果:
df[col].sort_index(ascending=False)
一个不同之处在于}将{}作为一个选项。因此,
reindex
改变了索引,而{sort_index
的一个优点是,与reindex
不同的是,您不需要在结尾处切换回原来的内容:df[col] = df[col].sort_index(ascending=False).ewm(...).mean()
还请注意,带有
sort_index
的解决方案当然假定索引值的顺序是正确的。如果他们没有,我不确定采取滚动平均数是否会 身体上有意义。在我找到了解决问题的办法。可以在应用ewm()之前和之后重新编制索引:
然后您可以再次应用:
^{pr2}$我还不确定这是不是最有效的方法。所以,如果有人有其他想法,我很想知道。在
相关问题 更多 >
编程相关推荐