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

如何转换长格式数据,其中一列的值现在是新的列名?

  •  0
  • JLuu  · 技术社区  · 3 年前

    df

    Animal     rate
    cat        .35
    cat        .55
    cat        .29
    ...
    dog        .06
    dog        .24
    dog        .22
    ...
    gecko      .47
    gecko      .83
    gecko      .42
    ...
    
    

    对此:

    df2

    cat   dog  gecko
    .35  .06   .47
    .55  .24   .83
    .29  .22   .42
    
    

    原始datafarme的Animal列中的每个唯一值都将成为一个新列的列标题,其对应的速率位于该列的下面。就这样!

    1 回复  |  直到 3 年前
        1
  •  1
  •   BENY    3 年前

    cumcount 之后 groupby pivot

    out = df.assign(key=df.groupby('Animal').cumcount()).pivot('key','Animal','rate')
    Out[29]: 
    Animal   cat   dog  gecko
    key                      
    0       0.35  0.06   0.47
    1       0.55  0.24   0.83
    2       0.29  0.22   0.42