首页 > 解决方案 > 如何在单个命令中将数据集中的所有“对象”值转换为浮点数或整数?

问题描述

我有一个包含 43 个属性的火车数据集。每个属性都有一些元组值作为对象(如在具有某些字符的字符串中)。现在,我正在尝试使用缩放器缩放值,但它给出了以下错误:

 could not convert string to float: '?'

现在,我不知道如何在单个命令中将对象转换为 int 或 float 并为 43 个属性中的每一个一个一个地转换它有点乏味。

所以我想知道如何用一个命令来处理完整的数据集。

标签: python-3.x

解决方案


我使用convert尝试将字符串解析为浮点数的函数。
如果不能,它会尝试将其解析为 int,如果仍然不能,则分配值 0(您可以将默认值更改为字符串不是 int 或浮点数)

l = []

def convert(str):
    x = 0
    try:
        x = int(str)
    except:
        try:
            x = float(str)
        except:
            pass
    l.append(x)

for i in ['1','2','3','?','4.5']:
    convert(i)
print(l)
#[1, 2, 3, 0, 4.5]


推荐阅读