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

Replikerer GROUP_CONCAT for pandas.DataFrame

Gør følgende:

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

for at få en Series af strenge eller

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

for at få en Series af list s af strenge.

Sådan ser resultaterne ud:

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

Bemærk, at der generelt er yderligere handlinger på disse typer Series vil være langsom og er generelt modløse. Hvis der er en anden måde at aggregere på uden at sætte en list inde i en Series du bør overveje at bruge den tilgang i stedet for.



  1. Opdater flere rækker med kendte nøgler uden at indsætte nye rækker, hvis der findes ikke-eksisterende nøgler

  2. Hvordan kan jeg udføre mange forespørgsler på én side?

  3. Hvad er der med (nolock) i SQL Server?

  4. MySQLd starter ikke efter brygopgradering fra 5.6 til 5.7