A | B | B_new
----| ---- |---------
1 | 1 | 1
1 | 2 | 1.5
1 | 3 | 2.25
2 | 2 | 2
2 | 4 | 3
2 | 6 | 4.5
我有一个数据框,我想用A计算B组的加权累积和。但我不知道如何应用转换。
$$new = C*cur+(1-C)*old$$
答案 0 :(得分:3)
您希望在apply
groupby
exponentially weighted moving average
df.assign(
B_new=df.groupby('A').B.apply(
lambda x: x.ewm(alpha=0.5, adjust=False).mean()
)
)
A B B_new
0 1 1 1.00
1 1 2 1.50
2 1 3 2.25
3 2 2 2.00
4 2 4 3.00
5 2 6 4.50