해결된 질문
작성
·
47
0
영상에서는 원핫 인코딩 이후 int형으로 바뀌는데 저는 bool 형식으로 바꼈습니다. 정상적인가요?
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6665 entries, 0 to 6664
Data columns (total 30 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 ID 6665 non-null int64
1 Age 6665 non-null int64
2 Work_Experience 6665 non-null float64
3 Family_Size 6665 non-null float64
4 Segmentation 6665 non-null int64
5 Gender_Female 6665 non-null bool
6 Gender_Male 6665 non-null bool
7 Ever_Married_No 6665 non-null bool
8 Ever_Married_Yes 6665 non-null bool
9 Graduated_No 6665 non-null bool
10 Graduated_Yes 6665 non-null bool
11 Profession_Artist 6665 non-null bool
12 Profession_Doctor 6665 non-null bool
13 Profession_Engineer 6665 non-null bool
14 Profession_Entertainment 6665 non-null bool
15 Profession_Executive 6665 non-null bool
16 Profession_Healthcare 6665 non-null bool
17 Profession_Homemaker 6665 non-null bool
18 Profession_Lawyer 6665 non-null bool
19 Profession_Marketing 6665 non-null bool
20 Spending_Score_Average 6665 non-null bool
21 Spending_Score_High 6665 non-null bool
22 Spending_Score_Low 6665 non-null bool
23 Var_1_Cat_1 6665 non-null bool
24 Var_1_Cat_2 6665 non-null bool
25 Var_1_Cat_3 6665 non-null bool
26 Var_1_Cat_4 6665 non-null bool
27 Var_1_Cat_5 6665 non-null bool
28 Var_1_Cat_6 6665 non-null bool
29 Var_1_Cat_7 6665 non-null bool
dtypes: bool(25), float64(2), int64(3)
memory usage: 423.2 KB
add코드
add텍스트
답변 2
0
네! 정상입니다.
이전에는 0과 1 로 변경되었는데
코랩이 업데이트 되면서 boolean 즉
False와 True로 변경되고 있고
sum()과 같이 연산할 때는 False: 0 , True:1 이므로
작업에는 영향이 없습니다.
화이팅입니다.
0
안녕하세요, 인프런 AI 인턴입니다.
김라의님께서 질문하신 내용에 대해 설명드리겠습니다. 원핫 인코딩 결과가 int가 아닌 bool 형식으로 나오는 것은 pandas의 버전 업데이트로 인해 발생할 수 있는 일반적인 현상입니다.
원핫 인코딩의 기본 동작은 각 범주형 변수를 0과 1로 표현하는 것입니다. bool 타입도 Python에서 True/False를 각각 1/0으로 취급할 수 있기 때문에, 원핫 인코딩 결과가 bool 타입으로 나오는 것에 대해서는 크게 걱정하지 않으셔도 됩니다. 계산이나 머신러닝 모델링에 있어 bool 타입은 int 타입과 같이 처리되므로 작업을 계속 진행하셔도 무방합니다.
하지만 만약 int 타입으로 변환하여 사용을 원하신다면, pd.get_dummies()
함수에서 dtype=int
파라미터를 사용하여 정의할 수 있습니다. 예시 코드는 다음과 같습니다:
train = pd.get_dummies(train, columns=['Gender', 'Ever_Married', 'Graduated', 'Profession', 'Spending_Score', 'Var_1'], dtype=int)
이렇게 하면 원핫 인코딩 결과가 int 형식으로 변환됩니다.
이와 관련된 유사한 질문과 답변은 다음 링크에서 확인하실 수 있습니다:
- 원핫인코딩 출력값 True, False: 원핫 인코딩 후 출력값이 True/False로 나오며, 이는 1,0과 동일하게 처리된다는 지식 공유자의 답변을 확인할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.