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

如何对带有MultiIndex列的Pandas DataFrame按外部key分组聚合

问题分析

你之前的merge写法失效,核心原因是拥有多级列的DataFrame A和单级列的DataFrame B合并后,列的层级结构不统一,groupby('key')无法正常识别单列作为分组键。

最优解法(无需合并)

因为A和B的行索引完全对齐,直接将B的key列作为分组依据传入groupby即可,会完整保留A的多级列结构:

import pandas as pd
result = A.groupby(B['key']).sum()

适配merge的写法

如果你的实际场景中两个表索引不完全对齐,必须走合并流程,可以调整写法如下:

# 合并后将key设置为行索引,再按索引层级分组求和
result = pd.merge(A, B, left_index=True, right_index=True)\
           .set_index('key')\
           .groupby(level='key').sum()

以上两种方法都可以得到你期望的输出结果:

foo    
    bar  baz
1     4    6
2    12   14

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:09:00