Utiliser pivot_table() pour l’agrégation des données
La fonction pivot_table() de Pandas permet de créer un tableau croisé dynamique avec des données agrégées. Elle est utilisée pour résumer des données, appliquer des fonctions d’agrégation (comme la moyenne, la somme, le comptage, etc.), et organiser les résultats dans un format plus lisible.
Fonctions :
-
df.pivot_table(index='col1', columns='col2', values='col3', aggfunc='mean')
La méthode pivot_table() permet de créer une table de contingence ou un tableau croisé dynamique à partir des données du DataFrame. Elle est utilisée pour agréger, regrouper et résumer des données selon différentes dimensions, avec des fonctions d'agrégation personnalisées (comme mean, sum, count, etc.). ➡️ C'est un pivot plus puissant que pivot(), car il permet de gérer les doublons et d'agréger les données.
Importation :
import pandas as pd
Attributs :
Paramètre Description index
La ou les colonnes qui servent d’index dans la table résultat. columns
Les colonnes à répartir en colonnes distinctes (valeurs deviennent en-têtes). values
La ou les colonnes numériques sur lesquelles appliquer l’agrégation. aggfunc
Fonction d'agrégation à appliquer ( mean
,sum
,count
,min
,max
,np.median
, etc.).fill_value
(optionnel)Valeur utilisée pour remplacer les valeurs manquantes dans la table (exemple : 0
).margins
(optionnel)Ajoute les totaux généraux si True
.dropna
(optionnel)Supprime les colonnes dont toutes les valeurs sont NaN si True
.Exemple de code :
import pandas as pd # Exemple de DataFrame df = pd.DataFrame({ 'Magasin': ['Paris', 'Paris', 'Lyon', 'Lyon', 'Paris'], 'Produit': ['A', 'B', 'A', 'B', 'A'], 'Vente': [100, 150, 80, 120, 130] }) # Création d'une pivot_table pivot = df.pivot_table(index='Magasin', columns='Produit', values='Vente', aggfunc='mean') print(pivot)
Explication du code :
La
pivot_table
créée :-
- index='Magasin' ➡️ Les lignes sont organisées par magasin.
- columns='Produit' ➡️ Les colonnes deviennent les produits distincts (A et B).
- values='Vente' ➡️ On utilise les données de la colonne Vente.
- aggfunc='mean' ➡️ On calcule la moyenne des ventes par combinaison magasin-produit.
🔹 Remarques pratiques
-
pivot_table() vs pivot()
➡️pivot()
échoue si plusieurs valeurs existent pour la même combinaison(index, columns)
.
➡️pivot_table()
gère les doublons viaaggfunc
(par défautmean
). - Tu peux changer l'agrégation en utilisant d'autres fonctions
- Tu peux remplir les NaN avec
fill_value
:
-