如何分组和创建字符串列表

我有:

df=pd.DataFrame({'a':[1,1,2],'b':[[1,2,3],[2,5],[3]],'c':['f','df','ere']})
df
    a   b           c
0   1   [1, 2, 3]   f
1   1   [2, 5]      df
2   2   [3]         ere

我想串联并在每个元素上创建一个列表:

pd.DataFrame({'a':[1,2],'b':[[1,2,3,2,5],[3]],'c':[['f', 'df'],['ere']]})
    a   b               c
0   1   [1, 2, 3, 2, 5] [f, df]
1   2   [3]             [ere]

我试过了:

df.groupby('a').agg({'b': 'sum', 'c': lambda x: list(''.join(x))})

a   b               c
1   [1, 2, 3, 2, 5] [f, d, f]
2   [3]             [e, r, e]

但这并不完全正确。

有什么建议?

评论
  • Viola
    Viola 回复

    您几乎完全正确:

    df.groupby('a', as_index=False).agg({
        'b': 'sum',
        'c': list    # no join needed
    })
    

    输出:

       a                b        c
    0  1  [1, 2, 3, 2, 5]  [f, df]
    1  2              [3]    [ere]