해결된 질문
작성
·
40
·
수정됨
답변 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
기능에 대해서 좀 더 깊이 있는 설명과 다양한 상황에서의 해결책을 찾아볼 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.