python - 如何在 python 中将 Str() 类型的列转换为数字?
问题描述
我正在尝试使用随机森林预测股价走势。但目前面临一个问题,因为我的卷数据不是数字格式。而不是“23.9M、24K、67M”,我希望该列像明智的做法一样表示“23900000、24000、67000000”。任何人都可以帮助我将列转换为数字的代码吗? 数据集
解决方案
您可以使用 Lambda 函数:
mul = {'M':1e6, 'K': 1e3}
conv = lambda num: float(num[:-1]) * mul[num[-1].upper()]
conv('2.3M')
要在数据框中的列上使用它:
df['Volume'] = df['Volume'].apply(conv)
或者正如@Corralien 在评论中所建议的那样:
df["Vol"].replace({"K": "e3", "M": "e6"}, regex=True).astype(float)
推荐阅读
- jupyter-notebook - 如何更改 Juypyter 笔记本默认工作目录
- next.js - 仅使用 next-i18next 在服务器端添加翻译
- sql - 如果也没有数据,则在 sql server 中显示所有 24 小时的列表
- python-3.x - 在 Pandas 中计算最小值后查看缺失列的方法
- javascript - 媒体印刷品不占风格
- c++ - 井字游戏与 MiniMax 算法 4x4
- ffmpeg - FFMPEG - 流式传输到 RTMP 输出并同时保存到 MP4 - 重新连接
- python - 根据今天的日期创建列名?
- java - 无法使用用户名和密码从 Java 向 REST API 发出 HTTP Get 请求
- java - Maven 发布插件和 cifriendly 版本