Python Numpy无法从CSV文件将字符串转换为整数

时间:2016-10-30 19:34:14

标签: python csv numpy

我读了一个CSV文件,除了将值转换为整数之外,所有的东西都有效,因为所有值都是字符串。我尝试在这样的循环中逐列转换:

counter = 0
while counter < len(data):
    try:
        data[counter,0] = data[counter,0].astype(int) # ID
        data[counter,1] = data[counter,1].astype(int) # Survived
    except ValueError:
        pass
    counter = counter + 1

正如您所看到的那样,我尝试使用的是巨大的数据集。

print (type(data[0,0]))

打印值的类型会给我<class 'numpy.str_'>

如何将列正确转换为整数?提前谢谢!

2 个答案:

答案 0 :(得分:1)

问题是您在不更改data的dtype的情况下,一次尝试更改1个项目。请注意,data.dtype会告诉您ndarray的类型,并且您无法一次更改一个单元格 - 整个ndarray只有一种类型。请尝试这样做:data = data.astype(int)。这会将所有行和所有列一次转换为整数。

答案 1 :(得分:0)

好的,我发现pandas正在使用以下代码自动转换所有数据类型:

data = pandas.read_csv("filename.csv")