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

Python中如何将DataFrame含冒号、空格的object列转换为整数或浮点数

报错原因

调用.str访问器的列中存在非字符串类型的元素(比如空值、本身是数值的object类型值等),pandas仅支持对字符串类型的序列使用.str系列方法。

解决方案

先强制将每列转为字符串类型再做后续处理,同时补充容错参数避免特殊值导致转换失败,代码如下:

import pandas as pd

# 批量处理所有列转为浮点型
df = pd.concat([
    df[col].astype(str)
           .str.split()
           .str[0]
           .str.replace(':', '', regex=False)
           .astype(float, errors='coerce')
    for col in df.columns
], axis=1)

# 单独处理需要转为整型的列
df['col'] = df['col'].astype(int, errors='ignore')
print(df)

关键修改说明

  • 新增astype(str):强制将列所有值转为字符串,从根源解决.str访问器不兼容的问题
  • replace方法新增regex=False参数:明确指定是普通字符串替换,避免pandas高版本的正则匹配警告,同时提升处理效率
  • astype补充errors参数:errors='coerce'会将无法转为浮点型的异常值置为NaN,errors='ignore'会保留无法转整型的值不做处理,避免个别异常值导致整个转换流程崩溃,你可以根据自己的数据校验需求调整该参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:39:01