Data Analysis

Compter efficacement les fréquences des valeurs dans les DataFrames Pandas

Spread the love

Pandas est une puissante librairie Python pour l’analyse de données, et une tâche fréquente consiste à déterminer la fréquence des valeurs au sein d’un DataFrame. Cet article explore trois méthodes efficaces pour compter les fréquences des valeurs : value_counts(), groupby().size() et groupby().count(). Nous examinerons chaque méthode, en soulignant ses forces et ses faiblesses, et en fournissant des exemples clairs.

Table des matières

Méthode Series.value_counts()

La méthode value_counts() est la façon la plus simple et la plus efficace de compter la fréquence des valeurs au sein d’une seule colonne (Series). Elle renvoie une Series où l’index représente les valeurs uniques et les valeurs représentent leurs comptes, triés par ordre décroissant par défaut. Ceci est idéal lorsque vous avez besoin de la fréquence de valeurs individuelles dans une colonne spécifique.


import pandas as pd

data = {'Category': ['A', 'A', 'B', 'B', 'A', 'C', 'A']}
df = pd.DataFrame(data)

category_counts = df['Category'].value_counts()
print(category_counts)

Sortie :


A    4
B    2
C    1
Name: Category, dtype: int64

Méthode df.groupby().size()

La méthode groupby().size() fournit la taille de chaque groupe (nombre de lignes) après le groupement du DataFrame. Contrairement à groupby().count(), elle n’est pas affectée par les valeurs manquantes dans d’autres colonnes ; elle compte simplement les lignes au sein de chaque groupe. Ceci est parfait pour obtenir un compte simple des occurrences de groupe.


import pandas as pd

data = {'Category': ['A', 'A', 'B', 'B', 'A', 'C'],
        'Value': [1, 2, 1, 1, 2, 3]}
df = pd.DataFrame(data)

category_counts = df.groupby('Category').size()
print(category_counts)

Sortie :


Category
A    3
B    2
C    1
dtype: int64

Méthode df.groupby().count()

La méthode groupby().count() est polyvalente, permettant de compter les fréquences sur plusieurs colonnes. Elle groupe le DataFrame puis compte les valeurs non nulles au sein de chaque groupe pour *toutes* les colonnes. Cela signifie que les données manquantes affecteront les comptes. Utilisez cette méthode lorsque vous avez besoin d’un compte sur plusieurs colonnes, mais soyez attentif à l’impact potentiel des données manquantes.


import pandas as pd

data = {'Category': ['A', 'A', 'B', 'B', 'A', 'C'],
        'Value': [1, 2, 1, 1, 2, 3],
        'Value2': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)

# Compte des occurrences de 'Category' sur toutes les colonnes
category_counts = df.groupby('Category').count()
print(category_counts)

#En se concentrant sur une seule colonne
category_counts_value = df.groupby('Category')['Value'].count()
print(category_counts_value)

Sortie :


         Value  Value2
Category                 
A            3       3
B            2       2
C            1       1

Category
A    3
B    2
C    1
Name: Value, dtype: int64

En résumé, la meilleure méthode dépend de vos besoins spécifiques. value_counts() est la meilleure pour les colonnes uniques, groupby().size() pour les comptes de groupe simples, et groupby().count() pour les scénarios plus complexes impliquant plusieurs colonnes, mais nécessite une gestion minutieuse des valeurs manquantes.

Laisser un commentaire

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