如何解决ValueError:无法使用 Python 将字符串转换为浮点数
我一直在寻找删除所有非数字字符,并将其转换为浮点类型,但是每当出现任何字符串字符时,它都会给出错误为“ValueError:无法将字符串转换为浮点”
请建议如何解决。
输入文件
col1 col2
122.45 NaN
Ninety Five 3585/-
9987 178@#?
225 Nine 1983.86
Twelve 7363*
col1 col2
122.45 NaN
NaN 3585
9987 178
225 1983.86
NaN 7363
我正在使用的代码:
df[['col1','col2']] = df[['col1','col2']].replace('([^\d/.])','',regex=True).astype(float)
ValueError: 无法将字符串转换为浮点数
解决方法
您需要对正则表达式模式使用原始字符串(前面带有 r
),或使用双反斜杠 (\\
) 转义。您还需要 \.
来匹配文字 .
字符,而不是 /.
:
df[['col1','col2']] = df[['col1','col2']].replace('(-?[^\d\.])','',regex=True).replace('',float('NaN')).astype(float)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。