在一个简单的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
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。