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

Pandas中将含/符号的string类型列转换为数值类型的实现方法

问题解决方法

最优方案(向量化操作,效率最高,适合所有数据规模)

你只需要先把col2的字符串按/分割,取分子部分转为浮点型后除以10即可,原生向量化操作比apply类遍历方法性能高几十到上百倍:

# 分割字符串取分子→转浮点→除以10得到目标值
df['col2'] = df['col2'].str.split('/', expand=True)[0].astype('float32') / 10

执行后col2就会变成你需要的[0.77, 0.82, 0.58, 0.92, 0.89]浮点型数值。

其他可选方案(适合特殊场景)

如果后续你的分母不固定为10,且数据来源完全可控没有注入风险,可以用pd.eval直接计算表达式结果:

df['col2'] = df['col2'].apply(pd.eval)

该方法会直接解析字符串里的四则运算表达式得到结果,但不推荐用于大数据量或者不可信数据源的场景。

原方法失效原因

pd.to_numeric只能识别纯数值格式的字符串,无法处理带/等运算符的混合字符串,必须先做预处理提取有效数值部分再转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:15:06