Tableaux croisés dynamiques et tableaux de contingence
pd.pivot_table(), pd.crosstab() et remodelage des données pour les statistiques récapitulatives.
Tableaux croisés dynamiques et tableaux de contingence est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.
Remodelage pour mieux comprendre les données
Un tableau croisé dynamique transforme des données longues en grille et résume une valeur selon deux axes catégoriels. C’est le tableau croisé dynamique des feuilles de calcul, mais programmable.
import pandas as pd
df = pd.DataFrame({
"region": ["E", "E", "W", "W", "E"],
"product": ["A", "B", "A", "B", "A"],
"sales": [10, 20, 30, 40, 50],
})pivot_table de base
pd.pivot_table utilise values (les nombres à résumer), index (les lignes) et columns (les colonnes). Par défaut, il calcule la moyenne des cellules en double.
pt = pd.pivot_table(df, values="sales", index="region", columns="product")
print(pt)
# product A B
# region
# E 30.0 20.0
# W 30.0 40.0Choix de la fonction d’agrégation
Définissez aggfunc pour contrôler la manière dont les doublons sont regroupés : somme, moyenne, comptage, etc. Utilisez une liste pour en appliquer plusieurs à la fois.
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum")
print(pt)Fonctions d’agrégation multiples
Transmettez une liste de fonctions pour calculer plusieurs synthèses côte à côte.
pt = pd.pivot_table(df, values="sales", index="region",
aggfunc=["sum", "mean", "count"])
print(pt)Remplissage des cellules manquantes
Les combinaisons sans données deviennent NaN. fill_value les remplace, souvent par 0, pour obtenir des rapports clairs.
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum", fill_value=0)
print(pt)Marges (totaux)
Définissez margins=True pour ajouter les totaux généraux des lignes et des colonnes, étiquetés « Tous » par défaut.
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum",
fill_value=0, margins=True)
print(pt)Niveaux d’index multiples
Transmettez des listes à index ou columns pour obtenir des ventilations hiérarchiques, par exemple d’abord par région, puis par produit.
df["channel"] = ["on", "off", "on", "off", "on"]
pt = pd.pivot_table(df, values="sales",
index=["region", "channel"], aggfunc="sum")
print(pt)Tableau croisé avec crosstab
pd.crosstab est un tableau croisé spécialisé qui COUNTS la fréquence des combinaisons de deux variables catégorielles, sans nécessiter de colonne de valeurs.
ct = pd.crosstab(df["region"], df["product"])
print(ct)
# product A B
# region
# E 2 1
# W 1 1Normalisation de crosstab
L’argument normalize transforme les comptages en proportions : "index" par ligne, "columns" par colonne ou True sur le total général.
ct = pd.crosstab(df["region"], df["product"], normalize="index")
print(ct) # each row sums to 1.0crosstab avec des valeurs
Fournissez values et aggfunc pour que crosstab résume une mesure au lieu de compter, ce qui le rapproche de pivot_table.
ct = pd.crosstab(df["region"], df["product"],
values=df["sales"], aggfunc="sum")
print(ct)pivot_table ou crosstab
Utilisez pivot_table pour résumer une valeur numérique ; utilisez crosstab pour compter les fréquences des combinaisons de catégories. crosstab permet également de normaliser les résultats en proportions sur une seule ligne de code.
Vérification rapide
Testez vos connaissances en remodelage des données.
Récapitulatif
Boîte à outils de remodelage :
pd.pivot_table(values, index, columns, aggfunc)résume une mesurefill_valuepour les cellules vides,margins=Truepour les totaux- Fournissez des listes pour indexer les lignes et les colonnes de manière hiérarchique
pd.crosstabcompte les combinaisons ;normalizeproduit des proportions
Questions Fréquemment Posées
La leçon « Tableaux croisés dynamiques et tableaux de contingence » est-elle gratuite ?
Oui — le texte complet de « Tableaux croisés dynamiques et tableaux de contingence » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Tableaux croisés dynamiques et tableaux de contingence » ?
pd.pivot_table(), pd.crosstab() et remodelage des données pour les statistiques récapitulatives. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn AI with Python ?
Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Tableaux croisés dynamiques et tableaux de contingence » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?
Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- GroupBy et agrégation
- Tableaux croisés dynamiques et tableaux de contingence
- Fusion et jointure avancées
- Séries temporelles dans Pandas