Skip to main content
 首页 » 编程设计

python之Pandas 中 "!="和 "not_equal"之间的区别

2025年05月04日8飞鱼

从 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。

我将通过深入研究代码来进一步研究其他问题。