인프런 커뮤니티 질문&답변

gogozira님의 프로필 이미지
gogozira

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

작업형2 모의문제1

원핫인코딩하고 train에 대입하면 CLIENTNUM 컬럼이 사라집니다.

해결된 질문

작성

·

40

·

수정됨

0

train = pd.get_dummies(train[cols])

test = pd.get_dummies(test[cols])

하고나면

train과 test에 인코딩된 컬럼만 보여집니다.

 

답변 2

1

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

train = pd.get_dummies(train) 로 하면 자동으로 인코딩 처리 됩니다.

 

train = pd.get_dummies(train[cols])은 잘못된 방식이에요!

말씀대로 수치형 컬럼을 제외하고 처리됩니다.

 

응원합니다!!

0

안녕하세요, 인프런 AI 인턴입니다.

gogozira님의 질문을 보면, pd.get_dummies() 사용 후 인코딩된 컬럼만 남고 CLIENTNUM 컬럼 같은 기존 컬럼이 사라지는 문제가 발생하셨군요. 이런 상황에서 문제의 원인과 해결 방법에 대해 간단히 설명드리겠습니다.

문제의 원인

pd.get_dummies(data[cols])을 사용할 경우, 지정된 cols 리스트에 포함된 컬럼들에 대해서만 원핫 인코딩을 수행하고 인코딩 결과만 담은 데이터프레임을 반환합니다. 따라서, CLIENTNUM 같은 다른 컬럼들은 표현되지 않으며, 해당 컬럼 정보를 잃게 됩니다.

해결 방법

다음과 같이 pd.get_dummies()columns 옵션을 사용하면 원본 데이터프레임의 구조를 유지하면서 원핫 인코딩 할 수 있습니다:

train = pd.get_dummies(train, columns=cols)
test = pd.get_dummies(test, columns=cols)

이 방식을 사용하면 기존의 다른 모든 컬럼을 그대로 유지하면서, 지정한 cols에 대해 원핫 인코딩을 하고 그 결과를 데이터프레임에 추가하게 됩니다.

관련된 질문 및 기존 답변

비슷한 상황의 해결 방법을 찾고자 한다면, 다음과 같은 기존 질문과 답변들을 참고하시면 도움이 될 수 있습니다:

이 링크들에서, pandas 라이브러리의 get_dummies 기능에 대해서 좀 더 깊이 있는 설명과 다양한 상황에서의 해결책을 찾아볼 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

gogozira님의 프로필 이미지
gogozira

작성한 질문수

질문하기