首页 > 解决方案 > 如何在 python 中将 Str() 类型的列转换为数字?

问题描述

我正在尝试使用随机森林预测股价走势。但目前面临一个问题,因为我的卷数据不是数字格式。而不是“23.9M、24K、67M”,我希望该列像明智的做法一样表示“23900000、24000、67000000”。任何人都可以帮助我将列转换为数字的代码吗? 数据集

标签: pythonpandasnumpy

解决方案


您可以使用 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)

推荐阅读