数据框具有多个索引时的熊猫滚动均值计算

时间:2018-06-28 01:35:17

标签: pandas

我希望创建2个周期的熊猫滚动平均值。但是我的问题是,在每个期间内我都有一个类别,并且我想为每个类别创建一个单独的均值。 即

Period  AcctStatus  ACTBalance
31/01/2017  Active           100
            Default          200
28/02/2017  Active           300
            Default          240
31/03/2017  Active           450
            Default          300
30/04/2017  Active           150
            Default          100
31/05/2017  Active           150
            Default          500

前2个字段是我的索引。 我想要2个周期的滚动平均值,但是如果我只使用:

df['ACTBalance'].rolling(2).mean()

它仅计算两个相邻值的平均值。所以对于31/05/2017,对于Default,它将计算:(500 + 150)/ 2,但是我想要的是:(500 + 100)/ 2 我该如何实现?

1 个答案:

答案 0 :(得分:1)

您将需要groupby

df.groupby(level=1).ACTBalance.apply(lambda x : x.rolling(2).mean())
Out[96]: 
Period      AcctStatus
31/01/2017  Active          NaN
            Default         NaN
28/02/2017  Active        200.0
            Default       220.0
31/03/2017  Active        375.0
            Default       270.0
30/04/2017  Active        300.0
            Default       200.0
31/05/2017  Active        150.0
            Default       300.0
Name: ACTBalance, dtype: float64