Pandas : Comment renommer des colonnes dans la fonction Groupby



Vous pouvez utiliser la syntaxe de base suivante pour renommer les colonnes dans une fonction groupby() dans pandas :

df.groupby('group_col').agg(sum_col1=('col1', 'sum'),
                            mean_col2=('col2', 'mean'),
                            max_col3=('col3', 'max'))

Cet exemple particulier calcule trois colonnes agrégées et les nomme sum_col1 , Mean_col2 et max_col3 .

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : Renommer les colonnes dans la fonction Groupby dans Pandas

Supposons que nous ayons le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   'points': [30, 22, 19, 14, 14, 11, 20, 28],
                   'assists': [5, 6, 6, 5, 8, 7, 7, 9],
                   'rebounds': [4, 13, 15, 10, 7, 7, 5, 11]})

#view DataFrame
print(df)

  team  points  assists  rebounds
0    A      30        5         4
1    A      22        6        13
2    A      19        6        15
3    A      14        5        10
4    B      14        8         7
5    B      11        7         7
6    B      20        7         5
7    B      28        9        11

Nous pouvons utiliser la syntaxe suivante pour regrouper les lignes par colonne d’ équipe , puis calculer trois colonnes agrégées tout en fournissant des noms spécifiques aux colonnes agrégées :

#calculate several aggregated columns by group and rename aggregated columns
df.groupby('team').agg(sum_points=('points', 'sum'),
                       mean_assists=('assists', 'mean'),
                       max_rebounds=('rebounds', 'max'))

	sum_points	mean_assists	max_rebounds
team			
A	        85	        5.50	          15
B	        73	        7.75	          11

Notez que les trois colonnes agrégées portent les noms personnalisés que nous avons fournis dans la fonction agg() .

Notez également que nous pourrions utiliser les fonctions NumPy pour calculer les valeurs somme, moyenne et maximale dans la fonction agg() si nous le souhaitons.

import numpy as np

#calculate several aggregated columns by group and rename aggregated columns
df.groupby('team').agg(sum_points=('points', np.sum),
                       mean_assists=('assists', np.mean),
                       max_rebounds=('rebounds', np.max))

	sum_points	mean_assists	max_rebounds
team			
A	        85	        5.50	          15
B	        73	        7.75	          11

Ces résultats correspondent à ceux de l’exemple précédent.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Comment répertorier tous les noms de colonnes dans Pandas
Comment trier les colonnes par nom dans Pandas
Comment supprimer les colonnes en double dans Pandas

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *