728x90
라이브러리 및 데이터 불러오기
# 라이브러리
import pandas as pd
# 데이터
mock_data = pd.read_csv('MOCK_DATA.csv')
# 데이터 확인
mock_data.head(5)
id | ssn | first_name | last_name | gender | ip_address | city | country | car_make | car_model | ||
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 352-83-7834 | Josselyn | Commuzzo | jcommuzzo0@shop-pro.jp | Female | NaN | Aībak | Afghanistan | GMC | Yukon XL 2500 |
1 | 2 | 129-55-2802 | Aksel | Cubbin | acubbin1@rakuten.co.jp | Male | NaN | Gaya | Nigeria | Cadillac | CTS |
2 | 3 | 421-78-0056 | Marwin | Vagg | NaN | Male | NaN | Huangjiakou | China | Chevrolet | Tahoe |
3 | 4 | NaN | Michele | Freed | NaN | Male | 95.30.236.76 | Ferrol | Spain | Volvo | NaN |
4 | 5 | 821-40-7635 | Skip | Sallan | ssallan4@nymag.com | Male | 200.83.222.220 | Sheffield | United Kingdom | GMC | Canyon |
칼럼 확인
mock_data.columns
Index(['id', 'ssn', 'first_name', 'last_name', 'email', 'gender', 'ip_address',
'city', 'country', 'car_make', 'car_model'],
dtype='object')
칼럼 선택 (여러개 선택해도 가능, 다만 많아지만 데이터프레임의 칼럼 개수가 너무 많아지게 됨)
select_column = ['gender']
ONE HOT ENCODING 함수 정의
def one_hot_encoding(train_data):
for cate in select_column: #ONE HOT ENCODING 처리
prefix = cate #붙여둘 단어를 value 자체로함. 이건 다르게 설정 가능
one_hot_encoding = pd.get_dummies(train_data[[cate]], prefix=prefix) #OHE 진행
train_data = pd.concat([pd.DataFrame(train_data), one_hot_encoding],axis=1) #기존 데이터프레임에 합쳐주기
train_data = train_data.drop(cate,axis=1) #ONE HOT ENCODING 대상이었던 칼럼은 삭제
return train_data.copy()
gender가 사라지고, gender_Female, gender_Male 칼럼이 생긴 것을 확인할 수 있음
return_data = one_hot_encoding(mock_data)
return_data.head(3)
id | ssn | first_name | last_name | ip_address | city | country | car_make | car_model | gender_Female | gender_Male | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 352-83-7834 | Josselyn | Commuzzo | jcommuzzo0@shop-pro.jp | NaN | Aībak | Afghanistan | GMC | Yukon XL 2500 | 1 | 0 |
1 | 2 | 129-55-2802 | Aksel | Cubbin | acubbin1@rakuten.co.jp | NaN | Gaya | Nigeria | Cadillac | CTS | 0 | 1 |
2 | 3 | 421-78-0056 | Marwin | Vagg | NaN | NaN | Huangjiakou | China | Chevrolet | Tahoe | 0 | 1 |
728x90
'DATA' 카테고리의 다른 글
[Python pandas] 데이터프레임(dataframe)에서 그룹 기준으로 누적계산하기 (0) | 2019.10.09 |
---|---|
[Python pandas] 데이터프레임(dataframe)에서 null 값만 찾아내기 (0) | 2019.10.08 |
[Python pandas] 리스트의 값을 기반으로 순열 조합 만들기 (0) | 2019.10.06 |
[Python pandas] 데이터프레임(dataframe)에서 중복 데이터 확인하기 (0) | 2019.10.06 |
[Python pandas] 데이터프레임(dataframe)에서 특정 칼럼을 제외한 칼럼만 선택하기 (0) | 2019.10.06 |
[Python pandas] 데이터프레임(dataframe)에서 데이터타입(dtype)에 부합하는 칼럼만 가져오기 (0) | 2019.10.06 |