在1x4 pandas数据帧

时间:2017-01-26 14:35:13

标签: arrays pandas dataframe transpose

我的功能是将数据写入1x4 dataframe,其中每列(单元格)是一个数组(1x6544)。所以,我需要做的是转置每个内部数组(6544x1),使其成为dataframe维度的6544x4

我将如何实现这一目标?

以下是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]

2 个答案:

答案 0 :(得分:1)

您的数据必须如下:

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

调用dataframe构造函数,然后调用.values属性:

pd.DataFrame(data).T.values

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

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

pd.DataFrame(data).T.values.reshape(-1, )

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

答案 1 :(得分: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