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

lovelove567님의 프로필 이미지

작성한 질문수

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

기출(작업형2) 한 가지 방법으로 풀기 🆕 updated 2024.6

drop, pop ,, 알려주세요

해결된 질문

작성

·

204

0

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

 

왜 이전 회차에는 drop을 통해 빼줬는데,,,

 

왜 이후에는 pop만 해주나요??

답변 5

1

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

완전 이해했어요~!! 감사합니다,,

이제 질문 안남기고 싶어요,, 모르는게 없는 제 자신이 되고 싶아요,,

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

응원합니다👍👍👍

1

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

이제,,, 이해했어요!!!!!

근데,,, train 데이터안에 있는 id값은 왜 없애주는 건가요? 만약 살리면 안되나요??

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

행의 수 만큼 모두 다른 값인 id라면 일반적으로는 삭제해요

그렇지만 그냥 둬도 모델에서 중요도를 낮게 책정합니다

 

다만 id가 문자면 제거가 필요합니다

1

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

그럼 앞에서는 왜 굳이 drop을 쓴건가요??

pop함수는 이해 했는데,,,

굳이 앞에서 drop을 하고 뒤에 또 pop을 한 이유가 있나 싶어서요,, pop만 하면 되는데,,

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

drop과 pop은 둘 다 특정 행이나 열을 제거하는 데 사용되지만, 사용하는 목적이나 상황에 따라 차이가 있어요~

다시 쓸 일이 없는 컬럼은 drop을 사용하고, 여러 컬럼을 한 번에 삭제할 수도 있습니다.

다시 쓸 일이 있는 컬럼은 pop으로 별도로 변수에 저장하고, 제거하고 있어요

 

예를들어, 문제에서 csv생성할 때 id가 필요하면 살려둬야 하고 필요하지 않으면 제거할 수도 있고, 전처리 없이 그냥 살려둘 수도 있어요~

상황에 맞게 사용해주시면됩니다.

train = train.drop('CLIENTNUM', axis=1) -> 제거

test_id = test.pop('CLIENTNUM') -> 추후 csv에서 사용하기 위해 test_id에 저장해 뒀어요~

 

이해되지 않는다고 표현해 주셨으면 똑같이 답변하진 않았을거에요🥲

남은 기간 잘 준비하셨으면 좋겠습니다.💪💪💪

1

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

비슷한 질문을 3번째하고 계시네요. 혹시 어떤 점에서 이해가 되지않아 계속 문의하고 있을까요?

drop(), pop() 등 데이터를 다루는 여러가지 방법이 있어요!

1

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

한 가지 방법으로 풀이는 매우 간단한 통일된 방법을 취하고 있습니다.

 

pop()은

  1. = 대입

  2. drop()

두 기능을 합쳤어요

따라서

t = train.pop('target) 이라면

  1. t변수에 대입

  2. 그리고 나서 target컬럼을 삭제 합니다.

    타겟값을 보존하면서 train에서는 제외하기 위함이에요