Réinitialiser l’index après un pivotement (reset_index())
La méthode reset_index() permet de réinitialiser l’index d’un DataFrame après un pivotement. Cela transforme l’index actuel en colonnes classiques et crée un nouvel index numérique. Cette opération est utile pour réorganiser les données après un pivotement, notamment pour éviter que l’index d’origine ne devienne une colonne supplémentaire, facilitant ainsi l’accès et l’analyse des données.
Fonctions :
-
df.reset_index()
La méthode reset_index() permet de réinitialiser l’index d’un DataFrame, c’est-à-dire de remettre les index par défaut (0, 1, 2, ...). Elle est souvent utilisée après des opérations comme pivot(), pivot_table() ou groupby(), qui peuvent produire des index multi-niveaux (MultiIndex). ✅ Elle remet les colonnes de l’index en colonnes normales du DataFrame.
Importation :
import pandas as pd
Attributs :
Paramètre Description level
Niveau ou niveaux de l’index à réinitialiser (utile avec un MultiIndex). drop
(bool)Si True
, l'index est réinitialisé sans être ajouté comme colonne (par défautFalse
).inplace
(bool)Si True
, applique directement la modification sur le DataFrame (sans retour).col_level
Si le DataFrame a des colonnes multi-niveaux, permet de préciser à quel niveau ajouter l’index. col_fill
Valeur de remplissage des colonnes vides après réinitialisation. Exemple de code :
import pandas as pd # Exemple de pivot_table 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 avec Magasin comme index pivot = df.pivot_table(index='Magasin', columns='Produit', values='Vente', aggfunc='mean') print("Pivot Table avant reset_index():\n", pivot) # Réinitialiser l'index pivot_reset = pivot.reset_index() print("\nPivot Table après reset_index():\n", pivot_reset)
Explication du code :
La ligne
import pandas as pd
importe la bibliothèque pandas, renommée ici enpd
pour faciliter son utilisation dans le code.Exemple de pivot_table
Ensuite, un DataFrame nommé
df
est créé avec les colonnes suivantes :Magasin
,Produit
, etVente
. Il contient des données fictives pour des magasins, des produits et leurs ventes respectives.df = pd.DataFrame({ 'Magasin': ['Paris', 'Paris', 'Lyon', 'Lyon', 'Paris'], 'Produit': ['A', 'B', 'A', 'B', 'A'], 'Vente': [100, 150, 80, 120, 130] })
Ce code crée un DataFrame avec des informations sur les magasins, les produits et les ventes associées.
Création d'une pivot_table avec Magasin comme index
La fonction
pivot_table()
est utilisée pour créer un tableau croisé dynamique à partir du DataFramedf
. Les paramètres spécifient :index='Magasin'
: L'index du tableau sera basé sur les magasins.columns='Produit'
: Les produits seront affichés en colonnes.values='Vente'
: Les valeurs dans le tableau seront les ventes.aggfunc='mean'
: La fonction d'agrégation utilisée est la moyenne des ventes.
Le résultat de
pivot = df.pivot_table(index='Magasin', columns='Produit', values='Vente', aggfunc='mean')
sera un tableau croisé dynamique où chaque magasin aura une ligne et les produits seront les colonnes avec la moyenne des ventes comme valeur.Réinitialiser l'index
La méthode
reset_index()
permet de réinitialiser l'index du tableau croisé dynamique. Cela transforme l'index en une colonne standard et crée un nouvel index numérique.pivot_reset = pivot.reset_index()
Après cette opération, le tableau croisé dynamique est réindexé de manière numérique.
Afficher les résultats
La ligne
print("Pivot Table avant reset_index():\n", pivot)
affiche le tableau croisé dynamique avant réinitialisation de l'index.La ligne
print("\nPivot Table après reset_index():\n", pivot_reset)
affiche le tableau après réinitialisation de l'index.