从 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。
我将通过深入研究代码来进一步研究其他问题。
