La fonction Python Pandas DataFrame.groupby() permet de grouper des données selon certains critères et d’effectuer différentes agrégations et transformations sur ces groupes.

Hébergement Web
Hébergement Web flexible, performant et sûr
  • Certificat SSL et protection DDoS
  • Sauvegarde et restauration des données
  • Assistance 24/7 et conseiller personnel

Syntaxe de Pandas DataFrame.groupby()

La fonction Pandas groupby() prend jusqu’à quatre paramètres. La syntaxe de base est la suivante :

DataFrame.groupby(by=None, level=None, as_index=True, sort=True, group_keys=True, dropna=True)
python

Paramètres pertinents

Paramètres Description Valeur par défaut
by Clé ou liste Python de clés pour le regroupement ; ne se combine avec level que pour des multi-index None
level Utilisé dans les index multiples pour spécifier un ou plusieurs niveaux, de sorte que le regroupement se fasse selon des niveaux spécifiques None
as_index Si True, les clés de groupe sont définies comme index du DataFrame résultant True
group_keys Si True, les clés de groupe sont incluses dans les index des groupes True
sort Si True, trie les groupes par ordre croissant des clés True
dropna Si True, exclut les groupes contenant uniquement des valeurs NaN True

Application de Pandas DataFrame.grouby()

La fonction Pandas groupyby() est particulièrement utile pour analyser et agréger de grandes quantités de données afin de détecter des modèles ou des anomalies.

Regrouper et agréger

Nous considérons ici un ensemble de données sur les ventes de produits qui contient des informations sur la date de vente, le produit vendu et la quantité vendue :

import pandas as pd
# Exemple de jeu de données avec des ventes de produits
données = {
    'Date': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-03'],
    'Produit': ['A', 'B', 'A', 'B', 'A'],
    'Quantité': [10, 20, 15, 25, 10]
}
df = pd.DataFrame(données)
print(df)
python

Le DataFrame résultant ressemble à ceci :

Date Produit  Quantité
0  2021-01-01       A        10
1  2021-01-01       B        20
2  2021-01-02       A        15
3  2021-01-02       B        25
4  2021-01-03       A        10

L’étape suivante consiste à regrouper l’ensemble des données par produit. Pour cela, on utilise Pandas groupby(). Ensuite, la somme des quantités vendues de chaque produit est calculée à l’aide de la fonction sum() :

# Regrouper par produit et calculer la somme des quantités vendues
somme = df.groupby('Produit')['Quantité'].sum()
print(somme)

Le résultat indique combien d’unités de chaque produit ont été vendues au total :

Produit
A    35
B    45
Name: Quantité, dtype: int64

Agrégations multiples

L’exemple suivant utilise un ensemble de données similaire, mais étendu, qui contient en plus le chiffre d’affaires :

import pandas as pd
# Création d'un DataFrame avec des ventes de produits et chiffres d'affaires
données = {
    'Date': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-03'],
    'Produit': ['A', 'B', 'A', 'B', 'A'],
    'Quantité': [10, 20, 15, 25, 10],
    'Revenu': [100, 200, 150, 250, 100]
}
df = pd.DataFrame(données)
print(df)
python

Le DataFrame suivant est donc considéré :

Date Produit  Quantité  Revenu
0  2021-01-01       A        10     100
1  2021-01-01       B        20     200
2  2021-01-02       A        15     150
3  2021-01-02       B        25     250
4  2021-01-03       A        10     100

Les données sont à nouveau regroupées par produit à l’aide de Pandas DataFrame.groupby(). Ensuite, la fonction agg() est utilisée pour agréger en fonction du total des quantités vendues et des ventes, ainsi que du chiffre d’affaires moyen par produit.

# Regrouper par produit et appliquer plusieurs agrégations
groupes = df.groupby('Produit').agg({
    'Quantité': 'sum',
    'Revenu': ['sum', 'mean']
})
print(groupes)

Le résultat ressemble à ce qui suit :

Quantité Revenu         
          sum    sum     mean
Produit                 
A          35    350  116.67
B          45    450  225.00

Grâce à la fonction groupby() de Python, il est possible d’explorer des ensembles de données de manière efficace, en appliquant des agrégations complexes pour analyser des tendances et des performances.

Cet article vous a-t-il été utile ?
Aller au menu principal