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

如何遍历DataFrame格式化数值并转换为float类型?

问题修复方案

错误根源

你循环里的x是列名字符串,不是DataFrame的列数据对象。字符串类型没有pandas Series的replace()和astype()方法,因此触发AttributeError。

修复代码

假设你的DataFrame变量名为df,columnList是需要转换的数值列列表(注意排除Timestamp列,它是日期类型无需转换),正确写法如下:

循环处理方式

for col in columnList:
    # 替换逗号为点,将结果赋值回原列
    df[col] = df[col].str.replace(',', '.', regex=False)
    # 转换为float类型,空单元格会自动转为NaN
    df[col] = df[col].astype(float)

批量处理简化写法

用apply一次性处理所有目标列:

df[columnList] = df[columnList].apply(
    lambda series: series.str.replace(',', '.', regex=False).astype(float)
)

额外注意事项

  • 如果单元格存在空格(比如示例里的空单元格可能是空格字符串),可以先添加清理步骤:df[col] = df[col].str.strip()
  • 转换后空值会变为NaN,这是数值列的标准空值格式,便于后续数据分析;若需保留原空样式,可后续用fillna('')处理
  • Timestamp列是日期类型,不要加入columnList,避免破坏原有格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:01:40