Как рассчитать межквартильный диапазон в Python


Межквартильный диапазон , часто обозначаемый как IQR, представляет собой способ измерения разброса средних 50% набора данных. Он рассчитывается как разница между первым квартилем* (25-й процентиль) и третьим квартилем (75-й процентиль) набора данных.

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

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

Пример 1: межквартильный диапазон одного массива

В следующем коде показано, как вычислить межквартильный диапазон значений в одном массиве:

import numpy as np

#define array of data
data = np.array([14, 19, 20, 22, 24, 26, 27, 30, 30, 31, 36, 38, 44, 47])

#calculate interquartile range 
q3, q1 = np.percentile (data, [75 ,25])
iqr = q3 - q1

#display interquartile range 
iqr

12.25

Межквартильный диапазон этого набора данных оказывается равным 12,25.Это разброс средних 50% значений в этом наборе данных.

Пример 2. Межквартильный диапазон столбца фрейма данных

Следующий код показывает, как вычислить межквартильный диапазон одного столбца во фрейме данных:

import numpy as np
import pandas as pd

#create data frame
df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86],
 'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19],
 'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5],
 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]})

#calculate interquartile range of values in the 'points' column
q75, q25 = np.percentile(df['points'], [75 ,25])
iqr = q75 - q25

#display interquartile range 
iqr

5.75

Межквартильный размах значений в столбце баллов оказывается равным 5,75 .

Пример 3: межквартильный диапазон нескольких столбцов фрейма данных

В следующем коде показано, как вычислить межквартильный диапазон нескольких столбцов во фрейме данных одновременно:

import numpy as np
import pandas as pd

#create data frame
df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86],
 'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19],
 'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5],
 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]})

#define function to calculate interquartile range
def find_iqr(x):
 return np.subtract (\*np.percentile (x, [75, 25]))

#calculate IQR for 'rating' and 'points' columns
df[['rating', 'points']].apply (find_iqr)

rating 6.75
points 5.75
dtype: float64

#calculate IQR for all columns
df.apply (find_iqr)

rating 6.75
points 5.75
assists 2.50
rebounds 3.75
dtype: float64

Примечание. Мы используем функцию pandas.DataFrame.apply() для расчета IQR для нескольких столбцов в приведенном выше фрейме данных.

Дополнительные ресурсы

Влияют ли выбросы на межквартильный диапазон (IQR)?
Как рассчитать межквартильный диапазон (IQR) в Excel
Калькулятор межквартильного диапазона

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.