我想在多索引熊猫系列上执行聚合,如下所示:
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。我认为这是好的,因为他们不会对平均值做出贡献。我被困在这一个。
答案 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