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%) 이다.
'IT > Pandas' 카테고리의 다른 글
Pandas DataFrame 컬럼 이름 쉽게 변경 (0) | 2019.12.11 |
---|---|
Pandas DataFrame 이나 Series 를 txt, csv, tsv 파일로 깔끔하게 저장하기 (0) | 2019.11.27 |
댓글