获取多索引数据帧中数字列的平均值

时间:2019-07-28 12:10:15

标签: pandas mean multi-index

我想计算多索引数据帧中数值列的平均值,并将新结果附加到数据帧中作为新行。



        subject  1                  subject  2                  subject  3…
Country Unite   2017    2018    Frq 2017 Score  2018 Score  2017    2018    Frq 2017 Score  2018 Score  
Argentina   K   12  22  100 50.77214238 51.54316539 12  22  100 50.77214238 51.54316539 
Australia   K   68  13  150 66.92805676 67.60645268 68  13  150 66.92805676 67.60645268 
Mean            40  17.5    125 58.85009957 59.57480904 40  17.5    125 58.85009957 59.57480904 

我尝试使用此行,但是我得到了一个新行,其中包含nan

G20.loc['mean'] = G20.mean(axis=0, numeric_only=True)

Exmple of the datafram

谢谢

1 个答案:

答案 0 :(得分:0)

尝试一下:

np.random.seed(43)
df = pd.DataFrame(np.random.randint(0,10,(6,6)), columns = pd.MultiIndex.from_product([['Top A','Top B'],['W','X','Y']]))
df.loc['Mean',:] = df.mean()
print(df)

输出:

     Top A                    Top B                    
         W         X    Y         W         X         Y
0      6.0  3.000000  7.0  4.000000  6.000000  9.000000
1      2.0  6.000000  7.0  4.000000  3.000000  7.000000
2      7.0  2.000000  5.0  4.000000  1.000000  7.000000
3      5.0  1.000000  4.0  0.000000  9.000000  5.000000
4      8.0  0.000000  9.0  2.000000  6.000000  3.000000
5      8.0  2.000000  4.0  2.000000  6.000000  4.000000
Mean   6.0  2.333333  6.0  2.666667  5.166667  5.833333