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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *