인프런 커뮤니티 질문&답변
작업형2 pop 함수 사용 환경
해결된 질문
작성
·
35
0
안녕하세요. 공부하던 중에 궁금한 게 있어서 글 남깁니다!
작업형2 모의 문제를 풀 때랑 기출 10회 풀 때 사용하는 pop함수가 헷갈리는 게 있어 여쭤봅니다.
모의 문제에서는, 예를 들어 5-2에서는 csv 파일 생성 예시가 다음과 같아서 id는 train에서 삭제, test에서는 pop으로 저장해두고 타겟인 price는 검증 데이터 분리 과정에서 삭제하는 것으로 알고 있습니다.
id,price
34323697,238
29927138,183
120362,234그런데 기출 10회 풀이를 보면 타겟인 pred(=총가스사용량)에 대하여 pop 함수를 사용하는 것으로 나오는데요. 타겟 값을 pop에 넣는 경우도 있고 안 넣는 경우도 있는 거 같아서 해야만 하는 과정인지 궁금합니다.
혹시 pop을 쓰면 랜덤포레스트 식에서 drop을 안 해줘도 되고, 안 쓰면 drop을 해줘야 하는 거랑 관련된 걸까요?
target = train.pop('총가스사용량')답변 2
0
target = train.pop('총가스사용량')이렇게 하면
1. target 변수에 '총가스사용량' 컬럼이 저장됨
2. train 데이터프레임에서 '총가스사용량' 컬럼이 삭제됨
이 pop()함수의 기능입니다.
모델에 따라 달리 사용하는 것은 아니고 풀이 방식의 차이 때문이고
작업형2 모의 문제에서는 ids는 모두 유니크 해서 삭제하는데
문제에서 csv제출할 때 test id컬럼이 필요했기 때문에 다른 변수에 옮겨 담아 살려줬습니다.
11회 때는 test id를 사용하지 않고 예측 컬럼 1개(pred)만 제출 하는 것으로 나와 있으니
삭제 한다면 함께 삭제 하거나 살려준다면 함께 살려주면 됩니다.
타겟인 price는 검증 데이터 분리 과정에서 삭제
기출 풀이가 똑같은 방식으로 풀이하지 않았어요! 가능하면 다양한 방식으로 보여드릴려고 했는데
시험을 앞두고는 혼란이 있네요
88. 기출(작업형2) 한 가지 방법으로 풀기
로 학습해주세요 🙂
전처리할 때 처음에 target = train.pop('총가스사용량')을 하는 것으로 통일 시켰습니다.
얼마남지 않은 시험 잘 준비해 주세요 🙂
0
안녕하세요, 인프런 AI 인턴입니다. s93610님.
질문하신 Pop 함수와 관련하여 혼란스러운 점을 정리해 드리겠습니다.
pop() 함수는 Pandas 데이터프레임에서 특정 열을 떼어내고, 그 열을 별도의 변수로 저장하는 동시에 원래 데이터프레임에서 해당 열을 제거하는 기능을 합니다. 이를 통해 데이터 전처리를 할 때, 독립 변수와 종속 변수를 분리하여 관리할 수 있게 됩니다.
pop() 메소드의 활용
독립 변수와 종속 변수 분리: 머신러닝에서 모델을 훈련할 때는 독립 변수(입력 데이터)와 종속 변수(타겟 데이터)를 분리해야 합니다.
target = train.pop('총가스사용량')와 같은 코드에서는 ‘총가스사용량’ 열을 추출하여target변수에 저장하고, 원본 데이터프레임에서 해당 열을 제거합니다. 이는 종속 변수를 별도로 보관하여 관리하기 위한 과정입니다.데이터프레임에서 특정 열 제거:
drop()과pop()의 차이점은drop()은 단순히 데이터프레임에서 열을 제거하지만,pop()은 열을 제거하면서 그 데이터를 별도 변수에 저장합니다.
적용 상황
CSV 파일 생성 및 제안 데이터: 종종 데이터의 ID나 특정 키 값은 최종 출력 파일이나 제출 파일에서 필요하므로, test 데이터셋에서는
pop()을 통해 따로 보관해두기도 합니다.타겟 변수: 타겟 변수가 필요할 경우 이를
pop()으로 추출하여 모델 훈련 시 사용하고, 불필요할 경우drop()을 통해 간단하게 제거할 수 있습니다.
관련한 유사 질문
비슷한 맥락에서 더 깊이 이해하시려면 이 게시물을 참고하시면 좋습니다. 여기에 Pandas의 drop() 및 pop() 사용법에 대해 여러 상황에서의 예시와 설명이 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






모의 문제 5-2에서는 타겟 값인 price를 pop으로 두지 않고 검증 데이터 분리 시, 다음과 같이 작성하던데, pop을 쓴 후 그냥 train.drop이 아닌 train으로 쓰던지, pop을 쓰지 않고 drop 과정을 통해 제거하던지 둘 중 하나를 선택해주면 되는 건지 궁금합니다!