pandas - 如何将带有欧洲数字(逗号作为小数分隔符)的多列转换为浮点数?
问题描述
我有多个包含欧洲格式数字的列,例如
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:您可能需要根据需要采用带有要删除的字符的第三个参数。
推荐阅读
- typescript - 如何将接口子类型的类型转换为类型[]?
- c - CMake 如何使用可执行 bin 脚本分发第三方库
- c# - 如何从传递凭据的android应用程序打开网页?
- javascript - 将 Highcharts(和模块)与 lit-element 一起使用
- json - 我如何在反应中呈现这些数据?
- java - 如何解决“异常:Java 网关进程在发送其端口号之前退出”?
- json - 在弹性搜索中,我想查询我在哪里使用术语过滤数据,如果术语没有通过它应该忽略它
- android - 应用重启/重新加载时保持复选框状态
- arrays - 如何使用firebase和flutter读取数组数据以检索活动主题?
- java - 在 Java/Spring 中接收 POST 请求并获取 JSON 元素