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

Pandas如何匹配两个不同DataFrame的ID并替换对应Department值

高效实现方案

以下两种都是基于pandas原生矢量化操作的实现,效率远高于自定义循环遍历,适合任意量级的数据处理:

方法1:使用map映射更新(最简洁)

核心逻辑是先将df2转为ID到Department的映射关系,再匹配df1的ID完成更新,未匹配到的ID自动保留原值:

# 构建ID到新部门的映射序列
dept_mapper = df2.set_index('ID')['Department']
# 匹配更新,未匹配到的保留原有Department值
df1['Department'] = df1['ID'].map(dept_mapper).fillna(df1['Department'])

方法2:使用update方法更新(适合多列更新场景)

pandas内置的update方法天生支持仅更新匹配索引的对应值,无需额外判断:

# 临时将ID设为索引用于匹配
df1_idx = df1.set_index('ID')
df2_idx = df2.set_index('ID')
# 仅更新匹配到的ID对应的Department值,其余数据不改动
df1_idx.update(df2_idx['Department'])
# 恢复原始索引结构
df1 = df1_idx.reset_index()

两种方法运行后得到的结果和你给出的预期输出完全一致:匹配到的ID1234、2356的Department会被替换为df2中的对应值,其余行数据保持不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:45:03