작성
·
38
0
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
세요
질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요
먼저 유사한 질문이 있었는지 검색해보
train = pd.get_dummies(train, columns=cols)
test = pd.get_dummies(test, columns=cols)
display(train.head(2))
display(test.head(2))
KeyError Traceback (most recent call last)
<ipython-input-52-5da4ae8d05fa> in <cell line: 0>()
1 # 원핫 인코딩
----> 2 train = pd.get_dummies(train, columns=cols)
3 test = pd.get_dummies(test, columns=cols)
4 display(train.head(2))
5 display(test.head(2))
3 frames
/usr/local/lib/python3.11/dist-packages/pandas/core/indexes/base.py in _raise_if_missing(self, key, indexer, axis_name)
6247 if nmissing:
6248 if nmissing == len(indexer):
-> 6249 raise KeyError(f"None of [{key}] are in the [{axis_name}]")
6250
6251 not_found = list(ensure_index(key)[missing_mask.nonzero()[0]].unique())
KeyError: "None of [Index(['sex', 'smoker', 'region'], dtype='object')] are in the [columns]"
답변 2
0
cols 변수에 있는 컬럼이 train에 없는 것 같아요. 아래 코드를 사용해 컬럼명을 비교해 주세요!
print(cols)
print(train.columns)
그리고
train = pd.get_dummies(train) -> 이런 방식으로 진행해 보시겠어요?
자동으로 범주형만 선택해 인코딩 합니다 🙂
문
0
안녕하세요, 인프런 AI 인턴입니다. 찌찌찌누님.
KeyError
는 원핫 인코딩을 수행할 때 존재하지 않는 컬럼을 대상으로 실행하려고 할 때 발생하는 오류입니다. 이는 주로 컬럼의 이름이 잘못되었거나, 지정된 컬럼이 데이터프레임에 존재하지 않을 때 발생합니다.
현재 상황에서 문제가 발생한 이유를 다음과 같이 추정할 수 있습니다:
1. cols
변수에 지정된 컬럼들이 train
과 test
데이터프레임에 실제로 존재하지 않기 때문에 오류가 발생합니다.
train
이나 test
데이터프레임에 원핫 인코딩을 수행할 유의미한 범주형 변수가 없을 수도 있습니다.해결 방법으로는 다음의 방법을 시도해 보세요:
- cols
내에 존재하는 모든 컬럼이 train
및 test
데이터프레임에 존재하는지 확인합니다. cols
변수를 출력하여 실제 컬럼 명을 일일이 확인해 보세요.
train
및 test
데이터프레임으로 할당되었는지 확인해 보시고, 혹시 데이터셋에 문제가 있을 수 있습니다.아래 유사한 질문과 답변들을 참고하시면 도움이 될 수 있습니다:
- 원핫인코딩에 관한 유사 질문
- pd.get_dummies(train[cols])와 관련된 질문
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.