2017-07-25 46 views
0

我有一列csv文件中的值包含逗號而不是點。有了下面的代碼,我想把它們變成點,但是這不起作用。熊貓:將列中的點替換爲逗號

沒有錯誤消息,代碼只是運行,如果我從datafram Umsatz調用列Betrag()(德語:絕對值),它不會顯示任何更改。逗號仍然存在。

def removecom(value): 
value=value.replace(',','.') 

Umsatz['Betrag()']=Umsatz['Betrag()'].apply(lambda value: removecom(value)) 

Umsatz['Betrag()'] 

例如轉7,99到7.99

+2

我想你應該嘗試'Umsatz ['Betrag()']。str.replace(',','。')' –

+0

它的工作原理,非常感謝您的回覆 –

+0

我已經添加了一個答案,解釋爲什麼你當前的答案不工作,以及一個例子。希望它有助於:) –

回答

4

你看到沒有變化是因爲removecom返回任何原因。你應該從函數返回一個值是這樣的:

def removecom(value): 
    return value.replace(',','.') 

然而,一個更好的方法,我會用df.str.replace建議:

Umsatz['Betrag()'] = Umsatz['Betrag()'].str.replace(',', '.') 

演示:

In [750]: df 
Out[750]: 
     Col1 
0 foo,bar 
1 abc,def 

In [751]: df['Col1'] = df.Col1.str.replace(',', '.') 

In [752]: df 
Out[752]: 
     Col1 
0 foo.bar 
1 abc.def 
+0

感謝您的答案和有關功能 –

+0

@ChristianSinger沒有問題的建議:)你可以考慮標記它接受,如果你願意。 –