请帮助我理解为什么“不等于”条件不能正常工作。
>>>d = {'a' : [1, 2, 3, 3, 1, 4],
>>> 'b' : [4, 3, 2, 1, 2, 2]}
>>>df = pd.DataFrame(d)
a b
0 1 4
1 2 3
2 3 2
3 3 1
4 1 2
5 4 2
如果我使用相等条件,我们会得到正确的结果logical_and
:
>>>df[np.logical_and(df['a']==3, df['b']==2)]
a b
2 3 2
但是,如果我们将条件更改为不等于,它将停止正常工作:
>>>df[np.logical_and(df['a']!=3, df['b']!=2)]
a b
0 1 4
1 2 3
这类似于条件 OR 而不是 AND。
~
但是如果我们以前使用它,它又可以正常工作了np.logical_and
>>>df[~np.logical_and(df['a']==3, df['b']==2)]
a b
0 1 4
1 2 3
3 3 1
4 1 2
5 4 2
我应该了解哪些逻辑条件以避免失败?