Python-在pandas groupby中将列表中的行分组

发布于 2021-02-02 23:23:37

我有一个像这样的熊猫数据框:

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

我想按第一列分组并获得第二列作为行中的列表:

A [1,2]
B [5,5,4]
C [6]

可以使用pandas groupby来做类似的事情吗?

关注者
0
被浏览
199
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    你可以使用以下方法groupby对感兴趣的列进行分组,然后apply list对每个分组进行分组:

    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]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看