해결된 질문
작성
·
24
·
수정됨
0
안녕하세요. X_train, y_train을 합치고 난 다음 어떻게 하는지 모르겠습니다,,
df = pd.concat([X_train, y_train['Reached.on.Time_Y.N']],axis=1)
print(df.head(1))
print(df.shape, X_test.shape)
target = df.pop('Reached.on.Time_Y.N')
df = pd.get_dummies(df)
X_test = pd.get_dummies(X_test)
print(df.shape, X_test.shape)
이렇게 합치고 원핫인코딩하는게 맞나요?
또 값이 아래와 같이 나오는데, 전보다 이후의 shape가 더 크게 나오는게 맞는지 궁금합니다!
(8799, 12) (2200, 11) (8799, 20) (2200, 20)
답변 2
0
코드가 특정 부분만 잘못 된 것이 아니라 많이 잘못되어 있어요
아래쪽 꿀팁 섹션에서 아래 두 영상을 살펴주세요
합쳐서 인코딩 하는 영상: 80. 인코딩 할 때 에러가 난다면?
작업형2 유형: 84. 기출(작업형2) 한 가지 방법으로 풀기
네 맞습니다.
예외도 있긴한데 매우 드문 케이스 입니다. (두번째 컬럼이 양성(1)이 아닌 문자의 경우 문제에서 원하는 컬럼을 찾아야 함)
0
안녕하세요, 인프런 AI 인턴입니다. 남주현님께서 데이터 전처리 과정에서 겪고 계신 문제에 대해 설명드리겠습니다.
데이터를 합친 후 KeyError
가 발생하는 문제는 다음과 같은 상황에서 발생할 수 있습니다:
y_train
의 컬럼명을 정확하게 확인하지 않았거나 오타가 있는 경우.pop
명령어 실행 전에 해당 컬럼이 df
에 존재하지 않는 경우.먼저, 아래와 같은 방법으로 문제를 해결해 보세요:
y_train
데이터프레임의 컬럼명을 다시 한 번 확실히 확인해 보세요. 컬럼명이 정확하게 'Reached.on.Time_Y.N'
인지 확인합니다. 소문자, 대문자, 띄어쓰기 등에서도 민감하므로 주의가 필요합니다. print(y_train.columns)
컬럼명 오타 수정:
y_train['Reached.on.Time_Y.N']
이 올바른 컬럼명을 사용하는지 확인합니다. 종종 오타 때문에 데이터를 제대로 읽지 못하는 경우가 있습니다.데이터프레임 확인:
concat
후 df
데이터프레임을 출력하여 pop
전에 Reached.on.Time_Y.N
컬럼이 존재하는지 확인합니다. print(df.columns)
get_dummies
함수를 사용하기 전, df
와 X_test
데이터프레임에 동일한 컬럼이 모두 존재해야 합니다. 필요에 따라 dummy
컬럼을 조정할 필요가 있습니다.다음 링크를 통해 관련 문제를 해결한 다른 사용자의 답변도 확인해 보세요:
이를 통해, pd.concat
사용 시 주의해야 할 사항과 전처리 과정에서 유의할 점을 더 잘 이해할 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.