【问题标题】:Get matrix from a pandas Series with desired shape从具有所需形状的熊猫系列中获取矩阵
【发布时间】:2018-04-17 20:16:53
【问题描述】:

我有一个非常大的 Series,叫做 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() 时,我得到了错误的形状。 IE。

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

形状为 (12,)

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

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    使用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)
    

    【讨论】:

    • 使用reshape(-1, 4)
    • 我总是希望矩阵每行有 4 个条目 - 很抱歉造成混淆,上面的评论措辞很糟糕 ^^ @chrisz
    • @juanpa.arrivillaga 如果您将答案写为下面的答案,我会将其标记为正确:)
    【解决方案2】:

    这与@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]]
    

    【讨论】:

      猜你喜欢
      • 2016-08-23
      • 2021-05-23
      • 1970-01-01
      • 2017-11-03
      • 2021-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-02
      相关资源
      最近更新 更多