熊猫数据框到带有'\ t'分隔符的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


蝴蝶不菲
浏览 158回答 2
2回答

梦里花落0921

您的列不是用TAB分隔的。它们是用空格隔开的。使用sep='\s+'解析他们。顺便说一下,该分隔符还覆盖了标签。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python