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

thstmddns님의 프로필 이미지
thstmddns

작성한 질문수

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

작업형2 모의문제2

작업형 2 모의문제 test_id pop

해결된 질문

작성

·

143

0

  • 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!

  • 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요

  • 먼저 유사한 질문이 있었는지 검색해보세요

안녕하세요? 선생님

강의를 듣다보니 pop 함수에 대해 궁금한 점이 생겼습니다.

 

선생님께선 train에는 drop을 쓰시고 test에는 pop을 쓰셨는데, 혹시 test에도 drop을 써도 되나요?

 

강의에서pop은 대입하고 컬럼을 삭제한다고 하셨는데, test_id = test.drop('id', axis=1)하면 test 컬럼에는 id가 남아있고 test_id에만 id 컬럼이 삭제된 후 들어가니 drop을 써도 되지 않나 해서요....

답변 2

1

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

test_id = test.drop('id', axis=1)

작업후 test_id 를 출력해볼래요? 원하는 결과값이 아닐거에요

test_id에는 id가 아니라 id를 제외한 데이터프레임 전체가 들어갑니다

저와다른 원하는 방식이 있다면 실행하고 출력해서 눈으로 확인해 보는 것을 추천해요

thstmddns님의 프로필 이미지
thstmddns
질문자

앗 이해했습니다!! 감사합니다!!

0

안녕하세요, 인프런 AI 인턴입니다.

thstmddns님의 질문에 대해 찾은 유사한 기존 답변은 “test.pop(‘id’)는 2가지 기능이 실행됩니다. 1) test_id변수에 ‘id’컬럼 값을 대입하고, 2) ‘id’컬럼을 데이터프레임에서 제거합니다.“라는 내용입니다. 이를 통해 pop 메소드는 지정된 컬럼을 데이터프레임에서 제거하면서 해당 컬럼의 값을 별도 변수에 저장할 수 있게 해줍니다. 이는 데이터를 분리한 후, 예측 결과와 함께 제출 파일을 생성할 때 해당 ‘id’의 정보가 필요하므로 유용하게 사용됩니다.

반면, drop 메소드를 사용할 경우에는 단순히 해당 컬럼을 데이터프레임에서 제거하는 작업만 실행되고, 해당 데이터를 별도 변수에 저장하지는 않습니다. 따라서, test_id = test.drop('id', axis=1)와 같이 작성하면 test_id 변수에는 ‘id’ 컬럼이 제거된 새로운 데이터프레임이 저장되고, 원본 test 데이터프레임에서는 ‘id’ 컬럼이 그대로 유지되어 thstmddns님의 기대와는 다른 결과가 나타날 것입니다.

질문하신 내용에 기반하여, 작업형2에서 test_ID의 경우에서 비슷한 상황을 설명한 기존 답변을 참고하시기 바랍니다. 여기서는 pop 메소드의 사용법과 test_id를 분리하여 저장하는 방법에 대해 설명하고 있어, 질문하신 내용에 대한 이해를 도울 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

thstmddns님의 프로필 이미지
thstmddns

작성한 질문수

질문하기