我对 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]
有没有简单的方法可以做到这一点?
最佳答案
使用groupby
和 agg
通过带有 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]
关于Pandas:根据另一列中的值对两列进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45436938/