연속형 변수를 범주화하는 방법 중에는 여러 개의 구간으로 나누어 각 구간을 하나의 범주로 만드는 방법이 있습니다. 이번에는 np.digitize()와 pd.cut() 두 가지 함수를 이용하여 연속형 변수를 여러 개의 구간별로 범주화하는 방법에 대해 알아보겠습니다.
- np.digitize()를 이용한 연속형 변수의 여러개 구간별 범주화 np.digitize() 함수는 연속형 변수를 구간별로 범주화하는 데에 유용한 함수입니다. 이 함수는 입력값인 X와 구간을 정의한 bins를 받아 X의 각 값이 몇 번째 구간에 속하는지 반환합니다.
예를 들어, 아래와 같은 데이터프레임이 있다고 가정해봅시다.
import numpy as np
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6, 7, 8, 9]})
이제, 위 데이터프레임의 변수 A를 3개의 구간으로 나누어 범주화해보겠습니다. 이때, np.digitize() 함수를 이용하여 A의 각 값을 3개의 구간 중 어디에 속하는지 구해보면 아래와 같습니다.
bins = [0, 3, 6, 9] # 3개의 구간으로 나눔
df['A_binned'] = np.digitize(df['A'], bins)
위 코드에서 bins는 3개의 구간 [0, 3), [3, 6), [6, 9]을 나타내며, df['A_binned']는 A의 각 값을 3개의 구간 중 어디에 속하는지를 나타내는 새로운 변수입니다.
- pd.cut()을 이용한 연속형 변수의 여러개 구간별 범주화 pd.cut() 함수는 연속형 변수를 구간별로 범주화하는 데에 유용한 함수입니다. 이 함수는 입력값인 X와 구간을 정의한 bins를 받아 각 구간에 대해 labels로 지정한 이름을 가진 범주로 나누어줍니다.
예를 들어, 아래와 같은 데이터프레임이 있다고 가정해봅시다.
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6, 7, 8, 9]})
이때, pd.cut() 함수를 이용하여 A의 값을 3개의 구간으로 나누고 각 구간에 대해 labels로 지정한 범주 이름을 지정할 수 있습니다. 아래는 예시 코드입니다.
bins = [0, 3, 6, 9] # 3개의 구간으로 나눔 labels = ['Low', 'Medium', 'High'] # 구간별 범주 이름 지정
df['A_binned'] = pd.cut(df['A'], bins=bins, labels=labels)
위 코드에서 bins는 3개의 구간 [0, 3), [3, 6), [6, 9]을 나타내며, labels는 각 구간에 대해 지정한 범주 이름입니다. df['A_binned']는 A의 값을 3개의 구간으로 나누고, 각 구간에 대해 labels로 지정한 범주 이름을 가진 새로운 변수입니다.
결과적으로, np.digitize()와 pd.cut() 함수는 연속형 변수를 여러 개의 구간별로 범주화하는 데에 유용한 함수입니다. 두 함수는 각각 다른 방법으로 구간을 정의하고 범주 이름을 지정할 수 있습니다. 따라서 데이터 분석에서 연속형 변수를 범주화할 때, 적절한 함수를 선택하여 사용하면 됩니다.
'<Python> > [DataFrame]' 카테고리의 다른 글
| 파이썬 Pandas DataFrame .fillna, .interpolate (0) | 2023.03.08 |
|---|---|
| 파이썬 Pandas DataFrame 칼럼별 결측값 대체 (0) | 2023.03.08 |
| 파이썬 Pandas DataFrame .iter (0) | 2023.03.08 |
| 파이썬 Pandas DataFrame .sample (0) | 2023.03.08 |
| 파이썬 Pandas DataFrame 칼럼 다루기 (0) | 2023.03.08 |