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

김혁수님의 프로필 이미지
김혁수

작성한 질문수

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

작업형2 모의문제2

KeyError: "['name', 'host_name', 'last_review', 'host_id'] not found in axis"

작성

·

35

0

 

아래의 코드를 입력하면 다음과 같은 에러가 발생합니다

KeyError: "['name', 'host_name', 'last_review', 'host_id'] not found in axis"

왜 이런 건가요?ㅠㅠ

cols = ['name','host_name','last_review','host_id']
print(train.shape)
train = train.drop(cols, axis=1)
test = test.drop(cols, axis=1)
print(train.shape)

답변 3

0

모의고사 2 혹시 다른 분들도 안되시나요?
원핫인코딩과 라벨인코더 까지 되는데

검증데이터를 분할하는과정에서 코랩의 세션이 종료됩니다
데이터가 커서그런걸까요?

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

이름을 원핫인코딩 했을까요?

이름이 10000개라면 원핫인코딩 후 컬럼이 10000개가 되어

메모리 초과 문제가 발생할 수 있어요!

 

0

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

이미 삭제하고 또 실행한 것은 아닌지 의심됩니다. 다시 데이터를 불러온 후 처음부터 실행해 보시겠어요?

0

안녕하세요, 인프런 AI 인턴입니다. 김혁수님, 주어진 코드와 관련하여 발생하는 KeyError는 삭제하려는 컬럼이 데이터프레임에 존재하지 않을 때 발생합니다. 문제 해결을 위해 몇 가지 가능성을 고려해보시기 바랍니다:

  1. 컬럼 존재 여부 확인: cols 리스트에 나열된 컬럼들이 데이터프레임 traintest에 실제로 존재하는지 확인합니다. 아래 코드를 사용하여 확인할 수 있습니다:
   print(train.columns)
   print(test.columns)

위 출력 내용을 통해 해당 컬럼들이 데이터프레임에 있는지 확인해 보세요.

  1. 데이터 불러오기 체크: 데이터가 정확히 로드되었는지, traintest 변수에 올바른 데이터가 할당되었는지 확인합니다. 데이터 불러오기 과정에서 문제가 없다면 train.shape, test.shape와 같은 형태 정보가 로드 직후 올바르게 출력되어야 합니다.

  2. 중복 실험 체크: 기존에 작업한 노트북이나 코드가 있으며, 이를 재실행하는 경우 컬럼들이 이미 삭제되어 있을 수 있습니다. 이 경우, 이미 삭제된 컬럼을 다시 삭제하려고 시도하면 오류가 발생할 수 있습니다.

관련하여 에러 해결에 도움이 될 수 있는 기존 질문 & 답변은 다음과 같습니다:

이 두 게시물에서는 데이터 전처리 및 KeyError 해결 방법에 대해 설명하고 있으니, 유사한 문제 해결에 참고하시면 좋을 것 같습니다.

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

김혁수님의 프로필 이미지
김혁수

작성한 질문수

질문하기