使用滚动窗口计算指数加权移动平均值

时间:2020-02-24 19:22:44

标签: python pandas

我有一个数据框:

df = pd.DataFrame({'A': ['a','a','a','b','b','b'],
                   'B': [1,3,2,5,2,0],
                   'C': [1,1,1,1,1,0]
                  })
df 

    A   B   C
0   a   1   1
1   a   3   1
2   a   2   1
3   b   5   1
4   b   2   1
5   b   0   0

要计算A中每个组的指数加权移动平均值,我可以这样做:

df.groupby('A')['B'].apply(lambda x: x.ewm(halflife=12).mean())

0    1.000000
1    2.028873
2    2.018688
3    5.000000
4    3.456690
5    2.237302

具有指定的半衰期:

alpha

给出了计算详细信息here

我想做的是计算滚动窗口为2的每个组的指数加权移动平均值。

预期输出为:

0    1.000000
1    2.028873
2    2.485563
3    5.000000
4    3.456690
5    0.971127

这似乎不起作用:

df.groupby('A')['B'].apply(lambda x: x.rolling(2).ewm(halflife=12).mean())

但是,我希望看到一个涉及.rolling()方法的解决方案。

0 个答案:

没有答案