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éfaut False).
    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)
    Résultat du code

    Explication du code :

    La ligne import pandas as pd importe la bibliothèque pandas, renommée ici en pd pour faciliter son utilisation dans le code.

    Exemple de pivot_table

    Ensuite, un DataFrame nommé df est créé avec les colonnes suivantes : Magasin, Produit, et Vente. 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 DataFrame df. 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.