Comment créer des tableaux de fréquences en Python



Un tableau de fréquences est un tableau qui affiche les fréquences de différentes catégories. Ce type de tableau est particulièrement utile pour comprendre la distribution des valeurs dans un ensemble de données.

Ce tutoriel explique comment créer des tables de fréquences en Python.

Tableau de fréquence unidirectionnel pour une série

Pour trouver les fréquences des valeurs individuelles dans une série pandas, vous pouvez utiliser la fonction value_counts() :

import pandas as pd

#define Series
data = pd.Series([1, 1, 1, 2, 3, 3, 3, 3, 4, 4, 5])

#find frequencies of each value
data.value_counts()

3    4
1    3
4    2
5    1
2    1

Vous pouvez ajouter l’argument sort=False si vous ne souhaitez pas que les valeurs des données soient triées par fréquence :

data.value_counts(sort=False)

1    3
2    1
3    4
4    2
5    1

La façon d’interpréter le résultat est la suivante :

  • La valeur « 1 » apparaît 3 fois dans la série.
  • La valeur « 2 » apparaît 1 fois dans la série.
  • La valeur « 3 » apparaît 4 fois dans la série.

Et ainsi de suite.

Tableau de fréquence unidirectionnel pour un DataFrame

Pour trouver les fréquences d’un DataFrame pandas vous pouvez utiliser la fonction crosstab () , qui utilise la syntaxe suivante :

tableau croisé (index, colonnes)

où:

  • index : nom de la colonne par laquelle regrouper
  • columns : nom à donner à la colonne de fréquence

Par exemple, supposons que nous ayons un DataFrame contenant des informations sur la note, l’âge et le sexe de 10 élèves différents dans une classe. Voici comment trouver la fréquence de chaque note de lettre :

#create data
df = pd.DataFrame({'Grade': ['A','A','A','B','B', 'B', 'B', 'C', 'D', 'D'],
                   'Age': [18, 18, 18, 19, 19, 20, 18, 18, 19, 19],
                   'Gender': ['M','M', 'F', 'F', 'F', 'M', 'M', 'F', 'M', 'F']})

#view data
df

	Grade	Age	Gender
0	    A	 18	     M
1	    A	 18	     M
2	    A	 18	     F
3	    B	 19	     F
4	    B	 19	     F
5	    B	 20	     M
6	    B	 18	     M
7	    C	 18	     F
8	    D	 19	     M
9	    D	 19	     F 	  

#find frequency of each letter grade
pd.crosstab(index=df['Grade'], columns='count')

col_0	count
Grade	
A	    3
B	    4
C	    1
D	    2

La façon d’interpréter cela est la suivante :

  • 3 élèves ont reçu un « A » dans la classe.
  • 4 élèves ont reçu un « B » dans la classe.
  • 1 élève a reçu un « C » dans la classe.
  • 2 élèves ont reçu un « D » dans la classe.

Nous pouvons utiliser une syntaxe similaire pour trouver les décomptes de fréquence pour d’autres colonnes. Par exemple, voici comment trouver la fréquence par âge :

pd.crosstab(index=df['Age'], columns='count') 

col_0	count
Age	
18   	    5
19	    4
20	    1

La façon d’interpréter cela est la suivante :

  • 5 étudiants ont 18 ans.
  • 4 étudiants ont 19 ans.
  • 1 étudiant a 20 ans.

Vous pouvez également facilement afficher les fréquences sous forme de proportions de l’ensemble de données en divisant par la somme :

#define crosstab
tab = pd.crosstab(index=df['Age'], columns='count')

#find proportions 
tab/tab.sum()

col_0	count
Age	
18	  0.5
19	  0.4
20	  0.1

La façon d’interpréter cela est la suivante :

  • 50% des étudiants ont 18 ans.
  • 40% des étudiants ont 19 ans.
  • 10% des étudiants ont 20 ans.

Tableaux de fréquence bidirectionnels pour un DataFrame

Vous pouvez également créer un tableau de fréquences bidirectionnel pour afficher les fréquences de deux variables différentes dans l’ensemble de données. Par exemple, voici comment créer un tableau de fréquence bidirectionnel pour les variables Âge et Grade :

pd.crosstab(index=df['Age'], columns=df['Grade'])


Grade	A	B	C	D
Age				
18	3	1	1	0
19	0	2	0	2
20	0	1	0	0

La façon d’interpréter cela est la suivante :

  • Il y a 3 étudiants âgés de 18 ans qui ont reçu un « A » dans la classe.
  • Il y a 1 élève qui a 18 ans et qui a reçu un « B » dans la classe.
  • Il y a 1 élève qui a 18 ans et qui a reçu un « C » dans la classe.
  • Il y a 0 élève âgé de 18 ans et qui a reçu un « D » dans la classe.

Et ainsi de suite.

Vous pouvez trouver la documentation complète de la fonction crosstab() ici .

Ajouter un commentaire

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