如何将带有欧洲数字(逗号作为小数点分隔符)的多列转换为浮点数?

How to convert multiple columns with european numbers (comma as decimal separator) to float?

我有多列包含欧洲格式的数字,例如

1.630,78

它们前面或末尾有不同的字符 (€, %) 所以我不能使用 pandas 转换器功能。

pd.read_csv("file.csv", decimal=',', separator={"col1": float, "col": float}

不会工作,因为我必须先删除标志,我只能在阅读整个文件后才能这样做。

没用,我得到一个

ValueError: could not convert string to float: ''

但每一行都有一个条目

如何将特定列中的那些字符串更改为浮点数?

将列读取为字符串,然后使用 translate:

tt = str.maketrans(',', '.', '.€%')
df.col1 = df.col1.str.translate(tt).astype(float)

PS: 您可能需要采用第三个参数,并根据需要删除字符。