pandas提供的可直接使用的函数(merge/join/concat)没有这个功能, 所以要实现这个功能, 需要自己来实现, 也有参考过别的网友自己的处理逻辑, 感觉都比较繁琐, 步骤太多, 从这篇知乎上找到这个骚操作,方法可行,两行代码搞定, 自己在此搬运记录一下
def anti_join(x, y, on):
"""
:param x:
:param y:
:param on:如没有特殊需求,可以不要这个参数
:return: 返回x中不包含y的部分
"""
ans = pd.merge(left=x, right=y, how='left', indicator=True, on=on)
ans = ans.loc[ans._merge == 'left_only', :].drop(columns='_merge')
return ans