pandas df.mean用于跨轴0的多索引

时间:2017-03-08 13:53:23

标签: python pandas dataframe

对于某些多索引(index_col [1]),如何获得0轴的平均值?我有

DF:

         1   2   3 
 h   a   1   4   8
 h   b   5   4   6
 i   a   9   3   6
 i   b   5   2   5
 j   a   2   2   2
 j   b   4   4   4

我想创建df1 - 轴0的第二个索引值的平均值('a','b','a','b')

df1:

          1    2    3 
   0  a   4    3    5.3
   1  b   4.6  3.3  5

我知道我可以选择某些行

df.loc[['a','b']].mean(axis=0) 

但我不确定这与多索引数据帧的关系如何?

1 个答案:

答案 0 :(得分:4)

我认为您需要使用mean的第二级groupby

print (df.groupby(level=1).mean())
          1         2         3
a  4.000000  3.000000  5.333333
b  4.666667  3.333333  5.000000

如果需要round值:

print (df.groupby(level=1).mean().round(1))
     1    2    3
a  4.0  3.0  5.3
b  4.7  3.3  5.0