강의

멘토링

커뮤니티

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

초코님의 프로필 이미지
초코

작성한 질문수

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

데이터 전처리2 (인코딩, 스케일링)

인코딩 코드 실행 에러

해결된 질문

작성

·

22

·

수정됨

0

안녕하세요. 섹션5-27 강의 수강 중 입니다.

 

인코딩 파트의 가장 윗 부분 코드와 관련하여

y_train = train.pop("income")

단독 실행 시 KeyError 에러가 발생합니다.

다만, 상단의 모두 실행으로 실행 시 정상 작동 됩니다.

에러 메시지에서도 '위의 예외는 다음 예외의 직접적인 원인이었습니다.' 라고만 표시되어 어떻게 조치를 취해야 하는지 감이 잘 오지 않습니다ㅠㅠ

 

+ 상단의 데이터 불러오기에서 데이터를 확인했을 때 income 컬럼이 있는 것 확인했습니다.  

+ 바로 아래의 원핫인코딩 코드에 커서를 놓고 런타임-이전 셀 실행 으로 실행하니까 이때는 또 정상 작동을 하네요?

 

답변 2

0

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

KeyError 에러는 대부분 그 컬럼이 없어서 에러가 발생합니다.

y_train = train.pop("income")

를 이미 실행한 상황이라서 재실행하면 해당 컬림이 이미 삭제 되어 작업을 할 수가 없어 에러가 발생했습니다.

데이터를 다시 불러오거나

불러오는 코드를 전처리 위에 작상한 후 작업해 주세요

0

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

KeyError 발생 문제와 관련하여 도움을 드리겠습니다. 이 오류는 “income”이라는 컬럼이 데이터프레임에 존재하지 않을 때 발생하는 일반적인 에러입니다. 문제가 발생하는 이유와 해결 방법을 간단히 정리하였습니다:

  1. 데이터프레임 초기 상태 확인:
    • train 데이터프레임에 "income" 컬럼이 처음부터 존재하는지 확인이 필요합니다. train 데이터프레임의 컬럼을 출력하여 "income" 컬럼이 있는지 먼저 확인해 보세요.
   print(train.columns)
  1. 코드 실행 순서:

    • 코드의 실행 순서에 따라 데이터프레임에서 "income" 컬럼이 제거된 상태가 될 수 있습니다. 특정 셀을 반복해서 실행하는 경우, 이미 컬럼이 제거된 상태에서 다시 pop() 메소드를 호출하면 KeyError가 발생할 수 있습니다.
  2. 데이터 재로딩:

    • 전체 셀을 다시 실행해야 데이터프레임의 초기 상태가 복구되므로, 특히 연습 시 보통은 한번만 실행됩니다. 따라서, train 데이터를 다시 불러오거나 노트북을 재시작하여 데이터프레임을 초기화하는 방법도 있습니다.

아래의 링크들을 통해 비슷한 상황에 대한 해결 방안을 확인하실 수 있습니다:

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

초코님의 프로필 이미지
초코

작성한 질문수

질문하기