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

Python中如何将一个DataFrame的ID匹配到另一个DataFrame的Name

问题解决:通过Name匹配DataFrame的ID值

问题场景

有两个DataFrame:

  • DF1包含ID和Name字段
  • DF2仅包含Name字段

需要根据Name字段将DF1中的ID匹配到DF2中,无匹配项的ID值设为Null。

DF1示例

ID       Name 
 1      John Doe 
 2      Mary Sue
 3      Josh Smith 
 4      Sarah Moore

DF2示例

Name  
Sarah Moore
John Doe
Josh Smith 
Mary Sue 
Josh Gordon

期望输出

ID       Name
 4      Sarah Moore
 1      John Doe
 3      Josh Smith
 2      Mary Sue
 NA     Josh Gordon 

错误代码分析

你之前尝试的代码存在参数错误:

df2 = df2.merge(df2,df1['ID'], on = 'Name', how = 'left')

这里第一个参数误写为df2(应该是df1),且不需要单独提取df1['ID'],直接传入完整的DF1即可。

正确解决方法

使用merge方法的左连接(how='left'),以DF2为基准保留所有记录,匹配DF1中对应的ID:

df_result = df2.merge(df1, on='Name', how='left')

说明

  • how='left':确保DF2的所有Name记录都被保留,即使在DF1中没有匹配项
  • 无匹配的ID会自动填充为NaN(对应你需求中的Null)
  • 执行后得到的结果与你期望的输出完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:52:05