Maison > développement back-end > Tutoriel Python > Comment puis-je concaténer efficacement des valeurs dans des groupes Pandas GroupBy à l'aide d'un délimiteur ?

Comment puis-je concaténer efficacement des valeurs dans des groupes Pandas GroupBy à l'aide d'un délimiteur ?

Linda Hamilton
Libérer: 2024-12-04 22:28:14
original
898 Les gens l'ont consulté

How Can I Efficiently Concatenate Values within Pandas GroupBy Groups Using a Delimiter?

Pandas GroupBy avec Delimiter Joiner

Lors du regroupement de données dans Pandas avec plusieurs valeurs, il peut être nécessaire de concaténer des valeurs au sein de groupes à l'aide d'un délimiteur spécifique. Cependant, une simple opération de regroupement et de somme peut entraîner une sortie indésirable sans le délimiteur souhaité.

Considérez le code suivant :

import pandas as pd

df = pd.read_csv("Inputfile.txt", sep='\t')
group = df.groupby(['col'])['val'].sum()
# Output:
# A CatTiger
# B BallBat
Copier après la connexion

Cela donne une seule chaîne avec des valeurs concaténées, sans le délimiteur de trait d'union souhaité.

Pour obtenir le résultat souhaité, vous pouvez utiliser la fonction Appliquer en combinaison avec join :

group = df.groupby(['col'])['val'].sum().apply(lambda x: '-'.join(x))
Copier après la connexion

Cependant, cette solution peut toujours ne pas produire le résultat attendu en raison de caractères indésirables inclus dans chaque valeur.

Solution alternative

Pensez plutôt à utiliser la fonction agg avec le paramètre join :

df.groupby('col')['val'].agg('-'.join)
Copier après la connexion

Cela concaténera correctement les valeurs au sein des groupes en utilisant le délimiteur de trait d'union, fournissant le résultat souhaité :

col
A    Cat-Tiger
B     Ball-Bat
Name: val, dtype: object
Copier après la connexion

Mise à jour de la solution

Pour gérer les colonnes MultiIndex ou Index, vous pouvez réinitialiser l'index et le renommer à l'aide de reset_index function :

df1 = df.groupby('col')['val'].agg('-'.join).reset_index(name='new')
Copier après la connexion

Cela convertira l'index en une nouvelle colonne nommée « nouveau », offrant un moyen pratique de continuer à travailler avec les données regroupées.

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