범주화(카테고리화) - pd.cut(), pd.qcut()

cut, qcut은 수치형 데이터를 카테고리화 하는 함수입니다.

pd.cut()

  • pd.cut()은 구간(bin, 나누는 개수)을 특정 범위로 설정 가능합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
df = pd.DataFrame({'Age' : range(1,100,7)})
df['Age_category'] = pd.cut(df['Age'],bins=[0,10,70,100],labels=['young','medium','older'])
df
# 출력 결과
Age Age_category
0 1 young
1 8 young
2 15 medium
3 22 medium
4 29 medium
5 36 medium
6 43 medium
7 50 medium
8 57 medium
9 64 medium
10 71 older
11 78 older
12 85 older
13 92 older
14 99 older

pd.qcut()

  • qcut은 cut과 달리 구간 설정을 정확히 나눌 경우 사용되어 임의의 계산이 필요 없다.
  • 아래와 같은 경우 라벨이 young은 df[‘Age’].quantile(0.33)이하의 값이고 medium은 0.33 ~ 0.66이며, older는 df[‘Age’].quantile(0.66)의 값이 bin이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
df = pd.DataFrame({'Age' : range(1,100,7)})
df['Age_category'] = pd.qcut(df['Age'],3,labels=['young','medium','older'])
df
# 만약,duplicates오류가 나온다면 duplicates='drop'을 추가 옵션에 넣으면 됩니다.

# 출력 결과
Age Age_category
0 1 young
1 8 young
2 15 young
3 22 young
4 29 young
5 36 medium
6 43 medium
7 50 medium
8 57 medium
9 64 medium
10 71 older
11 78 older
12 85 older
13 92 older
14 99 older
Author

InhwanCho

Posted on

2022-11-25

Updated on

2022-11-25

Licensed under

Comments