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

按指定列匹配合并两个同结构DataFrame的最优方法

实现方法

直接用pandas内置功能就能实现,不需要自定义函数或者硬编码列名,两种可选方案如下:

方案1:直接用merge的suffix参数(默认合并后仅保留1个a列)

如果不需要重复保留两个值完全相同的a列,用这个最简洁:

import pandas as pd

# 核心合并逻辑
new_df = pd.merge(
    left=df1,
    right=df2,
    on="a",  # 指定按a列匹配
    how="inner",  # 仅保留两张表都存在的a值对应行
    suffixes=("_1", "_2")  # 自动给重名列加对应后缀
)

方案2:预加后缀后合并(完全匹配你的预期输出格式)

如果需要保留两个带后缀的a列,和你给出的示例输出完全一致,用这个方案:

# 先给两个表所有列批量加后缀
df1_suf = df1.add_suffix("_1")
df2_suf = df2.add_suffix("_2")

# 按两个表的a列匹配合并
new_df = pd.merge(
    left=df1_suf,
    right=df2_suf,
    left_on="a_1",
    right_on="a_2",
    how="inner"
)

输出的new_df列顺序为a_1, b_1, c_1, a_2, b_2, c_2,和你给出的预期效果完全一致,且不管后续两个表的列怎么新增、调整,只要结构一致都能直接复用这段代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:57:00