是否可以将一个包含空值的float64数据类型的数据框的列更改为整数dtype?但是会出现以下错误:
引发ValueError('Cannot convert NA to integer')
是否可以将一个包含空值的float64数据类型的数据框的列更改为整数dtype?但是会出现以下错误:
引发ValueError('Cannot convert NA to integer')
即使你尝试一些变通方法,也不可能实现。通常情况下,NaN在显示缺失值时更有效率。因此人们尝试这样做,让我们看看如果我们尝试相同的操作会发生什么。
将所有NaN值转换为0(如果您的数据没有此值),如果在您的情况下不可能使用0,则使用非常大的负数或正数,例如9999999999。
df['x'].dtype 输出:dtype('float64')
df.loc[df['x'].notnull(),'x'] = 9999999999 或
df.loc[df['x'].notnull(),'x'] = 0
将所有非NaN值仅转换为int。
df['x'] = df['x'].astype('int64') 转换为int64,现在dtype为int64。
将NaN值放回:
df.loc[df['x']==0,'x'] = np.nan
df['x'].dtype
输出:dtype('float64')