Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment compter les observations par groupe chez les pandas



Souvent, vous pourriez être intéressé à compter le nombre d’ observations par groupe dans un DataFrame pandas.

Heureusement, cela est facile à faire en utilisant les fonctions groupby() et size() avec la syntaxe suivante :

df.groupby('column_name').size()

Ce tutoriel explique plusieurs exemples d’utilisation pratique de cette fonction à l’aide du bloc de données suivant :

import numpy as np
import pandas as pd

#create pandas DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'B', 'C', 'C'],
                   'division':['E', 'W', 'E', 'E', 'W', 'W', 'E'],
                   'rebounds': [11, 8, 7, 6, 6, 5, 12]})

#display DataFrame
print(df)

  team division  rebounds
0    A        E        11
1    A        W         8
2    B        E         7
3    B        E         6
4    B        W         6
5    C        W         5
6    C        E        12

Exemple 1 : compter par une variable

Le code suivant montre comment compter le nombre total d’observations par équipe :

#count total observations by variable 'team'
df.groupby('team').size()

team
A    2
B    3
C    2
dtype: int64

D’après le résultat, nous pouvons voir que :

  • L’équipe A a 2 observations
  • L’équipe B a 3 observations
  • L’équipe C a 2 observations

Notez que le code précédent produit une série. Dans la plupart des cas, nous souhaitons travailler avec un DataFrame, nous pouvons donc utiliser la fonction reset_index() pour produire un DataFrame à la place :

df.groupby('team').size().reset_index(name='obs')

        team	obs
0	A	2
1	B	3
2	C	2

Exemple 2 : compter et trier par une variable

Nous pouvons également utiliser la fonction sort_values() pour trier le nombre de groupes.

Nous pouvons spécifier ascending=False pour trier le nombre de groupes du plus grand au plus petit ou ascending=True pour trier du plus petit au plus grand :

df.groupby('team').size().reset_index(name='obs').sort_values(['obs'], ascending=True)

        team	obs
0	A	2
2	C	2
1	B	3

Exemple 3 : Comptage par plusieurs variables

On peut également compter le nombre d’observations regroupées par plusieurs variables dans un DataFrame pandas :

#count observations grouped by team and division
df.groupby(['team', 'division']).size().reset_index(name='obs')

        team	division  obs
0	A	E	  1
1	A	W	  1
2	B	E	  2
3	B	W	  1
4	C	E	  1
5	C	W	  1

D’après le résultat, nous pouvons voir que :

  • 1 observation appartient à l’équipe A et à la division E
  • 1 observation appartient à l’équipe A et à la division W
  • 2 observations appartiennent à l’équipe B et à la division E
  • 1 observation appartient à l’équipe B et à la division W
  • 1 observation appartient à l’équipe C et à la division E
  • 1 observation appartient à l’équipe C et à la division W

Ressources additionnelles

Comment calculer la somme des colonnes dans Pandas
Comment calculer la moyenne des colonnes dans Pandas
Comment trouver la valeur maximale des colonnes dans Pandas

Ajouter un commentaire

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