2016-08-12 83 views
-1

我是python熊貓的新手,因爲小數點和零之間有一個空格,所以我試圖將列中的所有值湊齊。例如,湊整小數蟒蛇

 Hi 
     21. 0 
     8. 0 
     52. 0 
     45. 0 

我嘗試使用下面我當前的代碼,但它給了我:轉換爲前

invalid literal for float(): 21. 0

 df.Hi.astype(float).round() 

回答

1

嘗試使用replace的字符串替換字符串中的所有空白float:

df.Hi.str.replace(' ', '').astype(float).round() 
+0

它返回「無法將系列轉換爲」 –

+1

使用正確的語法編輯此答案。在這裏,直到編輯通過@NickEdwards批准爲止:'df.Hi.str.replace('','').astype(float).round()' – Kartik

+0

我沒有在任何地方看到您的編輯請求,但我自己修改了編輯,謝謝! –

0

如果我的理解正確,您想要將列01中的值至float

小數點和零之間有一個空格,表示您的值是字符串。

您可以使用lambda函數將它們轉換爲float

df['Hi'] = df['Hi'].apply(lambda x: x.replace(" ", "")).astype(float) 
print(df) 
    Hi 
0 21.0 
1 8.0 
2 52.0 
3 45.0 

print(df.dtypes) 
Hi float64 
dtype: object 
+0

我收到屬性錯誤:'float'對象沒有屬性'replace' –

+0

我認爲'Hi'值是字符串,因爲有空格。所以,你的價值實際上是「浮動」?我錯過了什麼? –

+0

數據類型仍然是對象,只是無法將其轉換爲浮點數。 –