해결된 질문
작성
·
414
0
안녕하세요~ 선생님~
드디어 강의를 다 듣고 시험 준비를 하기 위해 기출문제와 강의 내용을 다시 한 번 반복하고 있습니다.
그러던 중에 3회 기출유형(작업형2)에서 수치형 데이터와 범주형 데이터 분리를 위해 select_dtypes() 요 메소드를 쓰고 나서 다시 copy()를 하는 것에 대해 궁금해서 여쭙게 되었습니다.
copy() 메소드를 더 붙이는 데에는 이유가 있을까요?
강의를 듣고 코드들을 숙지하면서 준비하니까 정말 강의 선택 잘 했다는 확인이 듭니다. 물론 붙는 건 또 별개의 문제겠지만… 아마 또 질문을 드리겠지만, 강의 정말 잘 들었다는 말씀 드립니다. ㅎ
답변 1
1
copy()를 작성하는 이유는 사본이라는 것을 분명하게 하기 위함이에요!!
작성하지 않아도 작동되다가 갑자기
SettingWithCopyWarning라는 워닝이 발생하기도 합니다.
일반적으로 워닝은 무시하나 시험환경은 실행이 중단되었습니다라는 멘트가 떠서
안전하게 워닝을 발생하는 것을 막는 것이 중요할 것 같아요
따라서 데이터프레임을 새 변수에 복사하거나 슬라이싱 등을 할 때는 뒤에 copy()를 붙여서 사본임을 알려주세요!! ( 혹시 컴공이라면...추가적으로 값에 의한 참조와 주소의 의한 참조랑 비슷합니다. )
그리고 데이터 분리 없이 아래와 같이 작성해요 자동으로 object컬럼만 원핫 인코딩하니 참고해 주세요!
train = pd.get_dummies(train)
test = pd.get_dummies(test)
주말에도 이렇게 답해주셔서 정말 고맙습니다~! 아득한 옛날에 컴공이어서 ㅋ 가물가물합니다. ㅋㅋ