2015-10-19 226 views
0

这是大的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 

问题出在哪里?

+0

您有两个值,'-0'和'5063291139' –

+0

用作小数点的逗号与逗号不兼容,不能作为字段分隔符。改变其中一个并再试一次。 – Prune

+1

在我看来,GOLD.csv中的逗号是一个unicode字符,与您在代码部分中使用的逗号不同。我将GOLD.csv转换为只有ASCII,并且您的示例运行良好。 – officialhopsof

回答

0

使用.代替,中的数字。将该行更改为

print float(str_replace(",",".",row[0])) 

或者您最喜欢将逗号更改为点。

+0

我做了更改。现在我得到:ValueError:无法将字符串转换为浮点数:-0.5063291139 –

+1

该字符串中的“ - ”是实际的“ - ”,还是unicode em-dash或其他字符?是的,那不是“ - ”字符,它看起来就像它。您需要在其上执行另一个str_replace()。 – user3757614

相关问题