강의

멘토링

커뮤니티

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

gamb21님의 프로필 이미지
gamb21

작성한 질문수

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

작업형2 모의문제3

데이터 전처리 질문

작성

·

32

0

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

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

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

안녕하세요

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

왜 트레인은 axis를 넣는데
테스트아이디는 저걸 넣지 않을껄까요

답변 2

0

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

우선 함수 자체가 다릅니다.

drop은 컬럼을 제거할 때는 축 선택이 필요해요 기본적으로 axis가 0(행삭제)입니다.

pop은 컬럼을 test_id로 복사하고 나서 제거합니다. (대입과 drop을 동시에 수행)

 

이 때 이렇게 작업한 이유는

train id는 버리는 용도

test_id는 나중에 csv에서 사용하는 용도였습니다.

 

11회 응시가이드에 예측컬럼 1개 컬럼만 제출한다라고 되어 있으므로
test_id를 나중에 csv로 만드는 일은 없어졌어요.

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

선생님! 11회에 예측칼럼 1개 컬럼만 제출한다는 말씀이 이해가 안되는데 그러면 testid에 pop하는 과정이 이제 필요없다는건가요?

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

네, 11회에서 응시가이드에 1개 컬럼만 제출이라고 명시했기 때문에

예측 결과 컬럼만 있으면 됩니다.

test의 id는 필요가 없습니다.

이 문제에서는 id와 예측컬럼을 함께 2개의 컬럼으로 제출하는 형태입니다.

0

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

질문하신 데이터 전처리 관련 코드에 대해 설명드리겠습니다.

  1. 드롭에서의 axis 인자:

    • train.drop('id', axis=1)에서 axis=1은 열을 기준으로 드롭하겠다는 것을 의미합니다. axis=0이면 행을 드롭하는 것을 의미하므로, 열을 제거할 때는 axis=1을 명시해야 합니다.
  2. popdrop의 차이:

    • test.pop('id')id 컬럼을 제거하면서 그 컬럼의 데이터를 test_id 변수에 저장합니다. 이 과정은 자동으로 열 기준으로 수행되므로 axis를 지정할 필요가 없습니다.
  3. droppop 사용의 차이:

    • drop은 단순히 컬럼이나 행을 삭제하지만, pop은 삭제하는 동시에 그 값을 반환하여 다른 변수에 저장할 수 있습니다. 이때 행인지 열인지를 판단하기 위해 pop 사용시 axis를 명시하지 않아도 열 기준으로 동작합니다.

이러한 처리 과정은 데이터 전처리에서 매우 기본적이지만 중요한 부분입니다. drop은 데이터를 영구적으로 삭제하면서 반환값이 없지만, pop은 삭제된 데이터를 반환하기 때문에 이후에 사용할 수 있습니다.

아래 링크에서 비슷한 예시를 살펴보실 수 있습니다:
- drop과 pop의 차이에 대한 더 많은 설명

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

gamb21님의 프로필 이미지
gamb21

작성한 질문수

질문하기