我创建了一个填充了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 in numer array
>>> 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。
NumPy (np) 使用IEEE Standard
forBinary Floating-Point
进行算术计算(IEEE 754)
。这就是为什么当您使用 NumPy 进行任何类型的操作时,它会返回Float
>>> type(np.nan*5)
<class 'float'>