Comment calculer la moyenne conditionnelle chez les pandas (avec exemples)
Vous pouvez utiliser la syntaxe suivante pour calculer une moyenne conditionnelle dans les pandas :
df.loc[df['team'] == 'A', 'points'].mean()
Ceci calcule la moyenne de la colonne « points » pour chaque ligne du DataFrame où la colonne « équipe » est égale à « A ».
Les exemples suivants montrent comment utiliser cette syntaxe en pratique avec le DataFrame pandas suivant :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'B', 'B', 'B'],
'points': [99, 90, 93, 86, 88, 82],
'assists': [33, 28, 31, 39, 34, 30]})
#view DataFrame
print(df)
team points assists
0 A 99 33
1 A 90 28
2 A 93 31
3 B 86 39
4 B 88 34
5 B 82 30
Exemple 1 : calculer la moyenne conditionnelle pour une variable catégorielle
Le code suivant montre comment calculer la moyenne de la colonne « points » uniquement pour les lignes du DataFrame où la colonne « équipe » a la valeur « A ».
#calculate mean of 'points' column for rows where team equals 'A'
df.loc[df['team'] == 'A', 'points'].mean()
94.0
La valeur moyenne dans la colonne « points » pour les lignes où « équipe » est égale à « A » est de 94 .
Nous pouvons le vérifier manuellement en calculant la moyenne des valeurs de points uniquement pour les lignes où « équipe » est égale à « A » :
- Moyenne des points : (99 + 90 + 93) / 3 = 94
Exemple 2 : calculer la moyenne conditionnelle pour une variable numérique
Le code suivant montre comment calculer la moyenne de la colonne « assistances » uniquement pour les lignes du DataFrame où la colonne « points » a une valeur supérieure ou égale à 90.
#calculate mean of 'assists' column for rows where 'points' >= 90
df.loc[df['points'] >= 90, 'assists'].mean()
30.666666666666668
La valeur moyenne dans la colonne « passes décisives » pour les lignes où les « points » sont supérieurs ou égaux à 90 est 30,66667 .
Nous pouvons le vérifier manuellement en calculant la moyenne des valeurs de points uniquement pour les lignes où « équipe » est égale à « A » :
- Moyenne des passes décisives : (33 + 28 + 31) / 3 = 30,66667
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Comment calculer la moyenne des colonnes dans Pandas
Comment calculer une moyenne mobile chez les pandas
Comment remplir les valeurs NaN avec la moyenne chez les pandas