Как рассчитать процентили в Python (с примерами)


N -й процентиль набора данных — это значение, которое отсекает первые n процентов значений данных, когда все значения отсортированы от наименьшего к наибольшему.

Например, 90-й процентиль набора данных — это значение, которое отсекает нижние 90 % значений данных от верхних 10 % значений данных.

Мы можем быстро вычислить процентили в Python, используя функцию numpy.percentile() , которая использует следующий синтаксис:

numpy.percentile (а, д)

куда:

  • а: Массив значений
  • q: Процентили или последовательность процентилей для вычисления, которые должны быть в диапазоне от 0 до 100 включительно.

В этом руководстве объясняется, как использовать эту функцию для расчета процентилей в Python.

Как найти процентили массива

Следующий код иллюстрирует, как найти различные процентили для заданного массива в 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])

Как найти процентили столбца DataFrame

В следующем коде показано, как найти значение 95-го процентиля для одного столбца pandas DataFrame:

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

Как найти процентили нескольких столбцов DataFrame

В следующем коде показано, как найти значение 95-го процентиля для нескольких столбцов в кадре данных 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

Обратите внимание, что мы смогли использовать функцию pandas quantile() в приведенных выше примерах для вычисления процентилей.

Связанный: Как рассчитать процентили в R (с примерами)