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 :
import pandas as pd
importe la bibliothèque pandas, renommée ici enpd
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 parnames=['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 variableresultat_unstack
.Afficher le résultat
La fonction
print()
affiche le contenu deresultat_unstack
, montrant le DataFrame après que le niveau de l'index ait été déplacé vers les colonnes.