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

显示所有按列分组

  •  1
  • william007  · 技术社区  · 7 年前
    '''
    groupby row, concat list
    '''
    d = {'col1': [33, 33, 33, 34, 34, 34], 'col2': ["hello", "hello1", "hello2", "hello3", "hello4", "hello5"],
         'col3': [1, 2, 3, 4, 5, 6]}
    df = pd.DataFrame(data=d)
    
    dfQ = df.groupby('col1')['col2'].apply(list).reset_index()
    print(dfQ)
    

    col1 和 col2 col3 具有 列1 和 col2公司

    2 回复  |  直到 7 年前
        1
  •  3
  •   Abhi    7 年前

    IIUC你可以用 groupby.agg

    df1 = df.groupby('col1', as_index=False).agg(list)
    
    print (df1)
    
       col1                  col2           col3
    0   33  [hello, hello1, hello2]     [1, 2, 3]
    1   34  [hello3, hello4, hello5]    [4, 5, 6]
    
        2
  •  1
  •   panktijk    7 年前

    agg 用一个 lambda 函数列出两列。

    dfQ = df.groupby('col1').agg(lambda x: list(x)).reset_index()