【问题标题】:Pandas - Efficiently concat rows based on group and column valuesPandas - 基于组和列值有效地连接行
【发布时间】:2017-02-05 08:15:05
【问题描述】:

假设我们有一个具有以下结构的 pandas 数据框: Id | number |seq| a | 1 | X | a | 3 | Z | b | 1 | P | b | 6 | G | b | 5 | C |

所需的结果是一个如下所示的数据框: Id |new_seq| a | XZ | b | PCG |

new_seq列是seqId分组,并按照number列指示的顺序。

有哪些选项可以有效地实施此操作?

【问题讨论】:

    标签: python pandas data-manipulation


    【解决方案1】:

    您可以将sort_valuesgroupbyapply 一起使用join

    print (df.sort_values(['Id', 'number']))
      Id  number seq
    0  a       1   X
    1  a       3   Z
    2  b       1   P
    4  b       5   C
    3  b       6   G
    
    df = df.sort_values(['Id', 'number'])
           .groupby('Id', sort=False).seq
           .apply(''.join)
           .reset_index(name='new_seq')
    
    print (df)
      Id new_seq
    0  a      XZ
    1  b     PCG
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-15
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多