請幫我理解爲什麼「不等於」條件無法正常工作。dataframe logical_and可以正常工作,並且不會等於
>>>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
我應該知道的邏輯條件,以避免故障再次工作正常?
這邏輯否定如何工作......;) – MaxU
這工作正常。你只需要刷命題邏輯,[基本邏輯連接詞](https://en.wikipedia.org/wiki/Logical_connective#Common_logical_connectives)否定,連詞,分詞和它們的「代數」特性... –