인프런 커뮤니티 질문&답변

onlykaggle님의 프로필 이미지
onlykaggle

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

3회 기출유형(작업형2)

3회 기출유형(작업형2) 수치형 데이터와 범주형 데이터 분리 관련 질문입니다.

해결된 질문

작성

·

414

0

안녕하세요~ 선생님~

드디어 강의를 다 듣고 시험 준비를 하기 위해 기출문제와 강의 내용을 다시 한 번 반복하고 있습니다.

그러던 중에 3회 기출유형(작업형2)에서 수치형 데이터와 범주형 데이터 분리를 위해 select_dtypes() 요 메소드를 쓰고 나서 다시 copy()를 하는 것에 대해 궁금해서 여쭙게 되었습니다.

copy() 메소드를 더 붙이는 데에는 이유가 있을까요?

강의를 듣고 코드들을 숙지하면서 준비하니까 정말 강의 선택 잘 했다는 확인이 듭니다. 물론 붙는 건 또 별개의 문제겠지만… 아마 또 질문을 드리겠지만, 강의 정말 잘 들었다는 말씀 드립니다. ㅎ

답변 1

1

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

copy()를 작성하는 이유는 사본이라는 것을 분명하게 하기 위함이에요!!
작성하지 않아도 작동되다가 갑자기
SettingWithCopyWarning라는 워닝이 발생하기도 합니다.

일반적으로 워닝은 무시하나 시험환경은 실행이 중단되었습니다라는 멘트가 떠서
안전하게 워닝을 발생하는 것을 막는 것이 중요할 것 같아요

따라서 데이터프레임을 새 변수에 복사하거나 슬라이싱 등을 할 때는 뒤에 copy()를 붙여서 사본임을 알려주세요!! ( 혹시 컴공이라면...추가적으로 값에 의한 참조와 주소의 의한 참조랑 비슷합니다. )


그리고 데이터 분리 없이 아래와 같이 작성해요 자동으로 object컬럼만 원핫 인코딩하니 참고해 주세요!

train = pd.get_dummies(train)
test = pd.get_dummies(test)
onlykaggle님의 프로필 이미지
onlykaggle
질문자

주말에도 이렇게 답해주셔서 정말 고맙습니다~! 아득한 옛날에 컴공이어서 ㅋ 가물가물합니다. ㅋㅋ

onlykaggle님의 프로필 이미지
onlykaggle

작성한 질문수

질문하기