Pandas:根据另一列中的值对两列进行分组

2023-12-22

我对 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]

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


Use groupby http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html and agg http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.DataFrameGroupBy.agg.html通过自定义函数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]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas:根据另一列中的值对两列进行分组 的相关文章

随机推荐