Réorganiser les données avec pivot()

La méthode pivot() permet de réorganiser les données d’un DataFrame en convertissant des colonnes spécifiques en index ou en colonnes de manière à obtenir un tableau plus lisible ou mieux adapté pour l’analyse.

Fonctions :


    Warning: Trying to access array offset on value of type bool in /home/datacrt/www/wp-content/themes/knowledge-base-lite/single-sous-section.php on line 59
  • 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()