在数据框中用逗号连接groupby列

2024-09-30 06:18:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个数据集:

>>> df = pd.DataFrame({'id_sin':['s123','s123','s124','s124'],
                       'raison':['first problem','second problem','album','dog']
    })
>>> df
  id_sin          raison
0   s123   first problem
1   s123  second problem
2   s124           album
3   s124             dog

这是预期输出:

  id_sin                         raison
0   s123  first problem, second problem
1   s124                     album, dog

我尝试的是:

df['raison'] = df.groupby('id_sin')['raison'].apply(lambda x: ', '.join(x))

但不起作用。。。我错过了什么?谢谢你的帮助!你知道吗


Tags: 数据iddataframedfalbumsinfirstpd
2条回答

尝试使用agg

df.groupby('id_sin')['raison'].agg(', '.join).reset_index()

输出:

  id_sin                         raison
0   s123  first problem, second problem
1   s124                     album, dog

尝试将组更改为列表:

df.groupby(['id_sin']).raison.apply(lambda x: ', '.join(list(x)))

在测试代码之后,您不应该执行df['raison'] =...,因为df.groupby('id_sin')['raison'].apply(lambda x: ', '.join(x))的长度为2,索引与长度为4的df不同。你知道吗

相关问题 更多 >

    热门问题