Comment exécuter une fonction SUMIF dans Pandas
Vous pouvez utiliser la syntaxe suivante pour trouver la somme des lignes d’un DataFrame pandas qui répondent à certains critères :
#find sum of each column, grouped by one column
df.groupby('group_column').sum()
#find sum of one specific column, grouped by one column
df.groupby('group_column')['sum_column'].sum()
Les exemples suivants montrent comment utiliser cette syntaxe avec le bloc de données suivant :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['a', 'a', 'b', 'b', 'b', 'c', 'c'],
'points': [5, 8, 14, 18, 5, 7, 7],
'assists': [8, 8, 9, 3, 8, 7, 4],
'rebounds': [1, 2, 2, 1, 0, 4, 1]})
#view DataFrame
df
team points assists rebounds
0 a 5 8 1
1 a 8 8 2
2 b 14 9 2
3 b 18 3 1
4 b 5 8 0
5 c 7 7 4
6 c 7 4 1
Exemple 1 : exécuter une fonction SUMIF sur une colonne
Le code suivant montre comment trouver la somme des points pour chaque équipe :
df.groupby('team')['points'].sum()
team
a 13
b 37
c 14
Cela nous dit :
- L’équipe ‘a’ a marqué un total de 13 points
- L’équipe ‘b’ a marqué un total de 37 points
- L’équipe ‘c’ a marqué un total de 14 points
Exemple 2 : exécuter une fonction SUMIF sur plusieurs colonnes
Le code suivant montre comment trouver la somme des points et des rebonds pour chaque équipe :
df.groupby('team')[['points', 'rebounds']].sum()
points rebounds
team
a 13 3
b 37 3
c 14 5
Exemple 3 : exécuter une fonction SUMIF sur toutes les colonnes
Le code suivant montre comment trouver la somme de toutes les colonnes du bloc de données pour chaque équipe :
df.groupby('team').sum()
points assists rebounds
team
a 13 16 3
b 37 20 3
c 14 11 5
Ressources additionnelles
Comment exécuter une fonction COUNTIF dans Pandas
Comment compter les observations par groupe chez les pandas
Comment trouver la valeur maximale par groupe chez Pandas