일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 우금캐면접
- BNK저축은행
- boostcourse
- 빅데이터분석기사
- 메타코드m
- 실기1유형
- 투자마인드
- 빅데이터분석기사 실기
- 우리금융캐피탈
- 데이터리안
- sql
- MySQL
- 빅분기 실기
- 빅분기1유형
- 통계독학
- 빅분기실기
- 데이터분석마인드셋
- 데이터분석전문가
- 컨버티드
- 데이터분석가
- 정처기
- 빅분기
- 데이터자격증
- 빅데이터분석기사실기
- 우리금융캐피탈면접
- 데이터분석
- 메타코드
- 투자도서
- 우금캐
- 데이터넥스트레벨챌린지
- Today
- Total
하파와 데이터
[빅분기] 실기 1유형- 인코딩(Encoding), Categorical().codes, get_dummies() 본문
인코딩은 대체로 str로 되어있는 데이터를 유의미하게 사용하기 위해서 전처리하는 방법중 하나이다.
예를들어, Setosa, Virginica 등이 문자로 있는 것은 의미가 없고,
이걸 이해하는 것도 어렵기때문에, 0,1,2 등의 숫자로 그 단어를 대체하는 것이다.
또는 10~19세를 0, 20~29를 1 등으로 변경하는 것도 동일한 방법이다.
사실 간단한 값들만 존재한다면, replace, map을 이용해서 내가 직접 인코딩과 같은 절차를 거칠 수도 있다.
하지만 그 값이 너무도 많다면??
그럴때 사용하는 것이 인코딩 기술이다.
이러한 인코딩에 대해서 배워보자
0. 전제
jupyter notebook 실행한 위치에 data라는 폴더가 있고, 그 안에 iris.csv가 존재한다.
1. Categorical().codes
여러가지의 데이터 값이 존재하고, 그것들을 일일이 내가 숫자를 구분하여 구분하기 어렵다.
그럴때는 바로 Categorical().codes를 사용해보자. 알아서 나눠준다!
import pandas as pd
df = pd.read_csv('data/iris.csv')
df['variety_label'] = pd.Categorical(df['variety']).codes
df
df['variety']의 값을 보고, pd.Categorical().codes가 친히 0,1,2 3가지로나눠서 label을 붙여주었다.
단, 여기서 Categorical의 시작은 대문자로 시작할 것!!
2. get_dummies()
원핫인코딩을 해주는 것이다.
get_dummies를 시행하면, 새로운 컬럼이 자동으로 추가되는데,
추가되는 컬럼은 내가 인코딩을 하고자하는 컬럼 내 데이터의 유일값들로 구성되고
각 컬럼에는 해당 데이터만 1, 나머지 모든 데이터는 0으로 취급된다.
즉, iris에서 variety는 Setosa, Versicolor, Virginica 3종류가 있다.
이에, get_dummies를 실행하면, variety_Setosa, variety_Versicolor, variety_Virginica가 생겨나고
각각의 컬럼은 Setosa일때만 1 나머지는 0과같이 자신의 데이터에만 1을 부여하게 된다.
import pandas as pd
df = pd.read_csv('data/iris.csv')
df = pd.get_dummies(df, columns = ['variety'])
# df = pd.get_dummies(df)
df
여기서 주의할 점은 pd.get_dummies(df)를 하면 데이터프레임에 있는 모든 범주형(object, category타입)에 대해서 인코딩을 수행한다. 그렇기 때문에 특정 컬럼을 기준으로 원핫인코딩을 수행하기 위해서는 columns = [컬럼명]을 지정해야한다!
'자격증 > DATA' 카테고리의 다른 글
[빅분기] 실기 1유형- 데이터 처리 실습해보기! (0) | 2024.11.29 |
---|---|
[빅분기] 실기 1유형- 결측치, 중복 제거(nan, duplicates) (0) | 2024.11.29 |
[빅분기] 실기 1유형- 데이터 정렬(sorting) (0) | 2024.11.29 |
[빅분기] 실기 1유형- 인덱스(Index) 설정, 리셋, 정렬 (0) | 2024.11.29 |
[빅분기] 실기 1유형- 데이터 변경(수정, 추가, 삭제) (0) | 2024.11.29 |