2017-01-26 22 views
0

我的功能是将数据写入1x4 dataframe,其中每列(单元)是一个数组(1x6544)。所以,我需要做的是转置每个内部数组(6544x1),这样它就是一个不错的dataframe尺寸的6544x4尺寸。在1x4熊猫数据帧内移位数组

我该如何做到这一点?

这里是dataframe的输出样本:

df = [(1,2,3,4),(a,b,c,d),(A,B,C,D,(0.25,0.655555,0.56,15.235)] 

我想什么想看到的是这样的:

df1 = [1,a,A,0.25 
     2,b,B,0.655555 
     3,c,C,0.56 
     4,d,D,15.235] 

回答

1

你的数据需要是这样的:

In [1398]: data = [(1,2,3,4),('a','b','c','d'),('A','B','C','D'),(0.25,0.655555,0.56,15.235)] 

Call th Ë数据框中构造函数,然后将.values属性:

In [1399]: pd.DataFrame(data).T.values 
Out[1399]: 
array([[1, 'a', 'A', 0.25], 
     [2, 'b', 'B', 0.655555], 
     [3, 'c', 'C', 0.56], 
     [4, 'd', 'D', 15.235]], dtype=object) 

如果你想把它当作一维数组,你需要重塑它:

In [1400]: pd.DataFrame(data).T.values.reshape(-1,) 
Out[1400]: 
array([1, 'a', 'A', 0.25, 
     2, 'b', 'B', 0.655555, 
     3, 'c', 'C', 0.56, 
     4, 'd', 'D', 15.235], dtype=object) 
0
>>> data = [('a','b','c','d'),('A','B','C','D'),(0.25,0.655555,0.56,15.235)] 
>>> pd.DataFrame(data) 
     0   1  2  3 
0  a   b  c  d 
1  A   B  C  D 
2 0.25 0.655555 0.56 15.235 
>>> pd.DataFrame(data).transpose() 
    0 1   2 
0 a A  0.25 
1 b B 0.655555 
2 c C  0.56 
3 d D 15.235