Mysql
 sql >> Base de données >  >> RDS >> Mysql

Réplication de GROUP_CONCAT pour pandas.DataFrame

Procédez comme suit :

df.groupby('team').apply(lambda x: ','.join(x.user))

pour obtenir une Series de chaînes ou

df.groupby('team').apply(lambda x: list(x.user))

pour obtenir une Series de list s de chaînes.

Voici à quoi ressemblent les résultats :

In [33]: df.groupby('team').apply(lambda x: ', '.join(x.user))
Out[33]:
team
a       elmer, daffy, bugs, foghorn, goofy, marvin
b                               dawg, speedy, pepe
c                                   petunia, porky
dtype: object

In [34]: df.groupby('team').apply(lambda x: list(x.user))
Out[34]:
team
a       [elmer, daffy, bugs, foghorn, goofy, marvin]
b                               [dawg, speedy, pepe]
c                                   [petunia, porky]
dtype: object

Notez qu'en général toute autre opération sur ces types de Series seront lents et sont généralement découragés. S'il existe un autre moyen d'agréger sans mettre de list à l'intérieur d'une Series vous devriez plutôt envisager d'utiliser cette approche.