인프런 커뮤니티 질문&답변
왜 칼럼이 없다고 오류가 나오죠
해결된 질문
작성
·
26
0
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요
먼저 유사한 질문이 있었는지 검색해보세요
안녕하세요
X_train = X_train.drop('ID', axis=1)
X_test_id = X_test.pop('ID')
X_test.head()
라고 코드를 적었는데
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
/tmp/ipython-input-1436373027.py in <cell line: 0>()
1 # trainID 삭제, testID 값만 옮겨둠
----> 2 X_train = X_train.drop('ID')
3 X_test_id = X_test.pop('ID')
4 X_test.head()
3 frames
/usr/local/lib/python3.12/dist-packages/pandas/core/indexes/base.py in drop(self, labels, errors)
7068 if mask.any():
7069 if errors != "ignore":
-> 7070 raise KeyError(f"{labels[mask].tolist()} not found in axis")
7071 indexer = indexer[~mask]
7072 return self.delete(indexer)
KeyError: "['ID'] not found in axis"
다음과 같이 id라는 컬럼이 발견되지 않았다고 오류가 나옵니다. 선생님이 한거랑 똑같이했는데 왜 이렇죠? 위에 라벨인코딩한거보면 분명 id라는 컬럼이 있는데 왜 위같이 오류가 나올까욧답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. gamb21님, 질문해 주신 KeyError와 관련하여 설명드리겠습니다.
KeyError: "['ID'] not found in axis" 오류는 데이터프레임에서 존재하지 않는 컬럼을 삭제하려고 할 때 발생합니다. 이는 종종 다양한 상황에서 발생할 수 있습니다:
문제 발생 원인
- 중복 실행: 이전에 이미 ‘ID’ 컬럼을 삭제했을 가능성이 있습니다. 주피터 노트북에서는 동일 셀을 다시 실행하면 이미 수행된 작업이 반복으로 시도됩니다.
- 데이터 크기 오류: 다른 코드에서 데이터를 갱신하지 않아서 현재 데이터프레임에서 ‘ID’ 컬럼이 없는 상태일 수 있습니다.
- 잘못된 접근:
drop또는pop메소드를 호출하는 데이터프레임에 대해 ID 컬럼이 존재하지 않는 경우입니다.
해결 방법
- 항상 데이터를 다시 불러오거나, 셀을 한번에 모두 실행하여 상태를 초기화한 후 작업하세요.
- 데이터프레임에 ‘ID’ 컬럼이 존재하는지
X_train.columns를 통해 먼저 확인해보세요.
- 필요하다면 코드를 간결하게 수정하여,
drop하거나pop하는 과정에서 오류가 발생하지 않도록 코드를 빌드하세요.
비슷한 문제에 대한 기존의 질문과 관련 해결 방법은 아래 링크에서 확인하실 수 있습니다:
- 2회 기출유형(작업형2)에서 불필요한 컬럼(ID)제거시 오류: 오류가 발생하는 상황과 코드 실행에 따른 문제점을 다룬 유사한 사례입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





