我创建了一个填充了np.nan的单个columen数据框,如下所示:
df=pd.DataFrame([np.nan]*5)
0
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
当我尝试查找df.iloc[0,0]
的数据类型,即NaN时,该值返回numpy.float64
我知道pd.isnull
函数可以正确地为这些np.NaN返回true。但是,我不明白为什么数据类型是浮点数?
答案 0 :(得分:1)
数字数组中的NaN
>>> a = float('inf')
>>> b = float('-inf')
>>> c = float('nan')
>>> a
inf
>>> b
-inf
>>> c
nan
NaN值在所有操作中传播,不会引发异常。例如:
>>> c = float('nan')
>>> c + 23
nan
>>> c / 2
nan
>>> c * 2
nan
>>> math.sqrt(c)
nan
>>>
如果它是浮点类型,它会在计算过程中帮助Python。
答案 1 :(得分:1)
NumPy(np)使用IEEE Standard
Binary Floating-Point
进行算术运算(IEEE 754)
。这就是为什么当您使用NumPy进行任何类型的操作时,它将返回Float
>>> type(np.nan*5)
<class 'float'>