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

如何用pandas多列匹配从另一DataFrame填充value列空值

实现方案

你可以直接用左连接一步完成赋值,不需要额外处理冗余字段,代码如下:

df1['value'] = df1[['first_name', 'last_name', 'dob']].merge(
    df2,
    on=['first_name', 'last_name', 'dob'],
    how='left'
)['value']

如果你的数据量较大,后续还有多次匹配需求,可以提前构造查找字典提升效率:

# 构造三匹配键为元组键的映射字典
lookup_map = df2.set_index(['first_name', 'last_name', 'dob'])['value'].to_dict()
# 映射填充
df1['value'] = df1.apply(
    lambda row: lookup_map.get((row['first_name'], row['last_name'], row['dob'])),
    axis=1
)

两种方案都不受两个表索引、行数差异的影响,匹配逻辑和Excel XLOOKUP完全一致,无匹配结果的行默认保留空值,符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:15:05