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

如何合并DataFrame并让匹配列并排显示?

实现方法

首先执行常规的合并操作:

import pandas as pd

df1 = pd.DataFrame(data={'key': ['a', 'b'], 'col1': [1, 2], 'col2': [3, 4]})
df2 = pd.DataFrame(data={'key': ['a', 'b'], 'col1': [5, 6], 'col2': [7, 8]})

merged_df = pd.merge(df1, df2, on=['key'])

接下来可以通过两种方式调整列顺序,实现对应列并排显示的需求:

方法一:手动指定列顺序(适合列数量少的场景)

直接写出期望的列名列表,对合并后的DataFrame重新索引:

desired_order = ['key', 'col1_x', 'col1_y', 'col2_x', 'col2_y']
merged_df = merged_df[desired_order]
print(merged_df)

输出结果:

key  col1_x  col1_y  col2_x  col2_y
0   a       1       5       3       7
1   b       2       6       4       8

方法二:自动生成列顺序(适合列数量多的场景)

如果有大量重复列名,手动指定效率低,可以通过提取列前缀自动生成成对的列顺序:

# 提取除key外的列名前缀,去重后保留原DataFrame的列顺序
cols_without_key = [col.split('_')[0] for col in merged_df.columns if col != 'key']
unique_cols = list(set(cols_without_key))
unique_cols.sort(key=lambda x: list(df1.columns).index(x))

# 构建目标列顺序
desired_order = ['key']
for col in unique_cols:
    desired_order.extend([f'{col}_x', f'{col}_y'])

# 重新索引调整列顺序
merged_df = merged_df[desired_order]
print(merged_df)

这种方式无需手动维护列名列表,不管新增多少重复列,都能自动按列名_x、列名_y的成对方式排列。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 22:50:43