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

Python中合并两个DataFrame时如何避免出现重复条目

问题原因分析
  • 仅对df1执行了去重操作,未对df2做去重处理。如果df2中同一个Site_ID存在多条重复记录,inner join时会和df1的单条记录生成多条匹配结果,这是最常见的重复原因。
  • 关联字段大小写不匹配。你的两个DataFrame关联字段命名为Site_ID(首字母大写),但merge语句中on参数填写的是小写的site_id,pandas字段名区分大小写,若字段名不匹配会导致关联逻辑异常。
  • 原始数据异常:你输出结果中出现的2354在原始输入中不存在,需确认是否为手误,或原始数据存在拼写错误、隐形空格等问题。
解决方法

首先先验证两个表的Site_ID重复情况:

# 查看df1的Site_ID重复记录数
print(df1['Site_ID'].duplicated().sum())
# 查看df2的Site_ID重复记录数
print(df2['Site_ID'].duplicated().sum())

再对两个表分别按关联字段去重后执行合并:

# 按关联字段去重,确保每个Site_ID仅对应一条记录
df1_distinct = df1.drop_duplicates(subset=['Site_ID'], keep='first')
df2_distinct = df2.drop_duplicates(subset=['Site_ID'], keep='first')

# 用正确的字段名执行内连接
merge_df_rf1 = pd.merge(df1_distinct, df2_distinct, on='Site_ID', how='inner')

# 若仍有重复,可对最终结果再做一次去重
merge_df_rf1 = merge_df_rf1.drop_duplicates()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:00:00