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