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(사분위간 범위)이 특이치의 영향을 받나요?
Excel에서 사분위수 범위(IQR)를 계산하는 방법
사분위간 범위 계산기

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다