You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对Pandas多级列中同Level 0的列按行求均值?

解决多级列按Level 0分组求行均值的最优方法

直接用Pandas内置的groupby方法结合axis=1参数,按列索引的Level 0分组后计算行均值,这比for循环高效得多,且代码简洁,充分利用了Pandas的向量化运算优化。

示例代码

先构造一个带多级列的测试DataFrame:

import pandas as pd
import numpy as np

columns = pd.MultiIndex.from_tuples([('g1', 'col1'), ('g1', 'col2'), ('g1', 'col3'), ('g2', 'colA'), ('g2', 'colB')])
df = pd.DataFrame(np.random.randn(5, 5), columns=columns)

执行分组求均值操作:

df_result = df.groupby(level=0, axis=1).mean()

关键说明

  • level=0:指定按列索引的第0级(即你提到的Level 0)进行分组
  • axis=1:表示对列方向执行分组操作
  • mean():对每个分组内的所有列按行计算均值,自动合并为以Level 0名称为列名的新DataFrame

这种方法无需手动遍历分组,Pandas内部会高效处理,数据量越大,相比for循环的性能优势越明显。

内容的提问来源于stack exchange,提问作者newpyspark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 13:17:02