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

如何基于两列匹配规则从第二个DataFrame更新首个DataFrame的列值

实现方案

核心使用pandas的左连接操作即可实现需求,支持df1中的重复行自动匹配:

  • 以df1为左表,df2为右表,指定name和surname两个列为匹配键,执行左连接
  • 左连接会完整保留df1的所有行,匹配上的记录自动填充df2里的account_id字段,未匹配的记录默认填充空值NaN,可按需替换为自定义占位符
  • 若df1原本已存在account_id列需要更新,可先删除原列再执行合并操作

示例代码

import pandas as pd

# 构造示例df1
df1 = pd.DataFrame({
    'name': ['john', 'mary', 'peter', 'mary', 'john', 'paul'],
    'surname': ['doe', 'doe', 'someone', 'doe', 'another', 'another']
})

# 构造示例df2
df2 = pd.DataFrame({
    'name': ['peter', 'john', 'mary', 'john'],
    'surname': ['someone', 'doe', 'doe', 'another'],
    'account_id': [100, 200, 300, 400]
})

# 核心合并逻辑
df1 = df1.merge(df2, on=['name', 'surname'], how='left')

# 可选:将未匹配的空值替换为自定义占位符
df1['account_id'] = df1['account_id'].fillna('<empty>')

# 输出结果
print(df1)

输出结果

name  surname account_id
0   john      doe        200
1   mary      doe        300
2  peter  someone        100
3   mary      doe        300
4   john  another        400
5   paul  another    <empty>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:57:03