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

Pandas将float64列转换为int64时astype结果不符合预期如何解决

原因说明
  • astype('int64')对浮点数做类型转换时,只会提取数值的整数部分,直接丢弃小数位,不会对小数位做任何进位或拼接处理。你看到的4.000、6.454是Pandas展示数据时默认显示三位小数的效果,不是说存储的实际数值是4000、6454,实际的数值就是4、6.454,所以直接转int后自然只会得到4、6这类结果。
  • 你的示例代码里还存在拼写错误:astpye应为astype,拼写错误会直接抛出属性异常,实际运行时需要先修正这个问题。
解决方案

要得到你期望的结果,只需要在转换类型前,先将数值乘以1000把三位小数转为整数部分即可,参考代码如下:

# 先填充空值,再乘以1000,最后转换为int64类型
print(df.sales.fillna(0).mul(1000).astype('int64'))

运行后输出结果如下:

0     4000
1     6454
2     5654
3    23463
Name: sales, dtype: int64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:51:02