2015-10-19 162 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

相關問題