반응형
판다스를 활용한 one-hot, 더미 컬럼 만들기 (pandas.get_dummies one-hot encoding)¶
In [1]:
import pandas as pd
import numpy as np
In [2]:
# 예시 데이터를 생성합니다 !
df = pd.DataFrame({"성별" : ["남성", "여성", np.nan, "여성", "남성"],
"점수" : [85, 90, 78, 90, 88]})
df
Out[2]:
성별 | 점수 | |
---|---|---|
0 | 남성 | 85 |
1 | 여성 | 90 |
2 | NaN | 78 |
3 | 여성 | 90 |
4 | 남성 | 88 |
In [3]:
# 성별 컬럼 처럼 문자열로만 구성된 컬럼은 자동으로 더미항을 만들어 냅니다.
pd.get_dummies(df)
Out[3]:
점수 | 성별_남성 | 성별_여성 | |
---|---|---|---|
0 | 85 | 1 | 0 |
1 | 90 | 0 | 1 |
2 | 78 | 0 | 0 |
3 | 90 | 0 | 1 |
4 | 88 | 1 | 0 |
In [4]:
# dummy_na 옵션을 True로 하면 nan 값도 더미항에 추가 됩니다.
pd.get_dummies(df, dummy_na=True)
Out[4]:
점수 | 성별_남성 | 성별_여성 | 성별_nan | |
---|---|---|---|---|
0 | 85 | 1 | 0 | 0 |
1 | 90 | 0 | 1 | 0 |
2 | 78 | 0 | 0 | 1 |
3 | 90 | 0 | 1 | 0 |
4 | 88 | 1 | 0 | 0 |
In [5]:
# prefix 옵션을 설정하면 더미의 접두어를 변경할 수 있습니다 (ex : 성별_남성 -> dummy_남성)
pd.get_dummies(df, dummy_na=True, prefix=["dummy"])
Out[5]:
점수 | dummy_남성 | dummy_여성 | dummy_nan | |
---|---|---|---|---|
0 | 85 | 1 | 0 | 0 |
1 | 90 | 0 | 1 | 0 |
2 | 78 | 0 | 0 | 1 |
3 | 90 | 0 | 1 | 0 |
4 | 88 | 1 | 0 | 0 |
In [6]:
# 내가 원하는 컬럼만 선택해서 더미 컬럼을 만들기 위해 예시 데이터를 생성합니다.
df = pd.DataFrame({"성별" : ["남성", "여성", np.nan, "여성", "남성"],
"지역" : ["서울", "경기도", "서울", "서울", "경기도"],
"점수" : [85, 90, 78, 90, 88]})
df
Out[6]:
성별 | 지역 | 점수 | |
---|---|---|---|
0 | 남성 | 서울 | 85 |
1 | 여성 | 경기도 | 90 |
2 | NaN | 서울 | 78 |
3 | 여성 | 서울 | 90 |
4 | 남성 | 경기도 | 88 |
In [7]:
# 특정 컬럼만 지정해서 dummy 를 설정하려면, 아래와 같이 입력 합니다.
df_dummy = pd.get_dummies(df["지역"])
df
Out[7]:
성별 | 지역 | 점수 | |
---|---|---|---|
0 | 남성 | 서울 | 85 |
1 | 여성 | 경기도 | 90 |
2 | NaN | 서울 | 78 |
3 | 여성 | 서울 | 90 |
4 | 남성 | 경기도 | 88 |
반응형
'python' 카테고리의 다른 글
sklearn train_test_split, 트레인 테스트 데이터 분할 (0) | 2022.12.18 |
---|---|
파이토치 view 텐서 차원 변경 (torch.view, shape 변경) (0) | 2022.12.18 |
파이썬 복사, 깊은 복사 copy() deepcopy() (0) | 2022.12.17 |
파이썬 한국 휴일(holidays) 표시하기 (pytimekr) (2) | 2022.12.17 |
[넘파이] axis 옵션 활용한 argmax 함수 사용, 최대값 위치 (0) | 2022.12.16 |
댓글