0

我的数据中有拼写错误。特别是,我需要将 pandas DataFrame 的列值从字符串转换为浮点数。然而,一个简单的float(value)失败抛出这个错误:

"could not convert string to float: '33q.200088'"

因此我应用正则表达式来删除所有非数字:

re.sub(r"\D", "", num)

但是,我收到TypeError: expected string or bytes-like object以下情况的错误:

num = -97.94111109999999

重要提示:我想维护这个-标志。

4

2 回答 2

1

这段代码应该使它工作:

float(re.sub('[a-z]', "", str(num)))
于 2018-10-10T19:14:52.507 回答
1

num是有符号float类型,而不是 astringbytes

re.sub("[a-zA-Z]", "", str(num))

这将返回一个 stringType 保持-.

您应该能够将其转换为float

于 2018-10-10T19:15:42.730 回答