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

如何合并pandas DataFrame中存在重复值的多级列索引层级?

多级列索引重复一级层级合并方案

现有构造的DF二级列索引中存在重复的一级层级origin,可通过以下代码合并同一一级层级下的所有子列,消除重复层级:

方法1:简洁分组转置实现

DF = DF.T.groupby(level=0).apply(lambda x: x.reset_index(level=0, drop=True)).T

执行逻辑:先将DataFrame转置,使原多级列索引变为行索引,按一级索引(level=0)分组后删除每组的重复一级索引,再转置回原结构即可自动合并同一一级层级下的所有二级子列。

方法2:手动重构列索引实现(逻辑更直观)

from collections import defaultdict
import pandas as pd

# 按一级列索引归类所有二级子列
col_mapping = defaultdict(list)
for l1, l2 in DF.columns:
    col_mapping[l1].append(l2)

# 构建新的无重复一级层级的多级列索引
new_cols = pd.MultiIndex.from_tuples(
    [(l1, l2) for l1 in col_mapping for l2 in col_mapping[l1]]
)

# 按新索引重排DataFrame
DF = DF.reindex(new_cols, axis=1)

处理完成后,origin一级层级下将包含a、b、e、f四个二级子列,destination层级保持不变,符合预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:27:03