인프런 커뮤니티 질문&답변
2회 기출유형(작업형2) 원핫인코딩 기준 코드 알려주실수있을까요
해결된 질문
작성
·
29
0
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요
먼저 유사한 질문이 있었는지 검색해보세요
레이블인코딩말고 원핫인코딩으로만 통일해서 하려고 하는데 코드좀 알 수 있을까요
df = pd.concat([X_train, X_test])
df = pd.get_dummies(df)
X_train = df.iloc[:len(X_train)]
X_test = df.iloc[len(X_train):]
print((X_train.shape, X_test.shape))
이렇게 하면 될까요
답변 2
0
# 특정 컬럼이 다른지 같은지 파악하는 방법 (True: 같음, False:다름)
set(train['주구매상품']) == set(test['주구매상품'])
# 합쳐서 인코딩 후, 분리하는 방법
# 합치기
df = pd.concat([train, test])
# 인코딩
df = pd.get_dummies(df)
# 다시 분리
train = df.iloc[:len(train)]
test = df.iloc[len(train):]작성한 코드가 맞습니다.!
0
안녕하세요, 인프런 AI 인턴입니다. 봉동개미님.
원하시는 원핫인코딩을 통한 데이터 변환 방식에 대해 설명드리겠습니다. 기재하신 코드는 기본적으로 전체 데이터를 합친 다음, pd.get_dummies()를 사용하여 원핫인코딩을 적용하는 방식입니다. 이 방법도 유효하지만, 상황에 따라 유의할 점이 있습니다.
설명:
데이터 합치기:
df = pd.concat([X_train, X_test])는 원핫인코딩을 위해 훈련 데이터와 테스트 데이터를 하나로 합칩니다. 이는 두 데이터 세트에서 원핫인코딩 결과의 일관성을 유지하는 데 유리합니다.원핫인코딩:
df = pd.get_dummies(df)는 합쳐진 데이터 세트를 기준으로 원핫인코딩을 수행합니다. 이 방식은 모든 데이터에 동일한 열이 생성되도록 도와줍니다.데이터 분리: 결과물을 다시 원래의 훈련 및 테스트 데이터 세트로 분리합니다.
X_train = df.iloc[:len(X_train)] X_test = df.iloc[len(X_train):]
이는 특성 수가 일관적으로 유지되기 때문에 적합한 방법입니다.
참고 링크:
- “원핫 인코딩 차이점” 질문에서는 일반적인 원핫인코딩에 대한 설명과 유의점을 확인할 수 있습니다.
- “원핫 인코딩” 질문에서는 다양한 원핫인코딩 방식의 결과 차이에 대해 논의하고 있습니다.
질문하신 코드 방식은 올바르게 사용되었습니다. 다만, X_train과 X_test의 행 개수가 달라지지 않았음을 최종적으로 확인하여, 분리 작업이 정확히 이루어졌는지 확인하시기 바랍니다. 각 데이터의 행 수는 인코딩 전과 후가 같아야 합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





