代码之家  ›  专栏  ›  技术社区  ›  mbadd

使用另一个列作为索引,将一个列转换为一行

  •  1
  • mbadd  · 技术社区  · 7 年前

    ColB公司 可乐==“1” 成为 ,以及所有 哪里 成为 世界其他地区 .

    i、 e.我需要转向:

    index    ColA    ColB
        0     1.0     1.1
        1     1.0    12.2
        2     1.0     4.5
        3     2.0     5.1
        4     2.0     7.7
        5     2.0     9.5
    

    进入

            ColB
               0       1      2
    ColA
     1.0     1.1    12.2    4.5
     2.0     5.1     7.7    9.5
    

    关于@Scott_Boston提供的答案:

    df.groupby('ColA').apply(lambda x: x.reset_index().ColB)
    

    似乎给了我:

    ColA
     1.0    0     1.1
            1    12.2
            2     4.5
     2.0    0     5.1
            1     7.7
            2     9.5
    
    2 回复  |  直到 7 年前
        1
  •  3
  •   BENY    7 年前
    df.groupby('ColA').ColB.apply(list).apply(pd.Series).rename_axis('ColB',1)
    Out[113]: 
    ColB    0     1    2
    ColA                
    1.0   1.1  12.2  4.5
    2.0   5.1   7.7  9.5
    
        2
  •  3
  •   Scott Boston    7 年前

    让我们使用 groupby apply reset_index :

    df.groupby('ColA').apply(lambda x: x.reset_index().ColB)
    

    输出:

    ColB    0     1    2
    ColA                
    1.0   1.1  12.2  4.5
    2.0   5.1   7.7  9.5