python - 如何使用 pandas 将 200.13K 和 1.2M 等数字字符串转换为整数?
问题描述
我的 df 中有一个“Vol”列,其值以 K 和 M 结尾,分别代表数千和数百万,这些值是 dtype 中的“object”,我需要将它们转换为“double”。
Example for the column what I need it to look like
Vol Result
920.81K 920810
1.28M 1200000
2.19M 2190000
443.66K 443660
682.81K 682810
解决方案
有几种方法可以做到这一点。我最喜欢的是使用replace
and pd.eval
。假设“Vol”是一个字符串列,你可以这样做:
df['Vol'].replace({'K': '*1e3', 'M': '*1e6'}, regex=True).map(pd.eval)
0 920810.0
1 1280000.0
2 2190000.0
3 443660.0
4 682810.0
Name: Vol, dtype: float64
根据您需要支持的数量级,您可以根据需要修改替换字典。
推荐阅读
- java - 在 ionic 中构建 Android 失败,transformClassesWithDexBuilderForDebug 进程 okhttp-3.13.1.jar
- mysql - 在 MySQL 中将表从 utf8 更新为 utf8mb4 是否安全?
- visual-studio-code - 无法在片段中获得建议
- javascript - Firebase Cloud Messaging - 在发送通知之前获取数据?
- opencv - 有没有任何方法可以在不从 Unity 资产商店购买 EmguCV 包的情况下将 EmguCV 与 Unity 一起用于 UWP(HoloLens)应用程序开发?
- javascript - 通过特殊字符从字符串中查找并提取序列
- angular - 本机脚本 DatePicker 显示错误的月份值
- angular - 在 html 中使用异步管道 => ¿BehaviorSubject 或 Observable?
- time - 标签到轴 - 将 int(秒)转换为小时
- entity-framework - 尝试实体框架代码优先;用法与 Database-first 有什么不同吗?