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

如何将Pandas中含字符串小数的object列转换为整数类型?

解决Pandas字符串列转整数的问题

核心问题出在你的列里混杂了正常字符串小数(如"136.89")和单独的"."无效值,导致直接转换报错;而to_numeric得到13689大概率是因为数据里的小数点实际被当作了千位分隔符,或是字符串存在隐藏干扰字符。以下是分步解决方法:

  1. 清理无效值
    先把单独的"."替换为缺失值,避免转换时触发报错:
import pandas as pd

df['目标列'] = df['目标列'].replace('.', pd.NA)
  1. 正确转换为数值类型
    使用to_numeric并指定errors='coerce'(将无法转换的内容转为缺失值)。如果你的数据是千位分隔符为点、小数分隔符为逗号的格式(比如"136.89"实际是"13689"的千位分隔写法,真实小数应为"136,89"),需要先替换分隔符:
# 处理千位分隔符为点的情况
df['目标列'] = df['目标列'].str.replace('.', '').str.replace(',', '.')

# 转换为浮点型
df['目标列'] = pd.to_numeric(df['目标列'], errors='coerce')
  1. 转换为整数格式
    根据需求选择两种取整方式:
  • 截断小数取整(如136.89→136):
# 用Int64类型可保留缺失值,避免报错
df['整数列_截断'] = df['目标列'].astype('Int64')
  • 四舍五入取整(如136.89→137):
df['整数列_四舍五入'] = df['目标列'].round().astype('Int64')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 07:52:54