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

Pandas如何对层级结构DataFrame的二级列按一级列分组求和

实现代码

你可以直接基于多级列索引的层级分组求和,代码非常简洁:

import pandas as pd
# 原始DataFrame构造逻辑
df = pd.DataFrame(data=[[1,2,4,5,1,2], [7,8,10,11,7,8], [13,14,16,17,4,5]], index=pd.date_range('2004-01-01', '2004-01-03'))
df.columns = pd.MultiIndex.from_product([['x', 'y', 'z'], list('ab')])

# 核心求和逻辑
res = df.groupby(level=0, axis=1).sum()

如果你偏好遍历一级列逐个计算的写法,也可以用字典推导式生成结果,效果完全一致:

res = pd.DataFrame({level1_col: df[level1_col].sum(axis=1) for level1_col in df.columns.unique(level=0)})

输出结果

运行后得到的res结构如下:

日期xyz
2004-01-01393
2004-01-02152115
2004-01-0327339

逻辑说明

  • axis=1指定按列维度做分组操作
  • level=0指定取多层列索引的第一层(也就是x/y/z一级列)作为分组依据
  • 求和后会自动将一级列名作为结果的列名,完全符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 02:51:02