
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 BallBatCela 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))
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)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
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')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!
Migrer les données d'un téléphone Android vers un téléphone Apple
Étapes de création du projet SpringBoot
Recommandations sur les logiciels de bureau Android
Comment effacer le flotteur en CSS
Qu'est-ce que le trading de devises numériques
Touches de raccourci pour changer de fenêtre
A quoi sert un routeur logiciel ?
Éléments de base des présentations