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

将COD_CUST列转换为整数时触发ValueError错误的解决求助

解决字符串浮点数转整数的ValueError问题

嘿,这个问题我之前也踩过坑!你遇到的ValueError是因为COD_CUST列里的内容是字符串类型的浮点数(比如'10025.0'),直接用astype(int)转换时,Python无法把带小数点的字符串直接转成整数。下面给你几个实用的解决办法:

方法一:先转浮点数再转整数

这是最直接的思路,先把字符串转成浮点数,再转整数就能自动去掉小数点后的0:

mser_offus['COD_CUST'] = mser_offus['COD_CUST'].astype(float).astype(int)

方法二:直接处理字符串后缀

如果确定列里所有值都是xx.0的格式,可以直接去掉.0后缀再转整数:

  • 用字符串分割法:
mser_offus['COD_CUST'] = mser_offus['COD_CUST'].str.split('.').str[0].astype(int)
  • 用字符串替换法:
mser_offus['COD_CUST'] = mser_offus['COD_CUST'].str.replace('.0', '').astype(int)

方法三:用pd.to_numeric做稳健转换

如果列里可能存在其他格式的数值字符串(比如空值、非标准格式),用pd.to_numeric会更安全,它能自动处理大部分异常情况:

import pandas as pd
# 先转成数值类型,再转整数
mser_offus['COD_CUST'] = pd.to_numeric(mser_offus['COD_CUST']).astype(int)
# 或者直接指定向下转换为整数
mser_offus['COD_CUST'] = pd.to_numeric(mser_offus['COD_CUST'], downcast='integer')

如果想把无法转换的值设为NaN(方便后续处理),可以加上errors='coerce'参数,同时用大写Int64类型支持空值整数:

mser_offus['COD_CUST'] = pd.to_numeric(mser_offus['COD_CUST'], errors='coerce').astype('Int64')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:22:47