Regrouper par plusieurs colonnes
La méthode groupby() permet également de regrouper les données en fonction de plusieurs colonnes. En passant une liste de colonnes à groupby(), vous pouvez créer des groupes hiérarchiques qui sont définis par la combinaison des valeurs de ces colonnes. Cette approche est utile lorsque vous voulez analyser des sous-groupes plus spécifiques, comme par exemple regrouper des ventes par mois et par région.
Fonctions :
-
groupby(['colonne1', 'colonne2'])
La méthode groupby() permet de regrouper les données par une ou plusieurs colonnes. Lorsque plusieurs colonnes sont spécifiées, chaque combinaison unique de valeurs des colonnes sera considérée comme un groupe distinct. Cela permet de réaliser des agrégations sur des sous-ensembles de données plus précis, par exemple, regrouper les données par ville et par âge.
Importation :
import pandas as pd
Attributs :
Paramètre Description by
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 pour les DataFrames avec un index multi-niveau. 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 par 'ville' et 'âge' et calculer la somme des scores grouped = df.groupby(['ville', 'âge']).sum() print("Données regroupées par 'ville' et 'âge' avec la somme des '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 par 'ville' et 'âge' et calculer la somme des scores
La méthode
groupby(['ville', 'âge'])
permet de regrouper les lignes du DataFrame en fonction des valeurs des colonnes'ville'
et'âge'
. Ensuite,sum()
est utilisé pour calculer la somme des valeurs numériques dans chaque groupe, ici pour la colonne'score'
.grouped = df.groupby(['ville', 'âge']).sum()
regroupe donc le DataFrame par'ville'
et'âge'
, puis calcule la somme des scores dans chaque groupe. Le résultat est assigné à la variablegrouped
.Enfin,
print(grouped)
affiche les résultats des regroupements, montrant la somme des scores pour chaque combinaison unique de ville et d'âge.