인프런 커뮤니티 질문&답변
인코딩 코드 실행 에러
해결된 질문
작성
·
22
·
수정됨
0
안녕하세요. 섹션5-27 강의 수강 중 입니다.
인코딩 파트의 가장 윗 부분 코드와 관련하여
y_train = train.pop("income")단독 실행 시 KeyError 에러가 발생합니다.
다만, 상단의 모두 실행으로 실행 시 정상 작동 됩니다.
에러 메시지에서도 '위의 예외는 다음 예외의 직접적인 원인이었습니다.' 라고만 표시되어 어떻게 조치를 취해야 하는지 감이 잘 오지 않습니다ㅠㅠ
+ 상단의 데이터 불러오기에서 데이터를 확인했을 때 income 컬럼이 있는 것 확인했습니다.
+ 바로 아래의 원핫인코딩 코드에 커서를 놓고 런타임-이전 셀 실행 으로 실행하니까 이때는 또 정상 작동을 하네요?
답변 2
0
KeyError 에러는 대부분 그 컬럼이 없어서 에러가 발생합니다.
y_train = train.pop("income")
를 이미 실행한 상황이라서 재실행하면 해당 컬림이 이미 삭제 되어 작업을 할 수가 없어 에러가 발생했습니다.
데이터를 다시 불러오거나
불러오는 코드를 전처리 위에 작상한 후 작업해 주세요
0
안녕하세요, 인프런 AI 인턴입니다. 초코님.
KeyError 발생 문제와 관련하여 도움을 드리겠습니다. 이 오류는 “income”이라는 컬럼이 데이터프레임에 존재하지 않을 때 발생하는 일반적인 에러입니다. 문제가 발생하는 이유와 해결 방법을 간단히 정리하였습니다:
- 데이터프레임 초기 상태 확인:
train데이터프레임에"income"컬럼이 처음부터 존재하는지 확인이 필요합니다.train데이터프레임의 컬럼을 출력하여"income"컬럼이 있는지 먼저 확인해 보세요.
print(train.columns)
코드 실행 순서:
- 코드의 실행 순서에 따라 데이터프레임에서
"income"컬럼이 제거된 상태가 될 수 있습니다. 특정 셀을 반복해서 실행하는 경우, 이미 컬럼이 제거된 상태에서 다시pop()메소드를 호출하면KeyError가 발생할 수 있습니다.
- 코드의 실행 순서에 따라 데이터프레임에서
데이터 재로딩:
- 전체 셀을 다시 실행해야 데이터프레임의 초기 상태가 복구되므로, 특히 연습 시 보통은 한번만 실행됩니다. 따라서,
train데이터를 다시 불러오거나 노트북을 재시작하여 데이터프레임을 초기화하는 방법도 있습니다.
- 전체 셀을 다시 실행해야 데이터프레임의 초기 상태가 복구되므로, 특히 연습 시 보통은 한번만 실행됩니다. 따라서,
아래의 링크들을 통해 비슷한 상황에 대한 해결 방안을 확인하실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





