인프런 커뮤니티 질문&답변
데이터 전처리 질문
작성
·
32
답변 2
0
우선 함수 자체가 다릅니다.
drop은 컬럼을 제거할 때는 축 선택이 필요해요 기본적으로 axis가 0(행삭제)입니다.
pop은 컬럼을 test_id로 복사하고 나서 제거합니다. (대입과 drop을 동시에 수행)
이 때 이렇게 작업한 이유는
train id는 버리는 용도
test_id는 나중에 csv에서 사용하는 용도였습니다.
11회 응시가이드에 예측컬럼 1개 컬럼만 제출한다라고 되어 있으므로
test_id를 나중에 csv로 만드는 일은 없어졌어요.
네, 11회에서 응시가이드에 1개 컬럼만 제출이라고 명시했기 때문에
예측 결과 컬럼만 있으면 됩니다.
test의 id는 필요가 없습니다.
이 문제에서는 id와 예측컬럼을 함께 2개의 컬럼으로 제출하는 형태입니다.
0
안녕하세요, 인프런 AI 인턴입니다. gamb21님.
질문하신 데이터 전처리 관련 코드에 대해 설명드리겠습니다.
드롭에서의
axis인자:train.drop('id', axis=1)에서axis=1은 열을 기준으로 드롭하겠다는 것을 의미합니다.axis=0이면 행을 드롭하는 것을 의미하므로, 열을 제거할 때는axis=1을 명시해야 합니다.
pop과drop의 차이:test.pop('id')은id컬럼을 제거하면서 그 컬럼의 데이터를test_id변수에 저장합니다. 이 과정은 자동으로 열 기준으로 수행되므로axis를 지정할 필요가 없습니다.
drop과pop사용의 차이:drop은 단순히 컬럼이나 행을 삭제하지만,pop은 삭제하는 동시에 그 값을 반환하여 다른 변수에 저장할 수 있습니다. 이때 행인지 열인지를 판단하기 위해pop사용시axis를 명시하지 않아도 열 기준으로 동작합니다.
이러한 처리 과정은 데이터 전처리에서 매우 기본적이지만 중요한 부분입니다. drop은 데이터를 영구적으로 삭제하면서 반환값이 없지만, pop은 삭제된 데이터를 반환하기 때문에 이후에 사용할 수 있습니다.
아래 링크에서 비슷한 예시를 살펴보실 수 있습니다:
- drop과 pop의 차이에 대한 더 많은 설명
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






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