Passer d’un format large à un format long avec melt()
La méthode melt() permet de transformer un DataFrame d’un format large (wide) en un format long (long format). Elle est souvent utilisée pour « déplier » un DataFrame en plusieurs lignes, où chaque observation est associée à une colonne spécifique de manière plus lisible ou mieux adaptée à certaines analyses.
Fonctions :
-
df.melt(id_vars=['col1'], value_vars=['col2', 'col3'])
La méthode melt() permet de transformer un DataFrame depuis un format large (wide) en un format long (tidy). C'est l'opposé de pivot() : on réduit le nombre de colonnes en empilant leurs valeurs, tout en conservant les colonnes identifiantes. ➡️ Très utile pour : Préparer des données pour certains types d'analyses ou visualisations (ex : seaborn attend souvent un format long). Dénormaliser des données avant des transformations supplémentaires.
Importation :
import pandas as pdAttributs :
Paramètre Description id_varsLes colonnes identifiantes à conserver (restent inchangées). value_varsLes colonnes à déplier en une seule colonne (fusionnées en deux nouvelles colonnes : variableetvalue).var_name(optionnel)Nom de la colonne résultante contenant les noms des colonnes originales (par défaut : 'variable').value_name(optionnel)Nom de la colonne résultante contenant les valeurs (par défaut : 'value').Exemple de code :
import pandas as pd # Exemple de DataFrame large df = pd.DataFrame({ 'Date': ['2024-01-01', '2024-01-02'], 'Produit_A': [100, 120], 'Produit_B': [150, 130] }) # Transformation en format long long_df = df.melt(id_vars=['Date'], value_vars=['Produit_A', 'Produit_B'], var_name='Produit', value_name='Vente') print(long_df)
Explication du code :
Importation de la bibliothèque
import pandas as pdCette ligne importe la bibliothèque pandas, qui permet de manipuler des structures de données tabulaires en Python.
Création d’un DataFrame large
df = pd.DataFrame({'Date': ['2024-01-01', '2024-01-02'], 'Produit_A': [100, 120], 'Produit_B': [150, 130]})On crée un DataFrame avec une colonne
Dateet deux colonnes représentant les ventes de deux produits différents,Produit_AetProduit_B.Transformation en format long
long_df = df.melt(id_vars=['Date'], value_vars=['Produit_A', 'Produit_B'], var_name='Produit', value_name='Vente')La méthode
melt()transforme le DataFrame en format long. Ici,Datereste une colonne fixe, et les colonnesProduit_AetProduit_Bsont fondées sous une seule colonneProduit, avec leurs valeurs dans la colonneVente.Affichage du DataFrame transformé
print(long_df)Cette ligne affiche le DataFrame après sa transformation en format long. Cela permet de restructurer les données de manière plus pratique pour certaines analyses ou visualisations.