본문 바로가기
IT/Pandas

Pandas 로 4분위수 및 4분위범위(IQR) 쉽게 구하기

by 소소메모 2020. 1. 17.
반응형

Pandas 에서 4분위 수 구하는 방법은 크게 두 가지가 있다.

 

첫번째 quantile, 두번째 describe 이다.

 

 

1. quantile 이용

 

quantile 은 수치 데이터를 크기 순서로 정렬했을 때 0% ~ 100% (0 ~ 1) 위치에 해당하는 숫자를 리턴해 준다.

즉, Q1 은 25% , Q2 는 50%, Q3 는 75%, Q4 는 100% 를 파라미터로 주면 되는데, 

각 퍼센트는 소수로 입력하면 된다.

(Serise, DataFrame 모두가능) 

 

예를 들면 다음과 같다.

>>> import pandas as pd
>>> num = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

>>> Q1 = num.quantile(.25)
>>> Q3 = num.quantile(.75)
>>> IQR = Q3 - Q1
>>> Q2 = num.quantile(.5)
>>> Q4 = num.quantile(1)

>>> print("Q1 =",Q1)
>>> print("Q3 =",Q3)
>>> print("IQR =",IQR)
>>> print("Q2 =",Q2)
>>> print("Q4 =",Q4)

Q1 = 3.25
Q3 = 7.75
IQR = 4.5
Q2 = 5.5
Q4 = 10.0

 

즉,

 

Q1 = num.quantile(.25)
Q3 = num.quantile(.75)
IQR = Q3 - Q1
Q2 = num.quantile(.5)
Q4 = num.quantile(1)

 

이런 식으로 4분위 수와 4분위 범위(IQR) 을 구할 수 있다.

 

 

 

 

2. describe 이용

 

pandas 에서 수치 데이터 확인을 위해 자주 쓰이는 describe를 사용해서도 4분위수 및 4분위범위(IQR) 을 구할 수 있다.

>>> import pandas as pd
>>> num = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

>>> num.describe()

count    10.00000
mean      5.50000
std       3.02765
min       1.00000
25%       3.25000
50%       5.50000
75%       7.75000
max      10.00000
dtype: float64

 

이것을 응용하여 다음과 같이 사용하면 된다.

 

>>> Q1 = num.describe()['25%']  # Q1 은 1/4 즉, 백분위수에서 25%
>>> Q3 = num.describe()['75%']  # Q3 은 3/4 즉, 백분위수에서 75%
>>> IQR = Q3 - Q1  # IQR(Interquartile range) 4분위 범위는 Q3-Q1
>>> Q2 = num.describe()['50%']  # Q2 (중앙값) 백분위수 50%

>>> print("Q1  :",Q1)
>>> print("Q3  :",Q3)
>>> print("IQR :",IQR)
>>> print("Q2  :",Q2)

Q1  : 3.25
Q3  : 7.75
IQR : 4.5
Q2  : 5.5

 

 

Q1 = num.describe()['25%']  # Q1 은 1/4 즉, 백분위수에서 25%
Q3 = num.describe()['75%']  # Q3 은 3/4 즉, 백분위수에서 75%
IQR = Q3 - Q1  # IQR(Interquartile range) 4분위 범위는 Q3-Q1
Q2 = num.describe()['50%']  # Q2 (중앙값) 백분위수 50%

 

 

 

※ 참고

4 분위수 (Quartile) 란?

기술통계 값 중의 하나로 데이터의 분포를 작은 수 부터 큰수로 나열하여 4등분하여 구한다.

 

4등분한 위치에 있는 값을 각각 Q1, Q2, Q3, Q4 로 표현한다. 

 

만약, 

 

1, 2, 3, 4, 5, 6, 7, 8, 9, 10 

 

위와 같이 10개의 데이터가 있다면

 

Q1 = 3.25

Q2 = 5.5

Q3 = 7.75

Q4 = 10

 

위와 같이 구할 수 있다. (보간법 사용됨)

 

이 4 분위수는 백분위 수로 표현하면

Q1 (25%), Q2 (50%), Q3 (75%), Q4 (100%)  이다.

 

 

 

 

반응형

댓글