ValueError异常:无法将字符串转换为float:-0,5063291139
问题描述:
这是大的csv文件的一部分(我会告诉你只有第一列):ValueError异常:无法将字符串转换为float:-0,5063291139
0
0
0
−0,5063291139
0,5063291139
0
0
0,6666666667
我从第一列只获得数据。当我试图隐蔽这些浮动:
with open("GOLD.csv") as f:
reader = csv.reader(f ,delimiter=",")
for row in reader:
print float(row[0])
我得到:
ValueError: could not convert string to float: −0,5063291139
问题出在哪里?
答
使用.
代替,
中的数字。将该行更改为
print float(str_replace(",",".",row[0]))
或者您最喜欢将逗号更改为点。
+0
我做了更改。现在我得到:ValueError:无法将字符串转换为浮点数:-0.5063291139 –
+1
该字符串中的“ - ”是实际的“ - ”,还是unicode em-dash或其他字符?是的,那不是“ - ”字符,它看起来就像它。您需要在其上执行另一个str_replace()。 – user3757614
您有两个值,'-0'和'5063291139' –
用作小数点的逗号与逗号不兼容,不能作为字段分隔符。改变其中一个并再试一次。 – Prune
在我看来,GOLD.csv中的逗号是一个unicode字符,与您在代码部分中使用的逗号不同。我将GOLD.csv转换为只有ASCII,并且您的示例运行良好。 – officialhopsof