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

如何使用Pandas合并DataFrame按Location ID匹配填充Location列

Pandas实现按ID匹配填充字段的方法

你的需求是典型的左连接匹配场景,不需要复杂操作,3步就能完成,且能保证最终结果行数和原DF1完全一致:

  • 预处理映射表DF2
    DF2本身带有Date字段,直接合并会生成Date_x/Date_y的重名列,且你只需要DF2里的Location ID和Location两列做映射,先做裁剪+去重,避免合并后行数膨胀:
    # 只保留关联键和需要填充的字段,同ID去重
    df2_map = DF2[['Location ID', 'Location']].drop_duplicates(subset='Location ID', keep='first')
    
  • 执行左连接合并
    以DF1为左表,用Location ID作为关联键做左连接,会自动为DF1每一行匹配对应Location值,不会丢失DF1的任何行:
    result_df = DF1.merge(df2_map, on='Location ID', how='left')
    
  • 结果校验
    合并完可以做两步简单校验,确认结果符合预期:
    # 校验行数是否和原DF1的12万行一致
    assert len(result_df) == len(DF1), "合并后行数异常,请检查DF2是否有重复ID"
    # 统计未匹配到Location的行数,大于0说明DF2缺少对应ID的映射
    missing_count = result_df['Location'].isna().sum()
    print(f"未匹配到地点的行数:{missing_count}")
    

常见匹配失败原因:两表的Location ID格式不统一,比如一个是数字类型、一个是字符串类型,或者字符串前后带多余空格,遇到空值优先核对两表ID的格式一致性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:30:39