Pandas 意外检查布尔值 return True 而不是 False

Pandas boolean check unexpectedly return True instead of False

我在玩 Pandas。然后我遇到了这样的事情。这是我的代码

import pandas as pd
sdata = {'Ohio': 35000, 'Texas':7100}
states = {'California', 'Ohio', 'Oregon'}
obj2 = pd.Series(sdata, index = states)
x = obj2['California']

然后我写了这个

obj2['California'] != x

并且此代码 returned True。但我预计它会 return False 因为 x = obj2['California']。为什么我先写obj2['California']时不等于obj2['California']

看看 xobj2['California'] 指的是什么:

>>> x
nan
>>> obj2['California']
nan

nan 不等于任何东西,甚至不等于它自己。

请注意 x is obj2['California'] 也是 False,因为看起来 obj2['California'] returns 每次都是 numpy.float64 的新实例(在我的机器上)它被使用了。