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 :
-
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.
-
Utilisation de
level
:- Le paramètre
level
permet de choisir le niveau à détacher. Si vous avez unMultiIndex
avec plusieurs niveaux, vous pouvez choisir de détacher un niveau particulier plutôt que le dernier niveau par défaut.
- Le paramètre
🔹 Remarques pratiques
-
Manipulation de
MultiIndex
:unstack()
est très utile lorsque vous travaillez avec desMultiIndex
. 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ètrefill_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 destack()
. Tandis questack()
empile les colonnes en lignes,unstack()
étend un niveau d'index en colonnes.
-