Shu*_*shu 3 dataframe pandas pandas-groupby
我对 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
Run Code Online (Sandbox Code Playgroud)
我想按 id 分组并以列表形式获取其他两列中的值:
id name color
id_1 [alex,sara] [blue,black]
id_2 [james,aly] [yellow,red]
id_4 [dave,lin] [pink,grey]
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法可以做到这一点?
使用groupbyand aggby 自定义函数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]
Run Code Online (Sandbox Code Playgroud)