Utilisation de unstack() pour transformer un index en colonnes

La méthode unstack() permet de transformer un niveau d’index en colonnes dans un DataFrame, ce qui est l’inverse de la méthode stack().

Fonctions :

  • df.unstack()

    La fonction unstack() permet de "détacher" un des niveaux de l'index d'un DataFrame ou d'une série multi-indexée et de le convertir en colonnes. Elle est souvent utilisée pour "déplier" une structure multi-indexée afin de rendre les données plus faciles à analyser ou à visualiser. Lorsqu'on applique unstack(), l'index de niveau supérieur devient une colonne, et les valeurs associées aux autres niveaux d'index deviennent les colonnes de la nouvelle structure. Cette opération inverse l'effet de la fonction stack(), qui empile les colonnes en lignes.

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Type Description Valeur par défaut
    level int, str (optionnel) Indique quel niveau de l'index à détacher. Si omis, le dernier niveau est utilisé par défaut. None
    fill_value scalar (optionnel) Permet de définir une valeur par défaut à utiliser pour remplir les valeurs manquantes après l'unstack(). None

    Exemple de code :

    import pandas as pd
    
    # Création d'un DataFrame avec un MultiIndex
    df = pd.DataFrame({
        'A': [1, 2, 3],
        'B': [4, 5, 6],
        'C': [7, 8, 9]
    })
    df.index = pd.MultiIndex.from_tuples([('X', 1), ('X', 2), ('Y', 1)], names=['lettre', 'num'])
    
    # Appliquer unstack() pour transformer l'index en colonnes
    resultat_unstack = df.unstack()
    
    # Afficher le résultat
    print(resultat_unstack)

    Explication du code :

    1. df.unstack() :

      • Cette fonction permet de convertir un DataFrame ou une série multi-indexée en un DataFrame "étendu", où un niveau d'index devient une colonne.
      • Si l'index est déjà un MultiIndex, unstack() déplace le dernier niveau d'index dans les colonnes. Vous pouvez spécifier un autre niveau de l'index si vous souhaitez détacher un niveau spécifique.
    2. Utilisation de level :

      • Le paramètre level permet de choisir le niveau à détacher. Si vous avez un MultiIndex avec plusieurs niveaux, vous pouvez choisir de détacher un niveau particulier plutôt que le dernier niveau par défaut.

    🔹 Remarques pratiques

    • Manipulation de MultiIndex :
      unstack() est très utile lorsque vous travaillez avec des MultiIndex. Il permet de "détacher" un niveau de l'index pour obtenir une vue plus large et plus facile à analyser des données.

    • Utilisation de fill_value :
      Si des combinaisons d'index ne sont pas présentes pour certaines colonnes, vous pouvez utiliser le paramètre fill_value pour spécifier la valeur par défaut qui sera utilisée pour remplir ces cases vides. Par exemple, df.unstack(fill_value=0) remplira les valeurs manquantes par zéro.

    • Inverse de stack() :
      unstack() inverse l'effet de stack(). Tandis que stack() empile les colonnes en lignes, unstack() étend un niveau d'index en colonnes.