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

Pandas两DataFrame按ID匹配替换对应列值的实现问题

pandas ID列匹配替换解决方案

方案1:Series映射替换(推荐,适配你的场景)

该方案无需转换字典,仅通过pandas原生索引映射实现,资源消耗极低,完全适配你当前的数据规模:

# 构建ID到ACC的映射Series
id_mapper = df2.set_index('ID')['ACC']
# 对df1的ID列做匹配替换,未匹配到的取值保留原值
df1['ID'] = df1['ID'].map(id_mapper).fillna(df1['ID'])

方案2:左连接替换(适合后续多列扩展匹配场景)

如果后续需要匹配df2的多列数据,可以用左连接的方式实现:

# 左连接匹配两个DataFrame的ID列
df1 = df1.merge(df2, on='ID', how='left')
# 用匹配到的ACC值覆盖原ID列,未匹配到的保留原值
df1['ID'] = df1['ACC'].fillna(df1['ID'])
# 删除临时生成的ACC列
df1.drop('ACC', axis=1, inplace=True)

性能说明

你当前的df2仅3652行,两种方案都可以秒级运行,不会出现性能瓶颈。其中方案1的映射Series内存占用仅为同规模字典的30%左右,完全不存在你之前遇到的转字典数据量过大的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:27:02