如何在单个命令中将数据集中的所有“对象”值转换为float或int?

时间:2019-04-11 03:16:12

标签: python-3.x

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

 could not convert string to float: '?'

现在,我不知道如何在单个命令中将对象转换为int或float,并针对43个属性中的每个属性进行逐个转换是很乏味的。

所以我想知道如何通过一个命令对整个数据集进行处理。

1 个答案:

答案 0 :(得分:0)

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

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]