답변함

초록책 실전 모의고사 5회-04번

결측치가 존재하는 행을 지우고 처리한 데이터를 pre_df 변수에 저장하시오.

 

이 부분을 풀 때 왜 df.dropna(subset=['칼럼'])을 쓰는지 모르겠습니다. dropna()는 결측치가 존재하는 모든 행을 삭제하는 코드고 subset=['칼럼명']은 특정 칼럼 안에서 결측치가 있는 행을 삭제하는 코드라고 이해했는데, 문제의 어느 부분을 보고 이 둘을 구분해야 하는지 알고 싶습니다.

0

댓글

댓글 3개
날짜 투표수
  • 안녕하세요 질의주셔서 감사합니다.

    말씀 주셨던 부분 중, dropna()는 . 앞에 해당하는 데이터프레임의 결측치가 존재하는 모든 행을 삭제하라는 명령은 맞습니다.

     

    subset 기능은 dropna() 파라미터의 조건을 거는 부분이라고 이해하시면 됩니다.

    dropna() - 지정한 데이터프레임에서 결측치가 존재하는 모든 행을 지워라 

    dropna(subset= A) 결측치가 존재하는 모든 행을 지우는데 subset으로 설정한 컬럼들만 지워라 

    이렇게 이해하시면 됩니다.

    0
  • 넵 설명 감사합니다. 그런데 제가 궁금했던 부분은 저 문장을 보고 subset 조건을 적용 여부를 어떻게 판단하여야 하는지였습니다. 문제를 풀 때 저는 결측치가 존재하는 행을 지우라 길래 당연히 dropna()를 사용해야 한다고 생각했기 때문입니다. ‘모든’이라는 조건이 없어서 그런 건지 혹은 isna().sum()으로 결측치가 있는 columns을 찾은 뒤에 하는 삭제라서 그런 건지 혹은 다른 이유가 있는 건지 궁금합니다 !!

    0
  • 아, 제가 질문의 의도를 처음에 잘못 이해한 것 같습니다.
    문제를 다시 찬찬히 살펴보니, 충분히 오해할 수 있는 지문이라는 생각이 듭니다.

    해당 문제에서는 특정 column을 기준으로 결측치를 제거하라는 조건이나 subset을 사용하라는 지시가 명확하게 주어지지 않았기 때문에, 말씀해 주신 것처럼 결측치가 존재하는 행을 제거한다는 의미로 해석하여 dropna()만 사용하는 것도 정답이 될 수 있습니다.

    0

댓글을 남기려면 로그인하세요.

 

원하는 것을 찾지 못하셨나요?

질문하기