我读了一个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_'>
如何将列正确转换为整数?提前谢谢!
答案 0 :(得分:1)
问题是您在不更改data
的dtype的情况下,一次尝试更改1个项目。请注意,data.dtype
会告诉您ndarray
的类型,并且您无法一次更改一个单元格 - 整个ndarray
只有一种类型。请尝试这样做:data = data.astype(int)
。这会将所有行和所有列一次转换为整数。
答案 1 :(得分:0)
好的,我发现pandas
正在使用以下代码自动转换所有数据类型:
data = pandas.read_csv("filename.csv")