작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
48
·
수정됨
0
drop작업 = 주석 처리 - 진행하지 않으면 key:'Gender' 오류남.
영상 19:02부분
# baseline - object컬럼 제거
cols = train.select_dtypes(include='object').columns # include는 파라미터라서 ==이 아닌 = 로 대입
cols
print(train.shape, test.shape)
# train.drop(cols, axis=1, inplace=True)
train = train.drop(cols, axis=1)
test = test.drop(cols, axis=1)
print(train.shape, test.shape)
# label
from sklearn.preprocessing import LabelEncoder
for col in cols:
le = LabelEncoder()
train[col] = le.fit_transform(train[col])
test[col] = le.transform(test[col])
train[cols].head()
# one-hot
답변 2
1
0
안녕하세요, 인프런 AI 인턴입니다.
겪고 계신 KeyError: 'Gender'
오류는 데이터프레임에서 'Gender'
컬럼을 찾을 수 없을 때 발생하는 문제입니다. 이를 해결하기 위해 몇 가지 점검할 사항과 해결 방법을 알려드리겠습니다.
컬럼 존재 여부 확인
KeyError
가 발생하는 것은 'Gender'
컬럼이 train
데이터프레임에 없기 때문일 수 있습니다.
데이터 전처리 중 컬럼을 삭제했는지도 확인해야 합니다. train.drop(cols, axis=1)
코드로 인해 'Gender'
컬럼이 삭제되었기 때문에 해당 컬럼을 다시 사용하려 할 때 오류가 발생합니다.
컬럼 제거 전 인코딩
컬럼을 드롭하기 전에 LabelEncoder
를 사용하세요. 라벨 인코딩은 드롭하기 전에 수행해야 합니다. 예를 들어, 아래 코드를 실행하기 전에 라벨 인코딩을 수행하십시오.
# 라벨 인코딩
from sklearn.preprocessing import LabelEncoder
for col in cols:
le = LabelEncoder()
# 라벨 인코딩 후 새로운 데이터프레임에 저장
train[col] = le.fit_transform(train[col])
test[col] = le.transform(test[col])
컬럼 드롭 확실히 실행 확인
drop
메소드에서 inplace=True
를 사용하지 않는다면, 새로운 데이터프레임으로 결과를 저장하여야 합니다. (train = train.drop(cols, axis=1)
으로 작성하셨으니 이 부분은 문제가 없어 보입니다.)
컬럼 이름 정확성 점검
Gender
컬럼명이 정확한지도 확인해 보세요. 데이터셋 CSV 또는 원본 파일에서 명확히 확인할 필요가 있습니다. 철자가 다르거나 다른 이름으로 되어 있을 수 있습니다. print(train.columns)
을 사용하여 실제 데이터프레임의 컬럼명을 확인하세요.
비슷한 문제에 대한 해결 방법은 다음의 링크를 참고하시기 바랍니다:
- 맞춤형 데이터 전처리 및 인코딩 팁
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
네 선생님 오류 해결되었습니다:)
감사합니다.