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

回归拟合报错:无法将字符串'-'转换为浮点数

Pandas DataFrame列转float类型解决方法

你的问题出在数据中的'-'字符串无法直接转换为float类型,以下是两种直接有效的解决方式:

方法1:先替换无效值为缺失值再转类型

先把所有'-'替换为Pandas支持的缺失值pd.NA(属于float类型),再统一转换列类型:

import pandas as pd

# 假设你的DataFrame已经命名为df
cols_to_convert = ['gender', 'age', 'marital_status']  # 指定需要转换的列
df[cols_to_convert] = df[cols_to_convert].replace('-', pd.NA).astype(float)

方法2:用pd.to_numeric自动处理无效值

利用pd.to_numeric的errors='coerce'参数,自动将无法转换为数值的内容转为NaN,一步完成转换:

df[cols_to_convert] = df[cols_to_convert].apply(pd.to_numeric, errors='coerce')

两种方法都能解决could not convert string to float: '-'的报错,转换后原数据中的'-'会变为float类型的缺失值NaN,不影响后续数值计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:35:13