Pandas : comment utiliser Groupby et Plot (avec exemples)
Vous pouvez utiliser les méthodes suivantes pour effectuer un groupby et un tracé avec un DataFrame pandas :
Méthode 1 : regrouper par et tracer plusieurs lignes dans un seul tracé
#define index column df.set_index('day', inplace=True) #group data by product and display sales as line chart df.groupby('product')['sales'].plot(legend=True)
Méthode 2 : regrouper par et tracer des lignes dans des sous-parcelles individuelles
pd.pivot_table(df.reset_index(), index='day', columns='product', values='sales' ).plot(subplots=True)
L’exemple suivant montre comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'day': [1, 2, 3, 4, 5, 1, 2, 3, 4, 5], 'product': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'], 'sales': [4, 7, 8, 12, 15, 8, 11, 14, 19, 20]}) #view DataFrame df day product sales 0 1 A 4 1 2 A 7 2 3 A 8 3 4 A 12 4 5 A 15 5 1 B 8 6 2 B 11 7 3 B 14 8 4 B 19 9 5 B 20
Méthode 1 : regrouper par et tracer plusieurs lignes dans un seul tracé
Le code suivant montre comment regrouper le DataFrame par la variable « produit » et tracer les « ventes » de chaque produit dans un graphique :
#define index column df.set_index('day', inplace=True) #group data by product and display sales as line chart df.groupby('product')['sales'].plot(legend=True)
L’axe des x affiche le jour, l’axe des y affiche les ventes et chaque ligne individuelle affiche les ventes des produits individuels.
Méthode 2 : regrouper par et tracer des lignes dans des sous-parcelles individuelles
Le code suivant montre comment regrouper le DataFrame par la variable « produit » et tracer les « ventes » de chaque produit dans des sous-parcelles individuelles :
pd.pivot_table(df.reset_index(), index='day', columns='product', values='sales' ).plot(subplots=True)
Le premier graphique montre les ventes du produit A et le deuxième graphique montre les ventes du produit B.
Notez que nous pouvons également utiliser l’argument layout pour spécifier la disposition des sous-traces.
Par exemple, nous pourrions spécifier que les sous-tracés soient dans une grille avec une ligne et deux colonnes :
pd.pivot_table(df.reset_index(), index='day', columns='product', values='sales' ).plot(subplots=True, layout=(1,2))
Ressources additionnelles
Les didacticiels suivants expliquent comment créer d’autres visualisations courantes dans les pandas :
Comment créer un boxplot à partir de Pandas DataFrame
Comment créer un diagramme circulaire à partir de Pandas DataFrame
Comment créer un histogramme à partir de Pandas DataFrame