熊猫数据框到带有'\ t'分隔符的Numpy数组

时间:2018-08-02 21:15:59

标签: python pandas numpy

我正在尝试加载几千行四列的数据,其中每一列由一个制表符空间分隔,并将每一行的每一项都转换为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

谢谢

2 个答案:

答案 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+'来解析它们。顺便说一下,该分隔符还覆盖了标签。