在Pandas中如何在某些匹配条件下进行LEFT ANTI连接
LEFT ANTI Join与半连接相反。不包括交集,它返回左表。它只返回左表的列,不返回右表的列。
方法1:使用isin()
在创建的数据帧上,我们使用isin()函数进行左键连接和子集,以检查数据集被合并的部分是否在合并后的数据集的子集中。
语法 :DataFrame.isin(values)
参数 :
- values:可迭代的,系列的,数据框架的或dict的
返回值 : DataFrame
示例 :
在下面的代码中,我们使用指标来寻找 “仅剩 “的行,并对合并后的数据集进行子集,然后将其分配给df1。
输出:
方法2:使用半连接
我们可以在半连接上使用’~’运算符。它的结果是反连接。
半连接 :类似于内联,半联接返回交集,但它只返回左表的列,而不是右表的列。它没有重复的值。
语法 :
[~df1[‘column_name’].isin(df2[‘column_name’])]
其中,
- df1 是第一个数据框架
- df2 是第二个数据框架
- column_name 是两个数据框架中的匹配列
示例 :
在这个例子中,我们在’city’上合并df1和df2,默认是’内联’,合并后,我们排除了df1中在df3中的部分,并打印出结果数据框。
输出 :