ConsigneCrée un DataFrame de ventes (colonnes : region, produit, ventes) et génère une table pivot avec les régions en index et les produits en colonnes
Une table pivot croise deux dimensions catégorielles pour les agréger sur une mesure. C'est l'équivalent du tableau croisé dynamique d'Excel.
Syntaxe
df.pivot_table( values='colonne_a_agreger', index='colonne_en_ligne', columns='colonne_en_colonne', aggfunc='sum' # ou 'mean', 'count', etc.)df = pd.DataFrame({ 'region': ['Nord', 'Sud', 'Nord', 'Sud', 'Nord'], 'produit': ['A', 'A', 'B', 'B', 'A'], 'ventes': [100, 80, 150, 120, 90]})pivot = df.pivot_table( values='ventes', index='region', columns='produit', aggfunc='sum')print(pivot)# produit A B# region# Nord 190 150# Sud 80 120fill_value=0 remplace les NaN (combinaisons sans données) par 0margins=True ajoute une ligne/colonne 'All' avec les totauxaggfunc=['mean', 'sum'] plusieurs agrégations à la foisaggfunc={'col1': 'sum', 'col2': 'mean'} différentes par colonneQuand on veut juste compter le nombre d'observations par combinaison :
pd.crosstab(df['region'], df['produit'])# produit A B# region# Nord 2 1# Sud 1 1pivot_table gère automatiquement les doublons (avec aggfunc). Sa cousine df.pivot() ne le fait pas — utilise toujours pivot_table en pratique.
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →