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

合并多个DataFrame时如何分组管理列避免命名混乱?

用Pandas多级列索引解决DataFrame合并的列分组问题

当然有完美的解决方案!你可以利用Pandas的**多级列索引(MultiIndex)**来实现——既不用给重复列名加后缀搞乱命名,还能轻松按原数据集分组访问所有列,完全匹配你的需求。

具体实现步骤

1. 准备测试数据

先还原你的示例数据:

import pandas as pd
import numpy as np

df1 = pd.DataFrame(data=np.random.randint(0,100,(2,5)),columns=list('ABCDE'))
df2 = pd.DataFrame(data=np.random.randint(0,100,(2,5)),columns=list('GHABC'))

2. 给每个DataFrame添加列层级标识

为每个原始DataFrame的列添加一个顶层索引,用来标记该列属于哪个原数据集(比如first_table、second_table):

# 给df1的列添加顶层索引
df1.columns = pd.MultiIndex.from_tuples([('first_table', col) for col in df1.columns])
# 给df2的列添加顶层索引
df2.columns = pd.MultiIndex.from_tuples([('second_table', col) for col in df2.columns])

3. 按索引合并并保留多级列索引

因为你需要按索引做outer合并,用pd.concat比merge更直接,它会自动保留多级列结构:

merged_df = pd.concat([df1, df2], axis=1, join='outer')

合并后的DataFrame列结构会是这样的(示例输出):

first_table          second_table         
            A   B   C   D   E          G   H   A   B   C
0          45  78  23  91  12          67  34  89  56  10
1          32  55  77  19  44          22  81  39  62  73

4. 轻松访问各数据集的列

有了多级索引,访问起来非常直观:

  • 访问第一个表的所有列:
    merged_df['first_table']
    
  • 访问第二个表的A列:
    merged_df['second_table']['A']
    # 或者更严谨的写法
    merged_df.loc[:, ('second_table', 'A')]
    
  • 遍历所有原数据集的列:
    for table_name in merged_df.columns.get_level_values(0).unique():
        print(f"=== 数据集 {table_name} 的列 ===")
        print(merged_df[table_name].columns.tolist())
    

适配循环合并场景

如果是在循环中处理多个DataFrame,可以批量给它们添加层级索引,再一次性合并:

# 假设你有一个DataFrame列表和对应的名称列表
dfs = [df1, df2, df3]  # df3是你的第三个DataFrame
table_names = ['first_table', 'second_table', 'third_table']

# 批量设置多级列索引
for df, name in zip(dfs, table_names):
    df.columns = pd.MultiIndex.from_tuples([(name, col) for col in df.columns])

# 合并所有DataFrame
final_merged_df = pd.concat(dfs, axis=1, join='outer')

为什么这个方法更好?

  • 完全保留原始列名,不会因为加后缀导致命名混乱;
  • 按原数据集分组的列结构更清晰,一眼就能区分列的来源;
  • 访问单个数据集的列或特定列的操作更简洁,不需要记忆复杂的后缀规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:32:47