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

pandas使用merge做左连接时相同行数据重复填充如何解决?

问题根因

你遇到的合并后数据重复是因为右表data2的关联键Accountn存在重复值:pandas的merge操作会对关联键做笛卡尔积匹配,左表data1的每一行会匹配右表中所有Accountn相同的行,你当前每条数据重复3次,说明你读取的data2.csv里每个Accountn对应了3条重复数据,虽然你给出的示例中data2是去重的,但实际文件中存在重复。

验证方法

运行以下代码确认右表重复情况:

# 查看data2中Accountn列的重复行数
print(data2['Accountn'].duplicated().sum())

如果输出结果大于0,即可确认是右表重复导致的问题。

解决方案

方案1:先对右表去重再合并(优先推荐,性能更高)

在合并前先对data2的关联键去重,保证每个Accountn仅保留1条数据:

import pandas as pd

data1 = pd.read_csv('data1.csv')
data2 = pd.read_csv('data2.csv')
data1.rename(columns={'acc_name':'Accountn'},inplace = True)
# 新增:对data2的Accountn去重,保留第一个匹配的status
data2_unique = data2[['Accountn','status']].drop_duplicates(subset='Accountn', keep='first')
final = pd.merge(data1, data2_unique, on=['Accountn'], how='left')

方案2:合并完成后整体去重

如果确认合并后的重复行是完全一致的,也可以合并后直接对结果去重:

final = pd.merge(data1,data2[['Accountn','status']],on=['Accountn'],how='left').drop_duplicates()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:36:03