令人惊讶的是,我无法在pandas DataFrames中找到SQL的“NOT IN”运算符的类似物。
A = pd.DataFrame({'a':[6,8,3,9,5],
'b':['II','I','I','III','II']})
B = pd.DataFrame({'c':[1,2,3,4,5]})
我想要来自A
的所有行,a
不包含来自B
的{{1}}的值。
类似的东西:
c
答案 0 :(得分:5)
我认为你真的很亲近 - 需要isin
~
用于否定布尔值掩码 - 而list
使用Series
B.c
:
print (~A.a.isin(B.c))
0 True
1 True
2 False
3 True
4 False
Name: a, dtype: bool
A = A[~A.a.isin(B.c)]
print (A)
a b
0 6 II
1 8 I
3 9 III