Pandas 将使用逗号而不是小数点分隔符的数字从对象转换为数字

nin*_*zzo 3 python dataframe pandas

在我的数据框中,我有一列数字,其格式以逗号作为分隔符,例如0,5,推断的数据类型是对象。我需要将它们转换为数字,但是当我尝试时 df['ColumnName'] = pd.to_numeric(df['ColumnName'])出现以下异常:

ValueError                                Traceback (most recent call last)
pandas/_libs/lib.pyx in pandas._libs.lib.maybe_convert_numeric()

ValueError: Unable to parse string "2,55"
Run Code Online (Sandbox Code Playgroud)

我尝试在谷歌等上查找,但找不到解决方案。该to_numeric方法的签名不允许指定分隔符。

关于如何解决这个问题有什么想法吗?

Qua*_*ang 7

您可以替换,.

df['ColumnName'] = pd.to_numeric(df['ColumnName'].str.replace(',', '.'))
Run Code Online (Sandbox Code Playgroud)

另一方面,如果您使用 读取数据pd.read_csv,则有一个选项decimal=','