Comment calculer les centiles en Python : avec des exemples
Le n ème centile d’un ensemble de données est la valeur qui coupe les n premiers pour cent des valeurs de données lorsque toutes les valeurs sont triées du plus petit au plus grand.
Par exemple, le 90e centile d’un ensemble de données est la valeur qui sépare les 90 % inférieurs des valeurs de données des 10 % supérieurs des valeurs de données.
Nous pouvons calculer rapidement les centiles en Python en utilisant la fonction numpy.percentile() , qui utilise la syntaxe suivante :
numpy.percentile(a, q)
où:
- a : Tableau de valeurs
- q : Percentile ou séquence de centiles à calculer, qui doit être compris entre 0 et 100 inclus.
Ce tutoriel explique comment utiliser cette fonction pour calculer des centiles en Python.
Comment trouver les centiles d’un tableau
Le code suivant illustre comment trouver différents centiles pour un tableau donné en Python :
import numpy as np #make this example reproducible np.random.seed(0) #create array of 100 random integers distributed between 0 and 500 data = np.random.randint(0, 500, 100) #find the 37th percentile of the array np.percentile(data, 37) 173.26 #Find the quartiles (25th, 50th, and 75th percentiles) of the array np.percentile(data, [25, 50, 75]) array([116.5, 243.5, 371.5])
Comment trouver les centiles d’une colonne DataFrame
Le code suivant montre comment trouver la valeur du 95e centile pour une seule colonne DataFrame pandas :
import numpy as np
import pandas as pd
#create DataFrame
df = pd.DataFrame({'var1': [25, 12, 15, 14, 19, 23, 25, 29, 33, 35],
'var2': [5, 7, 7, 9, 12, 9, 9, 4, 14, 15],
'var3': [11, 8, 10, 6, 6, 5, 9, 12, 13, 16]})
#find 90th percentile of var1 column
np.percentile(df.var1, 95)
34.1
Comment trouver les centiles de plusieurs colonnes DataFrame
Le code suivant montre comment trouver la valeur du 95e centile pour plusieurs colonnes dans un DataFrame pandas :
import numpy as np
import pandas as pd
#create DataFrame
df = pd.DataFrame({'var1': [25, 12, 15, 14, 19, 23, 25, 29, 33, 35],
'var2': [5, 7, 7, 9, 12, 9, 9, 4, 14, 15],
'var3': [11, 8, 10, 6, 6, 5, 9, 12, 13, 16]})
#find 95th percentile of each column
df.quantile(.95)
var1 34.10
var2 14.55
var3 14.65
#find 95th percentile of just columns var1 and var2
df[['var1', 'var2']].quantile(.95)
var1 34.10
var2 14.55
Notez que nous avons pu utiliser la fonction pandas quantile() dans les exemples ci-dessus pour calculer les centiles.
Connexes : Comment calculer les centiles dans R (avec des exemples)