[파이썬] pandas에서 데이터의 범주화 (cut, qcut)

데이터 분석 작업에서 데이터를 범주화하는 것은 매우 중요한 과정입니다. pandas는 데이터를 범주화하기 위해 효과적인 도구를 제공합니다. 이번 포스트에서는 pandas의 cutqcut 함수에 대해 알아보겠습니다.

cut 함수

cut 함수는 연속형 데이터를 사용자가 정의한 구간으로 나누어 범주화하는 기능을 제공합니다. 주로 숫자형 데이터를 구간별로 나누는데 사용됩니다. 예를 들어 키의 데이터를 키의 범주로 나누거나, 점수 데이터를 성적 등급으로 나눌 때 유용하게 사용할 수 있습니다.

사용법

pandas.cut(x, bins, labels=None, right=True, include_lowest=False, precision=3)

예제

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)

예제

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의 cutqcut 함수를 사용하면 데이터를 간편하게 범주화할 수 있습니다. 이를 통해 데이터 분석 작업에서 유용하게 활용할 수 있는 결과물을 얻을 수 있습니다.