Python 3.x 获取在一列中共享值的行,并在dataframe中合并来自另一列的值

Python 3.x 获取在一列中共享值的行,并在dataframe中合并来自另一列的值,python-3.x,pandas,Python 3.x,Pandas,我有一个多行的熊猫数据框,可以共享一个ID。每行也有一个“标签”列的值。我想要的是合并共享相同ID的所有标签 例如,假设这是我所拥有的: id | label ----------- 1 a 1 b 2 a 2 c 2 d 3 e 我想要的是这样的: id | label_list ---------------- 1 [a,b] 2 [a,c,d] 3 [e] 因此,共享相同ID的标签被合并成一个列表。最有效的

我有一个多行的熊猫数据框,可以共享一个ID。每行也有一个“标签”列的值。我想要的是合并共享相同ID的所有标签

例如,假设这是我所拥有的:

id | label 
-----------
 1    a
 1    b
 2    a
 2    c
 2    d
 3    e
我想要的是这样的:

id | label_list
----------------
1      [a,b]
2      [a,c,d]
3      [e]
因此,共享相同ID的标签被合并成一个列表。最有效的方法是什么?

您需要

df.groupby('id').label.apply(list).reset_index()

id       label 
1       [a, b]
2    [a, c, d]
3          [e]

此解决方案与@Vaishali的解决方案非常相似,但它使用
.agg()
而不是
.apply()
方法:

In [110]: df.groupby('id', as_index=False)['label'].agg(lambda x: x.tolist())
Out[110]:
   id      label
0   1     [a, b]
1   2  [a, c, d]
2   3        [e]
可能重复的