La fonction Pandas groupby() expliquée
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.
- 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)
pythonParamè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)
pythonLe 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)
pythonLe 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.