在np.nan的熊猫中,为什么“ mul()”不等于“ __mul __()”?

问题描述 投票:0回答:1

在一个简单的Pandas系列上,当我比较mul()__mul__()的结果时,将为NaN值返回一个'False'布尔值。

为什么?

    x = pd.Series([0,1,2,np.nan,5])

    x.mul(1) == x.__mul__(1)

Result:
    0     True
    1     True
    2     True
    3    False
    4     True
    dtype: bool
pandas boolean nan
1个回答
0
投票

NaN的定义属性之一是它不等于自身。参见What is the rationale for all comparisons returning false for IEEE754 NaN values?

因此,当x等于np.nan时,假定x.mul(1)x.__mul__(1)都再次为np.nan,并且测试该值与自身的相等性的结果为false。

© www.soinside.com 2019 - 2024. All rights reserved.