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

Pandas转换object类型Amount列为int时报invalid literal错误如何处理

报错原因

报错的核心原因是Amount列的字符串内容包含两个int()无法直接识别的字符:千位分隔符逗号、小数点位,astype(int)仅支持转换纯数字组成的字符串,因此触发该错误。

解决方法
  • 如果需要保留小数精度,直接转为浮点型即可:
import pandas as pd
# 先移除千位分隔符逗号,再转为数值类型,无法转换的内容会被置为NaN
df['Amount'] = pd.to_numeric(df['Amount'].str.replace(',', ''), errors='coerce')
  • 如果确实需要转为整数类型,可先转浮点型再做取整处理:
# 方法1:直接截断小数部分转整数,支持兼容NaN空值
df['Amount'] = pd.to_numeric(df['Amount'].str.replace(',', ''), errors='coerce').astype('Int64')

# 方法2:四舍五入后转整数,支持兼容NaN空值
df['Amount'] = pd.to_numeric(df['Amount'].str.replace(',', ''), errors='coerce').round().astype('Int64')
注意事项
  • errors='coerce'参数会把所有无法转换的脏数据转为NaN,你可以通过df[df['Amount'].isna()]筛选出异常数据做针对性处理
  • 如果数据里还有其他非数字字符(比如货币符号$、€等),可以在str.replace阶段先统一移除后再做类型转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:06:05