How to group dataframe rows into list in pandas groupby

前端 未结 12 2184
日久生厌
日久生厌 2020-11-21 04:56

I have a pandas data frame df like:

a b
A 1
A 2
B 5
B 5
B 4
C 6

I want to group by the first column and get second col

12条回答
  •  猫巷女王i
    2020-11-21 05:45

    You can do this using groupby to group on the column of interest and then apply list to every group:

    In [1]: df = pd.DataFrame( {'a':['A','A','B','B','B','C'], 'b':[1,2,5,5,4,6]})
            df
    
    Out[1]: 
       a  b
    0  A  1
    1  A  2
    2  B  5
    3  B  5
    4  B  4
    5  C  6
    
    In [2]: df.groupby('a')['b'].apply(list)
    Out[2]: 
    a
    A       [1, 2]
    B    [5, 5, 4]
    C          [6]
    Name: b, dtype: object
    
    In [3]: df1 = df.groupby('a')['b'].apply(list).reset_index(name='new')
            df1
    Out[3]: 
       a        new
    0  A     [1, 2]
    1  B  [5, 5, 4]
    2  C        [6]
    

提交回复
热议问题