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

    Explication du code :

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

    Création d'un DataFrame avec un MultiIndex

    Le code crée un DataFrame nommé df avec trois colonnes : 'A', 'B', et 'C'. Les données de chaque colonne sont spécifiées comme des listes dans le dictionnaire passé à pd.DataFrame().

    Ensuite, l'index du DataFrame est modifié pour être un MultiIndex en utilisant la méthode pd.MultiIndex.from_tuples(), qui crée un index à deux niveaux à partir des tuples spécifiés. Les noms des niveaux d'index sont définis par names=['lettre', 'num'].

    Appliquer unstack() pour transformer l'index en colonnes

    La méthode unstack() est utilisée pour "démultiplier" (unstack) l'un des niveaux de l'index, transformant ainsi le DataFrame de sorte que l'un des niveaux de l'index devienne des colonnes. Par défaut, unstack() déplace le dernier niveau de l'index vers les colonnes.

    resultat_unstack = df.unstack() applique cette transformation et assigne le résultat à la variable resultat_unstack.

    Afficher le résultat

    La fonction print() affiche le contenu de resultat_unstack, montrant le DataFrame après que le niveau de l'index ait été déplacé vers les colonnes.