Pandas:用逗号代替列中的点
Pandas: substitute commas for points in a column
我有一列来自 csv 文件的值,其中包含逗号而不是点。使用下面的代码,我想将它们变成点,但是这是行不通的。
没有错误消息,代码只是运行,如果我从数据帧 Umsatz
调用列 Betrag()
(德语:绝对值),它不会显示任何变化。逗号仍然存在。
def removecom(value):
value=value.replace(',','.')
Umsatz['Betrag()']=Umsatz['Betrag()'].apply(lambda value: removecom(value))
Umsatz['Betrag()']
例如把 7,99 变成 7.99
您看不到任何变化的原因是 removecom
return 什么都没有。您应该 return 来自函数的值,如下所示:
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
我有一列来自 csv 文件的值,其中包含逗号而不是点。使用下面的代码,我想将它们变成点,但是这是行不通的。
没有错误消息,代码只是运行,如果我从数据帧 Umsatz
调用列 Betrag()
(德语:绝对值),它不会显示任何变化。逗号仍然存在。
def removecom(value):
value=value.replace(',','.')
Umsatz['Betrag()']=Umsatz['Betrag()'].apply(lambda value: removecom(value))
Umsatz['Betrag()']
例如把 7,99 变成 7.99
您看不到任何变化的原因是 removecom
return 什么都没有。您应该 return 来自函数的值,如下所示:
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