[파이썬] pandas에서 데이터의 범주화 (cut, qcut)
데이터 분석 작업에서 데이터를 범주화하는 것은 매우 중요한 과정입니다. pandas는 데이터를 범주화하기 위해 효과적인 도구를 제공합니다. 이번 포스트에서는 pandas의 cut
과 qcut
함수에 대해 알아보겠습니다.
cut
함수
cut
함수는 연속형 데이터를 사용자가 정의한 구간으로 나누어 범주화하는 기능을 제공합니다. 주로 숫자형 데이터를 구간별로 나누는데 사용됩니다. 예를 들어 키의 데이터를 키의 범주로 나누거나, 점수 데이터를 성적 등급으로 나눌 때 유용하게 사용할 수 있습니다.
사용법
pandas.cut(x, bins, labels=None, right=True, include_lowest=False, precision=3)
x
: 범주화할 데이터bins
: 구간(bin)을 지정하는 방법. 정수, 시퀀스, 실수를 입력할 수 있습니다.labels
: 구간에 대한 레이블을 지정할 수 있는 옵션입니다.right
: 오른쪽 경계값을 포함할지 여부를 결정하는 옵션입니다.include_lowest
: 최소값을 포함할지 여부를 결정하는 옵션입니다.precision
: 실수형 데이터를 범주화할 때, 소수점 아래 몇 자리까지 반올림할지를 결정하는 옵션입니다.
예제
import pandas as pd
# 데이터 생성
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 구간(bin) 설정
bins = [0, 3, 6, 10]
# 데이터 범주화
categories = pd.cut(data, bins)
# 결과 출력
print(categories)
위의 예제에서는 data
라는 숫자형 데이터를 bins
라는 구간으로 나누어 범주화한 결과를 출력합니다. 결과는 각 데이터가 속한 범주를 나타내며, 범주의 레이블은 기본적으로 (최소값, 최대값]
형태로 표현됩니다.
qcut
함수
qcut
함수는 데이터를 기준으로 동일한 개수의 범주로 나누는 기능을 제공합니다. 주로 데이터의 분포를 고려하면서 동일한 개수로 범주를 나눌 때 사용됩니다. 예를 들어 데이터를 분위수를 기준으로 나눌 때 유용하게 사용할 수 있습니다.
사용법
pandas.qcut(x, q, labels=None, retbins=False, precision=3)
x
: 범주화할 데이터q
: 범주의 개수 또는 분위수를 지정할 수 있는 옵션입니다.labels
: 범주에 대한 레이블을 지정할 수 있는 옵션입니다.retbins
: 구간(bin) 정보를 반환할지 여부를 결정하는 옵션입니다.precision
: 실수형 데이터를 범주화할 때, 소수점 아래 몇 자리까지 반올림할지를 결정하는 옵션입니다.
예제
import pandas as pd
# 데이터 생성
data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
# 범주의 개수 설정
num_categories = 3
# 데이터 범주화
categories = pd.qcut(data, num_categories)
# 결과 출력
print(categories)
위의 예제에서는 data
라는 숫자형 데이터를 num_categories
개수의 범주로 나누어 범주화한 결과를 출력합니다. 범주의 개수가 3이므로, 데이터는 3개의 구간으로 분할됩니다.
pandas의 cut
과 qcut
함수를 사용하면 데이터를 간편하게 범주화할 수 있습니다. 이를 통해 데이터 분석 작업에서 유용하게 활용할 수 있는 결과물을 얻을 수 있습니다.