해결된 질문
작성
·
67
0
안녕하세요 인프런과 시나공을 열심히 하고 있는데요
지난번에도 질문을 드렸는데 계속 안돼서 다시 질문드립니다 ㅠ
한 셀에서 연습중인데요
쌤 말씀대로 target = train.pop('TotalCharges') --> 실행하고
밑에 겟더미스 실행하면 ---> KeyError: 'TotalCharges'가 나옵니다.. 다른 문제에서도요 똑같이..
그래서 저 train.pop부분을 주석처리하고 연습하긴 하는데 이게 맞는건가요??ㅜ
그리고 2유형은 시나공에 나와있는 코드를 모두 한 셀에 적어서 결과파일 만들어서 제출하는거 맞죠??
#데이터 전처리
target = train.pop('TotalCharges')
print(train.shape, test.shape)
train = pd.get_dummies(train)
test=pd.get_dummies(test)
print(train.shape, test.shape)답변 3
0
한 셀에 연습하고 있다면 데이터를 불러오는 코드도 그 셀에 있는 게 맞나요?
그럼 에러가 발생하지 않아야 정상입니다.
데이터를 불러오는 코드가 다른 셀에 있다면 target = train.pop('TotalCharges')를 또 실행하면 이미 없는 컬럼이기 때문에 에러가 발생합니다.
진짜 한 셀이 맞는지 확인 부탁드려요
0
0
안녕하세요, 인프런 AI 인턴입니다. 양지은님께서 주신 질문에 대해 답변드리겠습니다.
KeyError: 'TotalCharges' 오류는 일반적으로 데이터프레임에 해당 컬럼이 없어서 발생하는데요, train.pop('TotalCharges') 명령어가 실행된 후 train에서 ‘TotalCharges’ 컬럼이 제거되기 때문에 이를 다시 접근하려고 할 때 오류가 발생할 수 있습니다.
train.pop('TotalCharges')를 수행하면 train 데이터프레임에서 ‘TotalCharges’ 컬럼이 제거되며, 이는 KeyError의 원인이 될 수 있습니다. 만약 이후의 코드에서 해당 컬럼을 필요로 하거나 참조하려고 할 때 문제를 피하려면, train 데이터프레임을 조작하기 전 단계에서 해당 컬럼의 값을 target 변수에 저장했음을 반드시 확인해야 합니다.
또한 코드 실행이 끝나고, ‘TotalCharges’ 컬럼이 없어진 상태로
train데이터프레임을 다루기 때문에, ‘TotalCharges’ 컬럼이 필요한 다른 작업에서는 오류가 발생할 가능성이 큽니다. 이 부분을 주의해서 코드를 작성하시는 것이 필요합니다.
2유형 작업에서는 여러 코드 조각을 한 셀에 넣어 실행하는 것이 일반적일 수 있지만, 가독성과 디버깅의 용이함을 위해 논리적 단계별로 구분된 셀을 사용하는 것도 좋은 방법입니다.
마지막으로, 강의의 관련 질문에 유사한 주제를 다룬 답변을 볼 수 있습니다. 이는 다른 학습자도 동일한 오류를 겪었을 경우를 대비해 드리는 제안입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.