강의

멘토링

커뮤니티

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

pseoin0907님의 프로필 이미지
pseoin0907

작성한 질문수

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

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

test_id

해결된 질문

작성

·

16

0

test_id = test.pop('id')

이렇게 따로 빼두는 이유가 저장할때 id컬럼을 생성하기 위해서라면,

굳이 pop함수로 빼지 않고 저장할때 직접적으로

pd.DataFarme({'id':test['id'], 'y_pred':pred}) 이렇게 test['id']로 적으면 안되는 걸까요?

 

답변 2

0

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

train에서 id를 삭제하지 않았다면 위 코드대로 작성하면 됩니다!

train과 test에서 함께 삭제하거나, 함께 사용만 해주면 됩니다.

 

다만 문자라면 옮겨 두는 것이 편합니다. (인코딩 되지 않도록)

0

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

질문해주신 pandas의 pop() 함수와 데이터프레임 생성 방식에 대한 궁금증에 대해 설명드리겠습니다.

  1. pop() 함수의 역할: test_id = test.pop('id')라는 코드는 test 데이터프레임에서 ‘id’ 열을 제거하고, 제거된 ‘id’ 값들을 test_id라는 변수로 저장하는 기능을 합니다. 이 과정은 데이터프레임에서 id 열을 제거하여 학습이나 예측에 불필요한 열을 사전에 정리할 수 있게 하고, 나중에 예측 결과를 반환할 때 사용할 수 있도록 ‘id’ 값을 따로 관리할 수 있게 합니다.

  2. 데이터프레임 생성 방법: pd.DataFrame({'id': test['id'], 'y_pred': pred})와 같이 직접적으로 test['id']를 사용하시는 것도 가능합니다. 다만, 이 방법을 사용할 경우 데이터프레임 내에 ‘id’ 열이 여전히 존재한다면, 추가적인 저장이나 수정 없이 바로 사용할 수 있습니다. 하지만 pop()을 이용하면 ‘id’ 열이 제거된 상태에서 작업을 진행하다가, 필요할 때 ‘id’ 값을 다시 활용할 수 있습니다. 이는 ‘id’ 열이 예측에 포함되길 원하지 않으면서도 결과에 포함시키고 싶을 때 유용합니다.

유사한 토픽의 게시글들을 참고하시면 더 많은 정보를 얻으실 수 있습니다:

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

pseoin0907님의 프로필 이미지
pseoin0907

작성한 질문수

질문하기