我在单列中具有如下所示的数据,我想将该单列拆分为n个列,并命名行和列。我如何在python中做到这一点?
-----------示例数据----------
5
3
5
0
0
1
0
0
18
23
11
1
2
10
1
0
5
6
1
0
1
1
1
0
158
132
150
17
------------输出应类似于---------
column0 column1 column2 column3 column4 column5 column6
row1 5 0 18 2 5 1 158
row2 3 1 23 10 6 1 132
row3 5 0 11 1 1 1 150
row4 0 0 1 0 0 0 17
答案 0 :(得分:0)
最简单的方法之一是使用numpy和重塑功能
import numpy as np
k = np.array(data)
k.reshape([row,column],order='F')
以您的示例为例。您提到数据来自文本文件,因此要从文本文件中获取数据并进行整形
import numpy as np
data = np.genfromtxt("sample-data.txt");
data.reshape([4,7],order='F')
输出将为
Out[27]:
array([[ 5, 0, 18, 2, 5, 1, 158],
[ 3, 1, 23, 10, 6, 1, 132],
[ 5, 0, 11, 1, 1, 1, 150],
[ 0, 0, 1, 0, 0, 0, 17]])
我不知道数据的结构,但假设它在1个巨型列中,如上面的示例所示。使用open
导入数据时。发生以下情况。
data = open("sample-data.txt",'r').readlines()
data
Out[64]:
['5\n',
'3\n',
'5\n',
'0\n',
'0\n',
'1\n',
'0\n',
'0\n',
'18\n',
'23\n',
'11\n',
'1\n',
'2\n',
'10\n',
'1\n',
'0\n',
'5\n',
'6\n',
'1\n',
'0\n',
'1\n',
'1\n',
'1\n',
'0\n',
'158\n',
'132\n',
'150\n',
'17']
这将导致字符串值数组,因为\n
表示下一行。假设这是数字数据,您将需要使用上面的代码来获取数字。