pandas AND 过滤

pandas AND filtering

我认为“&”的意思是 AND,但在下面的示例中它的作用类似于 OR,因为这应该返回索引=1 处的行。
我想要列“e”不是 1 和列“g”同时不是“a”的行,但这里它基本上是一个 OR,因为它不返回任何行。您将如何实施 AND?

ex=pd.DataFrame([[1,2,"a"],[1,2,"b"]], columns=['e','f','g'])
ex[(ex.e!=1) & (ex.g!="a")]

编辑:不适用于“and”

你应该在前面加上~,这只会排除e=1和g = a

的行
out = ex[~((ex.e==1) & (ex.g=="a"))]
print(out)
   e  f  g
1  1  2  b