Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- join
- IELTS
- is null
- IS NOT NULL
- programmers
- 금융 플랫폼
- 날짜 포맷
- MySQL
- MAX
- date_format
- 서브쿼리
- GROUP BY
- SubQuery
- Round
- inner join
- order by
- where
- ifnull
- 해외결제
- Python
- 금융IT
- having
- 투자자산운용사
- 도서추천
- SQL
- 트래블테크
- alias
- count
- LIMIT
- IN
Archives
- Today
- Total
Every Step Matters
[Python] pandas의 get_dummies을 이용한 원핫인코딩 본문
One-Hot Encoding? (원핫인코딩)
명목형 변수(카테고리 변수)를 더미변수로 변환하는 기법.
Label Encoding에서 일어나는 가중치 문제가 발생하지 않아서 각 카테고리 값이 서로 독립적이며 숫자 간의 순서나 크기가 없는 경우에 사용된다.
원핫인코딩을 하는 이유?
--> 명목형 변수를 수치형 데이터로 변환하여 모델이 이해할 수 있도록 하기 위해
원핫인코딩 실습
아래와 같은 데이터프레임이 있다.
import pandas as pd
import numpy as np
df = pd.DataFrame({'species':['dog','cat','pig'],'color':['brown','black','pink'],'count':[3,6,8]})
df

'species' 피처와 'color' 피처는 명목변수이므로, 수치화를 해주어야 하고 이때 원핫인코딩을 이용해보자.
판다스의 "get_dummies" 함수를 이용하면 특정 피처에 대한 더미변수를 만들 수 있다.
먼저 'species' 피처의 더미변수를 만들어보자.
dummies_01 = pd.get_dummies(df['species'])
dummies_01

다음으로 동일한 방법으로 'color' 피처의 더미변수를 만들자.
dummies_02 = pd.get_dummies(df['color'])
dummies_02

기존 데이터프레임에 원핫인코딩을 적용하기 위해 더미변수를 기존 데이터프레임과 합치고 범주형 데이터인 'species', 'color' 피처는 제거하자.
이때 판다스의 concat 함수를 이용한다. 옵션에서 axis=1로 설정해주어야 열 방향으로 합쳐진다. (default는 axis=0)
df = pd.concat([dummies_01, dummies_02, df['count']], axis=1)
df

2024.08.08 수정
각 명목변수들을 따로 수치형 변환하지 않고 df함수에 한번에 get_dummies() 함수를 적용하면 더 간단하다.
df = pd.get_dummies(df)
df

이때, 이전에 get_dummies() 함수를 사용하면 범주형 변수들이 수치형 변수들로 변경이 되었었는데, 현재는 boolean 값으로 변경되도록 업데이트가 된 것도 확인할 수 있다.
이 상태로도 이후 모델에 fit하는 데 문제가 없기는 하지만, 만약 수치형으로 바꾸고 싶다면 astype() 함수를 이용하면 된다.
df = df.astype(int)
df

'Python' 카테고리의 다른 글
| [Python] 맥북프로 주피터 노트북 설치하기 (0) | 2024.08.12 |
|---|---|
| [Python/Anaconda] 맥북프로 아나콘다 가상환경 생성 (0) | 2024.08.10 |
| [Python] 아나콘다(Anaconda)란? (0) | 2024.08.10 |
| [Python] 맥북프로 아나콘다 설치 실패 (0) | 2024.08.08 |
| [Python] 맥북프로 아나콘다 설치 방법 (0) | 2024.08.08 |