python支持多索引数据帧选择

python支持多索引数据帧选择,python,csv,pandas,Python,Csv,Pandas,虽然我在这个话题上发现了很多问题,但我找不到解决这个问题的方法 我正在玩这个CSV文件,它包含了世卫组织TBC dat的子选择: 这提供了一个格式良好的数据框,按国家和年份排序,显示其中一个参数 现在,对于这种情况,我想要所有可用年份中每个国家“param”的平均值。使用df.mean() 显然,我可以使用循环来实现这一点,但我想有一种更聪明的方法。但是怎么做呢?如果我理解正确,您希望将级别传递给函数: In [182]: df.mean(level='country') Out[182]:

虽然我在这个话题上发现了很多问题,但我找不到解决这个问题的方法

我正在玩这个CSV文件,它包含了世卫组织TBC dat的子选择:

这提供了一个格式良好的数据框,按国家和年份排序,显示其中一个参数

现在,对于这种情况,我想要所有可用年份中每个国家“param”的平均值。使用
df.mean()


显然,我可以使用循环来实现这一点,但我想有一种更聪明的方法。但是怎么做呢?

如果我理解正确,您希望将级别传递给函数:

In [182]:

df.mean(level='country')
Out[182]:
                                                             param
country                                                           
Afghanistan                                           8391.312500 
Albania                                               183.888889  
Algeria                                               8024.588235 
American Samoa                                        1.500000    
....
West Bank and Gaza Strip                              12.538462   
Yemen                                                 4029.166667 
Zambia                                                13759.266667
Zimbabwe                                              12889.666667

[219 rows x 1 columns]

对不起,你想要的是df.mean(level=0)
?是的,这正是我想要的。。。谢谢
In [182]:

df.mean(level='country')
Out[182]:
                                                             param
country                                                           
Afghanistan                                           8391.312500 
Albania                                               183.888889  
Algeria                                               8024.588235 
American Samoa                                        1.500000    
....
West Bank and Gaza Strip                              12.538462   
Yemen                                                 4029.166667 
Zambia                                                13759.266667
Zimbabwe                                              12889.666667

[219 rows x 1 columns]