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

求助:基于Ids列合并行数不同的两个DataFrame的正确方法

按匹配Ids合并两个DataFrame的正确方法

你的需求是保留两个DataFrame中共同存在的Ids并合并所有对应列,用merge的内连接(inner join)就能实现,问题应该是参数没设置对,下面是具体解法:

  • 核心逻辑:使用pd.merge,指定按Ids列匹配,并且只保留两边都有的行(内连接)
  • 代码示例:
import pandas as pd

# 执行合并,how='inner'是默认值,写出来更清晰
C = pd.merge(A, B, on='Ids', how='inner')

关键参数说明

  • on='Ids':明确指定用于匹配的列名,注意要保证A和B的列名完全一致(比如你的列是大写的Ids,别写成小写ids)
  • how='inner':只保留A和B中Ids都存在的行,最终C的行数等于A中在B里有匹配的Ids的数量(最多40行)
  • 合并后C的列自动包含Ids, a, b, c, d, y, z,完全符合你的需求

为什么之前的方法不对?

  • concat是按行/列直接拼接,不会根据键匹配,所以无法实现你的需求
  • 如果之前用merge没得到正确结果,大概率是how参数选错了(比如用了left/right),或者on参数的列名拼写不一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 23:01:10