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 个回答
-
你可以使用以下方法
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]