python - 为什么当我将其更改为整数时会浮动
问题描述
我正在编写一个从浮点数更改为整数的函数。现在,例如,如果值为 1.34,则代码返回 1.0 而不是 1。如何解决这个问题?
dataframe.iloc[:,i] = dataframe.iloc[:,i].apply(lambda x: int(x) if str(x) != 'nan' else x)
解决方案
这是因为NaN
是一个float
:
>>> type(np.nan)
<class 'float'>
>>>
甚至百万分之一的值都是浮点数,而不是整个值都是浮点数。
所以你可以使用:
df.iloc[:, i] = df.iloc[:, i].astype('Int64')
你可以这样做Int64
,Int32
或Int16
。