在Python Pandas和Numpy中,比较结果为何不同?
from pandas import Series
from numpy import NaN
Run Code Online (Sandbox Code Playgroud)
NaN 不等于 NaN
>>> NaN == NaN
False
Run Code Online (Sandbox Code Playgroud)
但NaN在列表或元组中是
>>> [NaN] == [NaN], (NaN,) == (NaN,)
(True, True)
Run Code Online (Sandbox Code Playgroud)
而Series与NaN又不相等:
>>> Series([NaN]) == Series([NaN])
0 False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
和None:
>>> None == None, [None] == [None]
(True, True)
Run Code Online (Sandbox Code Playgroud)
而
>>> Series([None]) == Series([None])
0 False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
这个答案解释了原因NaN == NaN是False一般,但并没有解释其在python /大熊猫收藏行为。