Python 2.7 在python中将单个列转换为2d矩阵

Python 2.7 在python中将单个列转换为2d矩阵,python-2.7,dataframe,Python 2.7,Dataframe,我在一列中有如下所示的数据,我想将该列拆分为n个列,并命名行和列。在python中如何实现这一点 -----------样本数据---------- ------------输出应该如下所示--------- 最简单的方法之一是使用numpy和重塑功能 import numpy as np k = np.array(data) k.reshape([row,column],order='F') 至于你的例子。您提到的数据来自文本文件,以便从文本文件中获取数据并重塑形状 import nump

我在一列中有如下所示的数据,我想将该列拆分为n个列,并命名行和列。在python中如何实现这一点

-----------样本数据----------

------------输出应该如下所示---------


最简单的方法之一是使用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]])
我不知道数据的结构,但假设它位于一个巨大的列中,如上面的示例所示。使用
打开
导入数据时。发生了以下情况

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
表示下一行。假设这是数字数据,您将需要使用上面的代码来获取数字。

它返回一个值错误“ValueError:无法将大小为1的数组重塑为形状(3,2)”,并且我还想将列和行命名为c1、c2…cn和r1、r2..RN错误状态为,您有一个1的数组,它无法重塑为3x2数组。如何将数据输入python?我正在从文本文件“sample data.txt”中打开相同的数据:
import numpy作为np data=open(“sample data.txt”,“r”).readlines()k=np.array(data)k.reforme([4,6],order='F')print(k)
示例数据集中有28个条目,因此无法生成4x6矩阵。导入是另一回事,您的数据是否如示例中所示?如果是这样的话,像你这样读这些行会使它们变成字符串,这可能会导致问题。我会再次更新我的帖子。
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]])
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']