Python中两个DataFrame实现left excluding join左排除连接的方法
Pandas 左排除连接(Left Excluding Join)实现方法
针对两个带共同关联键key_id的DataFrame A、B,要保留A中不存在于B的行,有两种常用的实现方式:
- 方案1:
merge关联过滤法(适配所有场景)
import pandas as pd # 左连接同时标记行的来源表 merge_temp = A.merge(B, on="key_id", how="left", indicator=True) # 筛选仅属于A的行,保留A的原始列结构 result = merge_temp[merge_temp["_merge"] == "left_only"][A.columns]
该方案兼容性最好,就算两个表除
key_id外还有其他同名字段,也能正确返回A的原始数据结构。
- 方案2:
isin快速过滤法(代码更简洁)
result = A[~A["key_id"].isin(B["key_id"])]
该方案写法简单性能高,适合仅用
key_id作为唯一关联判断条件的场景。
左排除连接逻辑示意图

内容的提问来源于stack exchange,提问作者Hugo Wolf
相关产品推荐
相关产品推荐

