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

如何按指定SKU列表合并两个Pandas DataFrame?左连接无效求助

解决DataFrame合并筛选SKU的问题

嗨,我来帮你搞定这个问题!你现在遇到的问题是用左连接没得到想要的结果,这很正常——因为左连接(how='left')的作用是保留左表(df1)的所有行,只把右表(df2)中匹配的数据合并进来,所以它不会过滤掉df1里不在df2中的SKU行。

你想要的是只保留df1中SKU存在于df2里的行,这里有两种简单有效的方法:

方法1:使用内连接(Inner Merge)

内连接会只保留两个表中匹配成功的行,正好符合你的需求。修改你的代码为:

df3 = df1.merge(df2, how='inner', on='SKU')

运行后得到的df3就是你想要的结果,只包含df2中列出的SKU对应的行。

方法2:直接用isin()过滤df1

如果你不想做合并操作,也可以直接筛选df1的行,判断SKU是否在df2的SKU列表里:

df3 = df1[df1['SKU'].isin(df2['SKU'])]

这个方法更直接,结果和内连接完全一致。如果df2里没有重复的SKU,两种方法效果相同;如果df2有重复SKU,内连接会产生对应数量的重复行,而isin()不会——不过看你的df2是唯一SKU列表,两种方法都适用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:04:44