【问题标题】:How can I convert a Str() type column to numeric in python? [duplicate]如何在 python 中将 Str() 类型的列转换为数字? [复制]
【发布时间】:2021-07-19 12:31:19
【问题描述】:

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

【问题讨论】:

标签: python pandas numpy


【解决方案1】:

您可以使用 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 在 cmets 中的建议:

df["Vol"].replace({"K": "e3", "M": "e6"}, regex=True).astype(float)

【讨论】:

    【解决方案2】:

    这将是一个相当乏味的方法,但你可以这样做:

    for i in volume_data:
       if i [-1] == 'M':
          val = float(i [:-1])
          val = val * 1000000
       elif i [-1] == 'K':
          val = float(i [:-1])
          val = val * 1000
    

    您可以使用上面的代码将当前列值替换为您找到的新值。

    如果您能提供有关您的数据的更多信息,那将非常有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-19
      • 2022-01-26
      • 1970-01-01
      • 2012-09-24
      • 2015-01-17
      • 2018-08-30
      • 2017-04-29
      • 1970-01-01
      相关资源
      最近更新 更多