Maison > développement back-end > Tutoriel Python > Comment joindre efficacement des valeurs groupées dans Pandas avec un délimiteur ?

Comment joindre efficacement des valeurs groupées dans Pandas avec un délimiteur ?

Barbara Streisand
Libérer: 2024-12-16 19:55:18
original
345 Les gens l'ont consulté

How to Efficiently Join Grouped Values in Pandas with a Delimiter?

Joindre des valeurs groupées avec un délimiteur dans Pandas

Lors de l'utilisation de la fonction groupby pour regrouper des données avec plusieurs valeurs, il est courant de rencontrer le problème de concaténer ces valeurs sans délimiteur. Pour résoudre ce problème, vous pouvez utiliser la méthode agg.

Considérez le DataFrame suivant :

col | val
-----|-----
A    | Cat
A    | Tiger
B    | Ball
B    | Bat
Copier après la connexion

Pour regrouper ces lignes en fonction de la colonne col et concaténer les valeurs dans la colonne val, utilisez le code suivant :

import pandas as pd
df = pd.DataFrame({'col': ['A', 'A', 'B', 'B'], 'val': ['Cat', 'Tiger', 'Ball', 'Bat']})
grouped = df.groupby('col')['val'].agg('-'.join)
Copier après la connexion

Cette approche devrait donner le résultat souhaité :

col | val
-----|-----
A    | Cat-Tiger
B    | Ball-Bat
Copier après la connexion

Cependant, si la méthode apply est utilisée comme alternative, cela peut conduire à un résultat inattendu avec des valeurs avec trait d'union apparaissant plusieurs fois, comme indiqué ci-dessous :

df.groupby('col')['val'].apply(lambda x: '-'.join(x))

col | val
-----|-----
A        | C-a-t-T-i-g-e-r
B          | B-a-l-l-B-a-t
Copier après la connexion

Pour éviter ce problème, utilisez plutôt la méthode agg, comme démontré dans l'exemple ci-dessus.

De plus, pour convertir l'index groupé ou le MultiIndex en colonnes régulières, vous pouvez utiliser la méthode reset_index :

df1 = grouped.reset_index(name='new')
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal