我有一个像这样的熊猫数据框:
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来做类似的事情吗?
pandas groupby
你可以使用以下方法groupby对感兴趣的列进行分组,然后apply list对每个分组进行分组:
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]