Regrouper les données par une colonne
La fonction groupby(‘colonne’) permet de regrouper les données d’un DataFrame en fonction des valeurs d’une colonne spécifique. Cela permet ensuite d’appliquer des opérations d’agrégation, de transformation ou de filtrage sur chaque groupe de manière indépendante. Elle est couramment utilisée pour effectuer des résumés statistiques ou des calculs par catégories.
Fonctions :
-
groupby('colonne')
La méthode groupby() permet de regrouper les données d'un DataFrame en fonction d'une ou plusieurs colonnes. Cela permet d'effectuer des opérations d'agrégation sur chaque groupe, comme le calcul de la somme, de la moyenne, ou d'autres statistiques. Cette fonction est très utile pour effectuer des analyses statistiques sur des sous-ensembles de données.
Importation :
import pandas as pd
Attributs :
Paramètre Description by
Colonne ou liste de colonnes sur lesquelles effectuer le regroupement. axis
Spécifie l'axe sur lequel effectuer l'agrégation. Par défaut, c'est l'axe des lignes ( 0
).level
Permet de spécifier un niveau d'index (utile pour les DataFrames avec un index multi-niveau). sort
Booléen pour indiquer si les résultats doivent être triés ou non (par défaut, True
).as_index
Booléen qui permet de contrôler si les colonnes de regroupement doivent être utilisées comme index (par défaut, True
).Exemple de code :
import pandas as pd # Exemple de DataFrame data = { 'nom': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'], 'ville': ['Paris', 'Lyon', 'Paris', 'Lyon', 'Paris'], 'âge': [24, 30, 35, 30, 24], 'score': [88, 92, 75, 85, 95] } df = pd.DataFrame(data) # Regrouper les données par 'ville' et calculer la moyenne de 'âge' et 'score' grouped = df.groupby('ville').mean('age', 'score') print("Données regroupées par ville avec moyenne de 'âge' et 'score' :") print(grouped)
Explication du code :
import pandas as pd
importe la bibliothèque pandas, renommée ici enpd
pour simplifier son utilisation dans le code.Exemple de DataFrame
Le dictionnaire
data
contient quatre clés :'nom'
,'ville'
,'âge'
, et'score'
, chacune associée à une liste de valeurs. Ce dictionnaire est utilisé pour créer un DataFramedf
.Regrouper les données par 'ville' et calculer la moyenne de 'âge' et 'score'
La méthode
groupby('ville')
permet de regrouper les lignes du DataFrame en fonction de la colonne'ville'
. Ensuite,mean()
calcule la moyenne des valeurs numériques dans chaque groupe, c'est-à-dire la moyenne des colonnes'âge'
et'score'
pour chaque ville.grouped = df.groupby('ville').mean('age', 'score')
essaie de regrouper les données par ville et de calculer la moyenne des colonnes'âge'
et'score'
. Cependant, il y a une petite erreur dans l'utilisation de la méthodemean()
: elle ne prend pas de paramètres supplémentaires comme'age'
et'score'
. Il faudrait plutôt utiliserdf.groupby('ville')[['âge', 'score']].mean()
pour obtenir la moyenne des deux colonnes. Le résultat est assigné à la variablegrouped
.Enfin,
print(grouped)
affiche les données regroupées par ville, avec la moyenne de l'âge et du score pour chaque ville.