从 中选择时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的。
我将通过深入研究代码来更多地研究另一个问题。