首页 > 解决方案 > Groupby id 并从每个不同列中的 id 获取每个字符串

问题描述

您好,我只想按 id 对元素进行分组,并在单独的列中显示每个字符串

原始数据框:

id|elements|
    1|a
    1|b
    1|c
    1|d
    2|a
    2|b
    2|b
    3|a
    3|a
    3|b
    3|c
    3|c
    3|c

期望的输出:

 id|column1|column2|column3|column4|column5|
    1 |a|b|c|d| | |
    2 |a|b|b|
    3 |a|a|b|c|c|c|

有任何想法吗?非常感谢您提前

标签: pandas-groupby

解决方案


鉴于您的原始数据框,您可以简单地执行以下操作:

df.groupby('id').apply(lambda x: x['element'].to_list()).apply(pd.Series)

输出:

    0   1   2   3   4   5
id                  
1   a   b   c   d   NaN NaN
2   a   b   b   NaN NaN NaN
3   a   a   b   c   c   c  

如果您不想id成为索引,请使用.reset_index().


推荐阅读