데이터 전처리 - 범주형(category) 데이터 처리

2022. 11. 8. 20:42·Pandas
반응형

숫자형으로 연속된 데이터가 있을 때 그 데이터를 그대로 사용하는 것보다 위의 그림처럼 일정한 구간(bin)으로 나눠서 데이터를 사용하는 것이 더 효울적인 경우가 있다.

 

이렇게 연속 변수를 일정한 bin으로 나누고, 각 구간을 이산 변수로 변환하는 과정을 구간 분할(bining)이라고 한다.

 

### 구간 분할 ###

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
##### 범주형 데이터 처리 #####
### 구간 분할 ###
# cut() 메소드 사용 #
# histigram() 함수를 통해 경계값을 구한다 #
 
count, bin_dividers = np.histogram(df['horsepower'], bins = 3)
# 3개의 구간(bin)을 가질 수 있게 4개의 경계를 구한다. -> 리스트 형태로 반환 
 
print(bin_dividers)
'''
[ 46.         107.33333333 168.66666667 230.        ]
'''
 
bin_names = ['저출력', '보통출력', '고출력']
# bin 이름 저장
 
df['hp_bin'] = pd.cut(df['horsepower'],
                         bins = bin_dividers,  # 경계
                         labels = bin_names,   # 구간(bin) 이름
                         include_lowest = True)  # 작은 경계값 구간에 포함
# horsepower 열(정수형)을 구간으로 나눠서 hp_bin(범주형)으로 저장
 
print(df[['horsepower', 'hp_bin']].sample(5))
'''
     horsepower hp_bin
189       120.0   보통출력
105       170.0    고출력
68        155.0   보통출력
356        75.0    저출력
359        80.0    저출력
'''
'''
Colored by Color Scripter
cs

 

 

 

### 더미 변수 ###

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
### 더미 변수 ###
# 범주형 데이터를 회귀분석, 머신러닝 알고리즘에 사용하기 위해서는 컴퓨터가
# 인식 가능한 0, 1(더미 변수)로 변환해주어야 한다.
# 0,1(더미변수)는 크고 작음을 나타내지 않고 특성이 있는지 없는지를 나타난다.
# 범주형 데이터를 0,1 로만 구성되는 원핫벡터(one hot vetor)로 변환한다고
# 해서 원핫인코딩(one hot encoding)이라고 한다.
 
horsepower_dummies = pd.get_dummies(df['hp_bin'])
# hp_bin 범주형 데이터를 더미 변수로 변환한다.
 
print(horsepower_dummies)
'''
     저출력  보통출력  고출력
0      0     1    0
1      0     1    0
2      0     1    0
3      0     1    0
4      0     1    0
..   ...   ...  ...
393    1     0    0
394    1     0    0
395    1     0    0
396    1     0    0
397    1     0    0
 
[392 rows x 3 columns]
'''
Colored by Color Scripter
cs
반응형

'Pandas' 카테고리의 다른 글

데이터 전처리 - 시계열 데이터  (0) 2022.11.08
데이터 전처리 - 정규화  (0) 2022.11.08
데이터 전처리 - 데이터 표준화  (0) 2022.11.08
데이터 전처리 - 중복 데이터 처리  (0) 2022.11.06
데이터 전처리 - 누락 데이터 처리  (0) 2022.11.06
'Pandas' 카테고리의 다른 글
  • 데이터 전처리 - 시계열 데이터
  • 데이터 전처리 - 정규화
  • 데이터 전처리 - 데이터 표준화
  • 데이터 전처리 - 중복 데이터 처리
김천종
김천종
  • 김천종
    김천종
    김천종
  • 전체
    오늘
    어제
    • 분류 전체보기 (88)
      • 파이썬 (6)
      • Pandas (24)
      • 자료구조 (14)
      • 알고리즘 (4)
      • 아무거나 (16)
      • 머신러닝 (20)
      • ML 실습 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
김천종
데이터 전처리 - 범주형(category) 데이터 처리
상단으로

티스토리툴바