Mysql
 sql >> Database >  >> RDS >> Mysql

Replica di GROUP_CONCAT per pandas.DataFrame

Procedi come segue:

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

per ottenere una Series di stringhe o

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

per ottenere una Series di list s di stringhe.

Ecco come appaiono i risultati:

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

Si noti che in generale qualsiasi ulteriore operazione su questi tipi di Series saranno lenti e generalmente sono scoraggiati. Se c'è un altro modo per aggregare senza inserire un list all'interno di una Series dovresti invece considerare di utilizzare questo approccio.