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

Pandas中基于不同名称列合并DataFrame并保留指定列

解决方法

你的代码报错有两个核心问题:

  1. DF2中不存在ID列,你试图提取这个列会触发KeyError;DF2里和DF1的ID对应的关联字段是hiring_manager_id。
  2. 两个表的关联字段名称不一致,不能直接用on='ID'参数,需要分别指定左右表的关联字段。

正确代码示例

# 从DF2中选择需要的列(包含关联字段hiring_manager_id)
df2_selected = df2[['hiring_manager_id', 'hire_type', 'hiring_status', 'hiring_phase']]

# 执行左连接,指定左右表的关联字段
merged_df = pd.merge(df1, df2_selected, left_on='ID', right_on='hiring_manager_id', how='left')

# 可选:删除多余的hiring_manager_id列
merged_df = merged_df.drop('hiring_manager_id', axis=1)

代码说明

  • left_on='ID':指定DF1中用于关联的字段是ID
  • right_on='hiring_manager_id':指定DF2中用于关联的字段是hiring_manager_id
  • how='left':保留DF1的所有行,匹配不到DF2数据的行用NaN填充,和你想要的结果逻辑一致

执行后得到的结果与你预期完全匹配:

Name   ID    Job_Type      Emp_Type  hire_type hiring_status hiring_phase
0   Adam  101   Full-Time     Employee   Employee       Pending    Requested
1   Adam  101   Full-Time     Employee   Employee     Approved        Hired
2    Ben  102   Part-Time   Contractor        NaN          NaN          NaN
3  Cathy  103   Part-Time     Employee        NaN          NaN          NaN
4   Doug  104   Full-Time   Contractor        NaN          NaN          NaN
5  Emily  105   Full-Time     Employee Contractor     Approved     Approved

内容的提问来源于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.21 08:27:44