从具有所需形状的pandas系列中获取矩阵

时间:2018-04-17 20:16:54

标签: python pandas

我有一个非常大的系列叫做s,我想把它变成一个矩阵。该系列重复 - 所以我希望每组唯一值都是一行。这是一个例子,s =

weights 
    10 
     5 
    15 
     6 
    10 
     5 
    15 
     6 
    10 
     5 
    15 
     6 

我想得到这个矩阵:

 [10, 5, 15, 6, 
  10, 5, 15, 6, 
  10, 5, 15, 6]

当我使用.as_matrix()时,我得到了错误的形状。 I.E.

weights.as_matrix() 
> [10, 5, 15, 6, 10, 5, 15, 6, 10, 5, 15, 6,] 

具有形状(12,)

对于一个很长的系列(我不知道每行的确切形状应该有4个),我怎样才能在上面的例子中实现矩阵?

2 个答案:

答案 0 :(得分:3)

使用reshape()

In [143]: df.as_matrix().reshape(-1,4)
Out[143]:
array([[10,  5, 15,  6],
       [10,  5, 15,  6],
       [10,  5, 15,  6]], dtype=int64)

答案 1 :(得分:1)

这与@chrisz答案非常相似,但使用ser.values代替.as_matrix()来更清楚地了解发生了什么。

ser = pd.Series([10, 5, 15, 6, 10, 5, 15, 6, 10, 5, 15, 6])

ser.values.reshape((-1, 4))

输出:

[[10  5 15  6]
 [10  5 15  6]
 [10  5 15  6]]