🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    자격증 (데이터 사이언스)

  • 해결 여부

    해결됨

2회 기출유형(작업형2)에서 불필요한 컬럼(ID)제거시 오류

23.06.14 20:40 작성 조회수 233

0

안녕하세요~ ㅠㅠ

오늘도.. 강의를 복습하며 오류와의 싸움중입니다 ㅠㅠ

X_train = X_train.drop('ID',axis=1)
X_test_id = X_test.pop('ID')

다름이 아니고 불필요한 컬럼을 제거하는 과정에서 오류가 자주 발생하는데, 위 작업 진행 후 실행 -> 라벨인코딩 등 다른 코드 입력 후 재실행 할 경우 ID 컬럼이 이미 사라졌는데 또 실행되다보니(?) ID 컬럼은 찾을수 없다 라는 오류로 해석됩니다 ㅠㅠ

----> 4 X_train = X_train.drop('ID',axis=1)

5 X_test_id = X_test.pop('ID')

KeyError: "['ID'] not found in axis"

1) 위와 같은 오류는 어떻게 해결해야하나요?

2) 불필요한 컬럼을 삭제하는 과정은 꼭 필요한건가요?

3) X_train = X_train.drop('ID',axis=1) 의 경우 'X_train'에서 id 컬럼을 드랍한다 라고 이해했는데,

X_test_id = X_test.pop('ID') 는 'X_test_id' 라는 새로운 곳에 X_test의 ID 컬럼을 저장한다? 로 이해하면 되는건가요? ㅠㅠ

(이 질문을 하는 이유는 이전 예시문제 강의에서는 컬럼 명을 그대로 사용하여 cust_id = X_test.pop('cust_id') 로 사용했으나, 이번 강의에서는 ID = X_test.pop('ID') 가 아닌 'X_test_id'를 이용했기떄문입니다 ㅠㅠID = X_test.pop('ID') 요렇게 하면 안되나요? )

답변 1

답변을 작성해보세요.

0

  1. 주피터 노트북 형태에서 drop은 주의해주셔야 합니다.

    한 번 실행하고 재실행시 이미 삭제되었기 때문에 위와 같은 오류가 발생해요

    시험환경은 항상 처음부터 실행하기 때문에 이러한 오류가 발생하진 않습니다.

    주피터 노트북에서 런타임 - 모두실행을 해주세요 :)

  2. id 컬럼 삭제가 번거롭다면 놔둬도 됩니다. 머신러닝 모델이 중요도를 낮게 매깁니다. 다만 id컬럼이 object이면 어떻게 하는게 좋을까요? 놔두려면 라벨인코딩 해주거나 삭제해야 합니다.

  3. pop은 2가지기능이 포함되어 있어요! 1)대입 후 2)삭제입니다.

  4. 변수명은 제가 임의로 만들고 있습니다. 원하는대로 본인이 알아볼 수있게만 하면됩니다.

채널톡 아이콘