Pandas : comment représenter value_counts en pourcentage



Vous pouvez utiliser la fonction value_counts() dans pandas pour compter les occurrences de valeurs dans une colonne donnée d’un DataFrame.

Pour représenter les valeurs sous forme de pourcentages, vous pouvez utiliser l’une des méthodes suivantes :

Méthode 1 : Représenter les valeurs sous forme de pourcentages (formaté sous forme de décimales)

df.my_col.value_counts(normalize=True)

Méthode 2 : Représenter les valeurs sous forme de pourcentages (formaté avec des symboles de pourcentage)

df.my_col.value_counts(normalize=True).mul(100).round(1).astype(str) + '%'

Méthode 3 : Représenter les comptes de valeurs sous forme de pourcentages (avec les comptes)

counts = df.my_col.value_counts()
percs = df.my_col.value_counts(normalize=True)
pd.concat([counts,percs], axis=1, keys=['count', 'percentage'])

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', 'B', 'B', 'B', 'B', 'B', 'C'],
                   'points': [15, 12, 18, 20, 22, 28, 35, 40]})

#view DataFrame
print(df)

  team  points
0    A      15
1    A      12
2    B      18
3    B      20
4    B      22
5    B      28
6    B      35
7    C      40

Exemple 1 : Représenter les valeurs sous forme de pourcentages (formaté sous forme de décimales)

Le code suivant montre comment compter l’occurrence de chaque valeur dans la colonne d’équipe et représenter les occurrences sous forme de pourcentage du total, au format décimal :

#count occurrence of each value in 'team' column as percentage of total
df.team.value_counts(normalize=True)

B    0.625
A    0.250
C    0.125
Name: team, dtype: float64

À partir du résultat, nous pouvons voir :

  • La valeur B représente 62,5% des occurrences dans la colonne équipe.
  • La valeur A représente 25% des occurrences dans la colonne équipe.
  • La valeur C représente 12,5% des occurrences dans la colonne équipe.

Notez que les pourcentages sont formatés sous forme de décimales.

Exemple 2 : Représenter les valeurs sous forme de pourcentages (formaté avec des symboles de pourcentage)

Le code suivant montre comment compter l’occurrence de chaque valeur dans la colonne d’équipe et représenter les occurrences sous forme de pourcentage du total, formaté avec des symboles de pourcentage :

#count occurrence of each value in 'team' column as percentage of total
df.team.value_counts(normalize=True).mul(100).round(1).astype(str) + '%'

B    62.5%
A    25.0%
C    12.5%
Name: team, dtype: object

Notez que les pourcentages sont formatés sous forme de chaînes avec des symboles de pourcentage.

Exemple 3 : Représenter les nombres de valeurs sous forme de pourcentages (avec les nombres)

Le code suivant montre comment compter l’occurrence de chaque valeur dans la colonne d’équipe et représenter les occurrences sous forme de nombres et de pourcentages :

#count occurrence of each value in 'team' column
counts = df.team.value_counts()

#count occurrence of each value in 'team' column as percentage of total 
percs = df.team.value_counts(normalize=True)

#concatenate results into one DataFrame
pd.concat([counts,percs], axis=1, keys=['count', 'percentage'])

        count	percentage
B	5	0.625
A	2	0.250
C	1	0.125

Notez que la colonne de nombre affiche le nombre de chaque valeur unique dans la colonne d’équipe tandis que la colonne de pourcentage affiche chaque valeur unique sous forme de pourcentage du nombre total d’occurrences.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :

Pandas : comment tracer les comptes de valeur
Pandas : Comment utiliser GroupBy et les décomptes de valeurs
Pandas : comment tracer des histogrammes par groupe

Ajouter un commentaire

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