从 中选择时DataFrame
:
使用not_equal
给出正确的结果:
d[not_equal(d.something,None)]
但是使用!=
不会:
d[d.something != None]
为什么是这样?
更新,d.something dtype('float64'),如果我尝试选择 NaN 值 d[d.something != nan],情况也是如此
我将回答一些关于“如果我尝试选择 NaN 值 d[d.something != nan] 的情况也是如此”
您需要注意 NaN 不等于另一个 NaN:
In [40]: numpy.NaN == numpy.NaN
Out[40]: False
In [41]: numpy.NaN != numpy.NaN
Out[41]: True
这似乎倒退了。但是,当您按照“如果它不是一个数字,它就不能等于任何东西”来思考第一个问题时,它就会变得更加清晰。 ==
将始终作为任何一方返回False
。NaN
的,如果你解释a != b
为not (a == b)
,第二个也是有道理的。这可以解释部分问题。你d[d.something != NaN]
总会回来d
的。
我将通过深入研究代码来更多地研究另一个问题。