大熊猫中“!=”和“not_equal”之间的区别

时间:2013-03-06 12:13:38

标签: python pandas

DataFrame中选择时:

使用not_equal会得到正确的结果:

d[not_equal(d.something,None)]

但是使用!=不会:

d[d.something != None] 

为什么会这样?

更新,d.something dtype('float64'), 如果我尝试选择NaN值,情况也是如此     d [d.something!= nan]

1 个答案:

答案 0 :(得分:1)

我要回答一下“如果我尝试选择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

我将通过挖掘代码来深入研究另一个问题。

相关问题