Pandas:基于另一列的值对两列进行分组

3

我很新于Python/Pandas,我有一个类似于这样的数据框:

 id         name        color
id_1        alex        blue
id_2        james       yellow
id_1        sara        black
id_4        dave        pink
id_4        lin         grey
id_2        aly         red

我想按id分组,并将另外两列的值作为列表获取:

  id           name              color
id_1        [alex,sara]       [blue,black]
id_2        [james,aly]       [yellow,red]
id_4        [dave,lin]        [pink,grey]

有没有简单的方法来做到这一点?

可能是 https://dev59.com/JlsW5IYBdhLWcg3wm4UK 的重复问题。 - piroot
1个回答

5

使用 groupbyagg 函数通过自定义函数并使用 tolist

df = df.groupby('id').agg(lambda x: x.tolist())
print (df)
              name          color
id                               
id_1  [alex, sara]  [blue, black]
id_2  [james, aly]  [yellow, red]
id_4   [dave, lin]   [pink, grey]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接