In Python Pandas and Numpy, why is the comparison result different?
from pandas import Series
from numpy import NaN
NaN
is not equal to NaN
>>> NaN == NaN
False
but NaN
inside a list or tuple is
>>> [NaN] == [NaN], (NaN,) == (NaN,)
(True, True)
While Series
with NaN
are not equal again:
>>> Series([NaN]) == Series([NaN])
0 False
dtype: bool
And None
:
>>> None == None, [None] == [None]
(True, True)
While
>>> Series([None]) == Series([None])
0 False
dtype: bool
This answer explains the reasons for NaN == NaN
being False
in general, but does not explain its behaviour in python/pandas collections.