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

如何合并两个DataFrame公共列并删除第二个表的多余重复行

实现方案

你可以通过先对第二个DataFrame去重+左连接的方式完成需求,具体操作如下:

步骤1:预处理第二个DataFrame,按公共合并列去重

首先消除第二个DataFrame中公共列的重复值,避免合并时出现行数膨胀:

# 请将下述代码中的'id'替换为你实际使用的公共合并列名
# keep='first'表示保留重复行的第一条,可按需调整为'last'保留最后一条
df2_dedup = df2.drop_duplicates(subset='id', keep='first')

步骤2:执行左连接合并,保证结果行数和第一个DataFrame完全一致

使用pandas的merge方法指定左连接模式,会完全保留左表(第一个DataFrame)的所有行:

# df1为第一个DataFrame,on参数填写你的公共合并列名
result = pd.merge(left=df1, right=df2_dedup, on='id', how='left')

方案说明

  • 提前去重第二个DataFrame的公共列,避免因右表重复键值导致合并后行数多于左表
  • 左连接(how='left')会1:1保留左表全部行,右表没有匹配到的字段会自动填充NaN,完全符合你要求的最终表格行数和第一个DataFrame完全一致的规则
  • 如果不需要保留未匹配到的空值行,可在合并后增加result.dropna(subset=df2.columns),但这样会导致行数少于原左表,可按需选择

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:48:02