我正在尝试加载几千行四列的数据,其中每一列由一个制表符空间分隔,并将每一行的每一项都转换为int数据类型。
当我像这样创建数据框时:
my_data = pd.read_csv('filename', sep='\t')
我得到一个输出,每行看起来像这样:
col1\tcol2\tcol3\tcol4
然后我需要将其转换为一个numpy数组,所以我可以这样做:
arr_data = np.array(my_data)
这是我现在的输出:
array([['col1\tcol2\tcol3\tcol4'],
['col1\tcol2\tcol3\tcol4'],
['col1\tcol2\tcol3\tcol4'],
.....
.....
所以基本上现在每一行都是一个字符串。
我想做的就是将所有内容变成int
,而不是string
,但是当我尝试这样做时:
arr_data = np.array(my_data, dtype=int)
我得到一个ValueError
我是否需要编写一个嵌套的for循环来遍历每一行,然后遍历每一行中的每一列,以使每一项变成一个int
?
编辑:
我还注意到,当我创建数据框时,数据的形状为(rows, 1)
而不是(rows, 4)
,我想这意味着delimiter
无效吗?
这是前几行:
1 1 5 874965758
1 2 3 876893171
1 3 4 878542960
1 4 3 876893119
1 5 3 889751712
1 7 4 875071561
谢谢
答案 0 :(得分:2)
使用标志BŁĄD: podwójna wartość klucza narusza ograniczenie unikalności
ERROR: the double key value violates the uniqueness constraint
答案 1 :(得分:1)
您的列不是用TAB分隔的。它们用空格隔开。使用sep='\s+'
来解析它们。顺便说一下,该分隔符还覆盖了标签。