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

多层索引DataFrame按A、B索引分组求和的实现方法

解决多级索引DataFrame按多个层级分组求和的问题

嘿,这个问题我刚上手多级索引的时候也踩过类似的坑!其实pandas完全支持同时按多个索引层级分组,不用费劲把索引转成普通列,给你几个直接能用的方案:

方法一:按索引名称指定分组层级

如果你的多级索引层级名称就是'A'、'B'、'C',直接把要分组的层级名称放进列表传给groupby的level参数就行,精准又直观:

# 按A和B层级分组,对Quantity列求和
sum_result = df.groupby(level=['A', 'B'])['Quantity'].sum()

执行后,结果会以'A'和'B'作为多级索引,对应的值就是每个组合下Quantity的总和,完全符合你的需求。

方法二:按索引位置指定分组层级

要是你记不清层级名称,也可以用层级的位置序号(从0开始计数)来指定,比如'A'是第0层,'B'是第1层:

# 按第0、1层(对应A、B)分组求和
sum_result = df.groupby(level=[0, 1])['Quantity'].sum()

这个方法和上面的效果完全一致,选哪种全看你自己的使用习惯。

可选方案:转索引为列后分组(适合新手过渡)

如果你更习惯用普通列来分组操作,也可以先把多级索引转成列,再按常规方式分组:

# 把所有索引层级转为普通列
df_with_cols = df.reset_index()
# 按A和B列分组求和
sum_result = df_with_cols.groupby(['A', 'B'])['Quantity'].sum()

这个方法多了一步重置索引,但对于刚接触多级索引的同学来说,逻辑会更熟悉。

最后可以打印sum_result看看结构,确认结果是不是你想要的~


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 09:29:06