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