Pandas类似于SQL的"NOT IN"运算符

Lad*_*lav 5 python pandas

令人惊讶的是,我无法在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]})
Run Code Online (Sandbox Code Playgroud)

我想要所有的行A,它a不包含来自B's的值c.就像是:

A = A[ A.a not in B.c]
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 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
Run Code Online (Sandbox Code Playgroud)