Pandas类似于SQL的“NOT IN”运算符

时间:2017-04-06 13:18:27

标签: 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]})

我想要来自A的所有行,a不包含来自B的{​​{1}}的值。 类似的东西:

c

1 个答案:

答案 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