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

熊猫有条件地合并两行

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

    我想知道是否有一种方法可以按行分组,然后按条件聚合组。谢谢你
    对于colA是A,它应该将第二个A的colB设置为test1和sum colC

    colA colB colC
    A   test1  5
    A   None   6
    B   test1  4
    C   test1  5
    C   test3  4
    D   test4  5
    D   None   4
    

    预期结果

    colA colB colC
    A   test1  11
    B   test1  4
    C   test1  5
    C   test3  4
    D   test4  9
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Vaishali    7 年前

    IIUC,可以使用groupby和fill,然后再使用group和sum

    df['colB'] = df.groupby('colA').colB.ffill().bfill()
    df.groupby(['colA','colB'], as_index = False).sum()
    
        colA    colB    colC
    0   A       test1   11
    1   B       test1   4
    2   C       test1   5
    3   C       test3   4
    4   D       test4   9