Pandas : Comment compter les valeurs dans une colonne avec condition
Vous pouvez utiliser les méthodes suivantes pour compter le nombre de valeurs dans une colonne Pandas DataFrame avec une condition spécifique :
Méthode 1 : compter les valeurs dans une colonne avec condition
len(df[df['col1']=='value1'])
Méthode 2 : compter les valeurs dans plusieurs colonnes avec des conditions
len(df[(df['col1']=='value1') & (df['col2']=='value2')])
Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'pos': ['Gu', 'Fo', 'Fo', 'Fo', 'Gu', 'Gu', 'Fo', 'Fo'],
'points': [18, 22, 19, 14, 14, 11, 20, 28]})
#view DataFrame
print(df)
team pos points
0 A Gu 18
1 A Fo 22
2 A Fo 19
3 A Fo 14
4 B Gu 14
5 B Gu 11
6 B Fo 20
7 B Fo 28
Exemple 1 : Compter les valeurs dans une colonne avec condition
Le code suivant montre comment compter le nombre de valeurs dans la colonne équipe où la valeur est égale à « A » :
#count number of values in team column where value is equal to 'A' len(df[df['team']=='A']) 4
Nous pouvons voir qu’il y a 4 valeurs dans la colonne équipe où la valeur est égale à « A ».
Exemple 2 : Compter les valeurs dans plusieurs colonnes avec des conditions
Le code suivant montre comment compter le nombre de lignes dans le DataFrame où la colonne team est égale à « B » et la colonne pos est égale à « Gu » :
#count rows where team is 'B' and pos is 'Gu' len(df[(df['team']=='B') & (df['pos']=='Gu')]) 2
Nous pouvons voir qu’il y a 2 lignes dans le DataFrame qui remplissent ces deux conditions.
Nous pouvons utiliser une syntaxe similaire pour compter le nombre de lignes qui remplissent le nombre de conditions souhaitées.
Par exemple, le code suivant montre comment compter le nombre de lignes qui remplissent trois conditions :
- l’équipe est égale à ‘B’
- pos est égal à ‘Gu’
- les points sont supérieurs à 12
#count rows where team is 'B' and pos is 'Gu' and points > 15 len(df[(df['team']=='B') & (df['pos']=='Gu') & (df['points']>12)]) 1
Nous pouvons voir qu’une seule ligne du DataFrame remplit ces trois conditions.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Pandas : comment trouver la différence entre deux lignes
Pandas : comment supprimer des lignes contenant une chaîne spécifique
Pandas : Comment supprimer les lignes en double dans un DataFrame