如何将带有欧洲数字(逗号作为小数点分隔符)的多列转换为浮点数?
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: 您可能需要采用第三个参数,并根据需要删除字符。
我有多列包含欧洲格式的数字,例如
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: 您可能需要采用第三个参数,并根据需要删除字符。