Réorganiser les données avec pivot()

La fonction pivot() permet de réorganiser un tableau de données en restructurant ses lignes et colonnes selon des valeurs spécifiques d’une ou plusieurs colonnes. Cette opération transforme les données d’un format « long » à un format « large », facilitant ainsi l’analyse en mettant en évidence les relations entre variables et en simplifiant la visualisation des données. Le pivotage est particulièrement utile pour créer des tableaux plus lisibles et structurés à partir de données brutes.

Fonctions :

  • df.pivot(index='col1', columns='col2', values='col3')

    Crée un nouveau DataFrame en réorganisant les données selon une structure de tableau croisé. On passe : Une colonne pour l'index. Une colonne pour les en-têtes de colonnes. Une colonne pour les valeurs. Cela permet de transformer un DataFrame en format long (tidy) en format large (wide). C'est idéal pour restructurer les données avant une analyse ou une visualisation.

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Description
    index Colonne(s) à utiliser comme index du DataFrame résultant.
    columns Colonne(s) à utiliser pour créer les noms de colonnes.
    values Colonne(s) contenant les valeurs à remplir dans les cellules du tableau résultant.

    Exemple de code :

    import pandas as pd
    
    # DataFrame exemple
    df = pd.DataFrame({
        'Date': ['2024-01-01', '2024-01-01', '2024-01-02', '2024-01-02'],
        'Produit': ['A', 'B', 'A', 'B'],
        'Vente': [100, 150, 120, 130]
    })
    
    # Réorganisation avec pivot
    pivot_df = df.pivot(index='Date', columns='Produit', values='Vente')
    
    print(pivot_df)
    Résultat du code

    Explication du code :

    🔹 Explication du code

          On applique un pivot :

      • index='Date' ➡️ Les dates deviennent l'index des lignes.
      • columns='Produit' ➡️ Les produits deviennent les en-têtes de colonnes.
      • values='Vente' ➡️ Les ventes remplissent les cellules du tableau.

    🔸 Remarques pratiques

    • pivot() fonctionne si chaque combinaison index/columns est unique.
      ➡️ Si ce n'est pas le cas, il lèvera une erreur ValueError: Index contains duplicate entries.
      ➡️ Pour les cas avec doublons, il faut utiliser pivot_table() qui peut agréger (aggfunc).

    • Si besoin, on peut remettre à plat un DataFrame pivoté avec .reset_index()