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

如何将Pandas中科学计数法显示的float类型列转换为整数?

解决浮点数转整数溢出及科学计数法转精确整数问题

问题原因

你的patient_id列是浮点数类型,其中数值(如2.987250e+13)远大于32位整数的最大值(2147483647),直接用astype(int)会触发整数溢出,导致结果出现负数;同时浮点数存储科学计数法数值时可能存在精度损失,直接转整数可能得不到目标精确值。

解决方案

方法一:使用64位整数类型转换

直接指定转换为int64类型,避免32位整数溢出:

med_app['patient_id'] = med_app['patient_id'].astype('int64')

方法二:先转无科学计数法字符串再转整数(更稳妥,避免精度损失)

先将浮点数格式化为不带科学计数法的完整数字字符串,再转换为整数,确保得到精确的目标值:

# 格式化浮点数为无科学计数法的字符串
med_app['patient_id'] = med_app['patient_id'].apply(lambda x: f"{x:.0f}")
# 转换为64位整数
med_app['patient_id'] = med_app['patient_id'].astype('int64')

方法三:使用pd.to_numeric指定整数类型

利用pandas的数值转换工具,直接指定目标整数类型:

import pandas as pd
med_app['patient_id'] = pd.to_numeric(med_app['patient_id'], dtype='int64')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 13:45:26