如何在Pandas中计算二级多索引列的均值?
在Pandas中计算二级列的均值方法
示例数据构造
先还原你提供的多级列DataFrame:
import pandas as pd data = { ('bar', 'one'): [1, -1], ('bar', 'two'): [2, -2], ('baz', 'one'): [3, -3], ('baz', 'two'): [4, -4], ('foo', 'one'): [5, -5], ('foo', 'two'): [6, -6] } df = pd.DataFrame(data, index=['aaa', 'bbb'])
生成的DataFrame如下:
bar baz foo one two one two one two aaa 1 2 3 4 5 6 bbb -1 -2 -3 -4 -5 -6
解决方案代码
要计算二级列(one、two)的均值,按列索引的第二级分组后求均值即可:
result = df.groupby(level=1, axis=1).mean()
结果验证
运行后得到的结果与预期一致:
one two aaa 3 4 bbb -3 -4
原理说明
level=1:指定按列索引的第二层级(即one、two这一级)进行分组axis=1:表示沿着列的方向执行分组操作mean():对每个分组内的数值计算均值,最终合并为二级列对应的结果
内容的提问来源于stack exchange,提问作者YeongHwa Jin
相关产品推荐
相关产品推荐

