get_dummies()의 널값 처리
341
작성한 질문수 10
357-8쪽 해당 실습에서
object형을 제외한 int 타입에 대해서 fillna 메서드를 활용해서 Null 칼럼을 평균값으로 대체 하였습니다.
null_column_count=house_df.isnull().sum()[house_df.isnull().sum()>0]
house_df.dtypes[null_column_count.index]
MasVnrType object
BsmtQual object
BsmtCond object
BsmtExposure object
BsmtFinType1 object
BsmtFinType2 object
Electrical object
GarageType object
GarageFinish object
GarageQual object
GarageCond object
dtype: object
그래서 다음과 같이 12개의 feature에서만 null값이 남게 되었는데요, 358쪽에서 get_dummies()는 자동으로 문자열 피처를 원-핫 인코딩 변환하면서 NUll 값은 'None'칼럼으로 대체해준다고 하였습니다.
None칼럼으로 대체해주면 인코딩 이후 None으로 끝나는 칼럼의 갯수가 12개가 나와야 하는데,
house_df_ohe=pd.get_dummies(house_df)
for i in house_df_ohe:
if "None" in i:
print(i)
을 하면, MasVnrType_None으로 한개밖에 나오지 않습니다. 왜 나머지는 나오지 않는지 궁금합니다!
예를 들어, house_df에서 BsmtQual은 17번째 row에서 nan 값인데, house_df_ohe에서 BsmtQual_None이라는 칼럼명이 없으며,
BsmtQual로 시작하는 칼럼명은 다음과 같이 4개('BsmtQual_Ex','BsmtQual_Fa','BsmtQual_Gd','BsmtQual_TA') 밖에 없고,
house_df_ohe[['BsmtQual_Ex','BsmtQual_Fa','BsmtQual_Gd','BsmtQual_TA']].iloc[17]을 해보면
BsmtQual_Ex 0 BsmtQual_Fa 0 BsmtQual_Gd 0 BsmtQual_TA 0 모두 0이 나옵니다. 여기 nan값은 인코딩 후 어떻게 되는건가요? 따로 칼럼이 만들어지지 않는건가요?
답변 1
2
해당 부분은 판다스 버전업이 되어서 변경된건지, 아님 제가 잘못 기술한 건지 잘 모르겠습니다.
현재 버전으로는 DataFrame.get_dummies(dummy_na=True)를 사용해야 Null 컬럼값을 만듭니다. ( default는 dummy_na=False 입니다)
house_df_ohe=pd.get_dummies(house_df, dummy_na=True)
for i in house_df_ohe:
if 'nan' in i:
print(i)
좋은 정보 감사합니다. 나중에 책/강의 개정시 반영하겠습니다.
0
강사님 안녕하세요! 저도 이 질문 관련하여 궁금증이 생겨 코드를 수행해보았습니다.
house_df_ohe=pd.get_dummies(house_df, dummy_na=True)
이렇게 코드를 수행할 경우 모든 문자타입 컬럼에 'None' 컬럼이 생성되는 것 같습니다.
house_df_ohe.shape >> (1460, 309)
* dummy_na=False 에서 컬럼은 271개이므로 38개가 더 생겼습니다. (원래 43개 문자타입 컬럼이 있으나 5개는 drop한 상태)
이렇게 된다면 컬럼이 너무 많이 생기는 것 같습니다. dummy_na=False로 진행해도 nan값이 반영된다고 볼 수 있지 않을까요?
* nan 값일 경우 특정컬럼에서 모두 '0' 으로 반영
안녕하세요 열심히 수강중인 학생입니다
0
59
2
정수 인덱싱
0
67
2
넘파이 오류
0
83
2
11강 numpy의 axis 축 질문 드립니다.
0
84
2
Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.
0
76
2
Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.
0
68
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
74
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
62
2
5강 강의 오류가 있어요.
0
82
1
실무에서 LTV 관련 모델 선택 질문입니다!
0
71
2
14강 강의 듣는중에 궁금한게 있어서 질문합니다~
0
68
3
파이썬 다운그레이 후 사이킷런 재설치
0
115
2
좋은 강의 감사합니다.
0
71
2
scoring 함수 음수값
0
66
2
6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?
0
98
2
분류 평가 정확도 예측
0
75
2
안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.
0
97
1
카카오톡 채널 있나요
0
105
1
혹시 강의에서 사용하시는 ppt 받을 수 있는건가요
0
187
2
pca 스케일링 관련하여 질문드립니다.
0
100
2
주피터 대신 구글 코랩
0
170
2
강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?
0
145
2
실루엣 스코어..
0
83
2
float64 null 값 처리 방법
0
101
2





