我有两个数据帧:
df1=
A B C
0 A0 B0 C0
1 A1 B1 C1
2 A2 B2 C2
df2=
A B C
0 A2 B2 C10
1 A1 B3 C11
2 A9 B4 C12
我想根据一列或两列(或多列)在df1中查找在df2中找不到的行。因此,如果我只比较列“A”,则在df2中找不到来自df1的以下行(请注意,列“B”和列“C”不用于df1和df2之间的比较)
A B C
0 A0 B0 C0
我想返回一个系列
0 False
1 True
2 True
或者,如果我只比较列“A”和列“B”,则在df2中找不到来自df1的以下行(请注意,列“C”不用于df1和df2之间的比较)
A B C
0 A0 B0 C0
1 A1 B1 C1
我想返回一个
0 False
1 False
2 True
我知道如何使用集合来实现这一点,但我正在寻找一种简单的熊猫方式来实现这一点。
应该给你买你想要的系列
数据帧:
如果您的版本是} 并传递感兴趣的cols,how='left'并将
0.17.0
,那么您可以使用^{indicator=True
设置为值是只在left中存在还是同时存在。然后可以测试附加的_merge
列是否等于“both”:合并输出:
理想情况下,可以只使用~df1[COLS].isin(df2[COLS])作为掩码,但这需要索引标签匹配(https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.isin.html)
下面是一个简洁的表单,它使用.isin,但将第二个数据帧转换为dict,这样索引标签就不需要匹配:
相关问题 更多 >
编程相关推荐