You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas空DataFrame含空值的float64列转int类型失败原因是什么

错误原因
  • 用reindex为空白DataFrame新增列时,所有新增列的默认填充值为NaN,NaN本身是float64类型,所以空列默认会被设为float64类型。
  • object类型支持存储空值,所以转换过程可以正常执行。
  • 但Pandas的原生int类型不支持存储空值,带NaN的列强行转int就会触发ValueError: Cannot convert non-finite values (NA or inf) to integer错误。
解决方案

方案1:使用可空整数类型

如果你需要保留空值,可以用Pandas提供的可空整数类型Int64(注意首字母大写),修改类型转换代码即可:

# 把原来的astype('int')替换为astype('Int64')
data[['age','phone']]= data[['age','phone']].astype('Int64')

方案2:先填充空值再转换

如果你不需要保留空值,可以先给列填充默认有效值,确认列中没有NaN之后再转成普通int类型:

# 示例:先把空值填充为0,再转int
data[['age','phone']] = data[['age','phone']].fillna(0).astype('int')

内容的提问来源于stack exchange,提问作者Inga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:36:07