在MultiIndex Pandas系列上执行聚合

时间:2018-01-31 21:34:29

标签: python pandas pandas-groupby

我想在多索引熊猫系列上执行聚合,如下所示:

revenue = 
date        person       shift      
2017-10-19  Adams        A           298.70
            Smith        B           593.46
                         B_Overtime  77.71
2017-10-20  Conner       A           473.08
            Adams        B           441.35
            Smith        C           392.97
2017-10-21  Adams        A           374.79
            Smith        B           169.02
            Conner       C           124.63

该系列是按日期,人员和班次收入的。我希望找到人和收入的平均收入,然后通过转移来收入。如果我做了像revenue.mean()那样的东西,它只给我一个数字,因为它是一个系列,并且可以让我们再次分组。我看着拆开系列,但这似乎让事情变得更糟,因为我有一堆0。我认为这是好的,因为他们不会对平均值做出贡献。我被困在这一个。

2 个答案:

答案 0 :(得分:2)

您可以在使用级别的多索引上使用groupby,比如说

df.groupby(level = [1,2]).mean()

答案 1 :(得分:2)

使用Series.mean(level=[...])

In [13]: s.mean(level=['person','shift'])
Out[13]:
person  shift
Adams   A             336.745
Smith   B             381.240
        B_Overtime     77.710
Conner  A             473.080
Adams   B             441.350
Smith   C             392.970
Conner  C             124.630
Name: val, dtype: float64