Utilisation de stack() pour empiler les colonnes en lignes
La méthode stack() permet de « empiler » les colonnes d’un DataFrame sous forme de lignes, créant ainsi une structure à plusieurs niveaux (un MultiIndex) pour les nouvelles lignes.
Fonctions :
-
df.stack()
La fonction stack() permet d'empiler les colonnes d'un DataFrame en lignes. Autrement dit, elle transforme un DataFrame en une structure de type série (avec un MultiIndex), où les colonnes sont regroupées sous l'index, et chaque cellule de ces colonnes devient une valeur dans une nouvelle série. Elle est particulièrement utile lorsque vous souhaitez convertir des données structurées en format large (avec plusieurs colonnes) en un format plus long, avec une seule colonne contenant toutes les valeurs de l'origine. Cette méthode permet également de simplifier le travail avec des données multi-indexées.
Importation :
import pandas as pd
Attributs :
Paramètre Type Description Valeur par défaut Aucun paramètre requis. None Par défaut, stack()
empile toutes les colonnes.None
Exemple de code :
import pandas as pd # Création d'un DataFrame df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9] }) # Empiler les colonnes en lignes resultat_stack = df.stack() # Afficher le résultat print(resultat_stack)
Explication du code :
-
df.stack()
:- Cette ligne empile les colonnes du DataFrame
df
sous une nouvelle structure où chaque valeur de chaque colonne devient une ligne. - Le résultat de
stack()
est une série où l'index est constitué de deux niveaux : l'index original du DataFrame et les noms des colonnes, qui sont transformés en un deuxième niveau de l'index.
- Cette ligne empile les colonnes du DataFrame
-
Transformation en MultiIndex :
stack()
crée unMultiIndex
pour l'index de la série résultante, avec les niveaux d'index d'origine du DataFrame et les noms des colonnes empilées.
🔹 Remarques pratiques
-
Conversion en série :
stack()
convertit un DataFrame en une série où l'index est unMultiIndex
. Chaque ligne de la série correspond à une valeur d'origine, et chaque colonne est empilée sous un index supplémentaire. -
Utilisation de unstack() pour l'inverse :
Vous pouvez également utiliser la fonctionunstack()
pour transformer une série ou un DataFrame à multi-index en un format plus large (en étalant les valeurs d'un des niveaux de l'index en colonnes). -
Données manquantes :
Si certaines colonnes contiennent des valeurs manquantes (NaN), ces valeurs seront également empilées et apparaîtront dans la série résultante.
-