취뽀 기록

#열심히 살자 #취업 #공부

Python/[개념 및 문법]

[Pandas] 데이터 구간별 범주화 pd.cut, pd.get_dummies

hyunnn_00 2023. 6. 19. 10:21
데이터 구간별 범주화
  • pd.cut 함수
  • 데이터 값들을 특정 구간에 따라서 범주화할 때 사용
  • 범주를 나누고 라벨을 붙여서 범주형 데이터로 변환 가능
  • 연속 데이터를 구간별로 범주화
[cut 함수]

균등한 길이의 그룹

데이터의 분산에 따라 각각의 그룹마다 데이터 수가 다르게 나뉜다.



[qcut 함수]

같은 크기의 그룹

 표본 변위치를 기반으로 데이터를 나누어, 
적당히 같은 크기의 그룹으로 나눌 수 있다.

 

horsepower를 3 구간으로 저출력 / 보통출력 / 고출력 으로 나눠보자.

pd.cut을 이용하는데

(데이터배열, 구간, 레이블이름, 경계 포함) 중 데이터배열과 구간은 필수 입력

 

여기서 include_lowest는 구간의 시작값을 포함하는지에 대한 여부

 

# 범주형 변환
bins_name = ["저출력","보통출력","고출력"]
df['hp_cat'] = pd.cut(x = df['horsepower'], # 데이터 = 사용할 열
                      bins = bins, # 구간의 값
                      labels = bins_name, # 구간의 이름
                      include_lowest = True) # 구간의 시작값 포함

결과를 확인해보자

 

df['hp_cat'].value_counts()

 


 

더미변수

원핫 인코딩을 위해 get_dummies를 이용

0은 False, 1은 True를 의미하며 각 행은 하나의 1값, 두개의 0값을 가질 수 있다.

 

hp_dm = pd.get_dummies(df['hp_cat'])
hp_dm

 

여기서 첫 번째 값은 보통출력이므로 보통 출력에 1 값, 나머지 값에 0 값을 지정