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

Pandas两个DataFrame值匹配后新增对应Name列实现方法咨询

实现方案

你可以通过以下两种方式实现需求,优先推荐性能更高的字典映射方案:

方案1:字典映射(推荐)

先将第一个DataFrame转为Values到Name的映射字典,再对第二个DataFrame的匹配列做映射:

# 构建值到名称的映射字典
name_mapper = df1.set_index('Values')['Name'].to_dict()
# 新增Name列,匹配失败填充为not found
df3 = df2.assign(Name=df2['Values2'].map(name_mapper)).fillna({'Name': 'not found'})
# 若需要对齐期望的列顺序,补充以下代码
df3 = df3[['Values2', 'Name', 'Score', 'Address', 'Group', 'Remark', 'Grade']]

该方案逻辑简洁,大数据量下性能远高于循环或匹配判断方法。

方案2:左连接实现

也可以通过pandas的merge左连接实现:

# 左连接匹配字段
df3 = df2.merge(df1, left_on='Values2', right_on='Values', how='left')
# 填充未匹配的Name值,删除多余列
df3['Name'] = df3['Name'].fillna('not found')
df3 = df3.drop(columns=['Values'])
# 调整列顺序和期望输出一致
df3 = df3[['Values2', 'Name', 'Score', 'Address', 'Group', 'Remark', 'Grade']]

两种方案运行后输出的结果均和你给出的期望结构完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 04:24:04