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

빅분기님의 프로필 이미지

작성한 질문수

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

3회 기출유형(작업형1)

결측치가 있는 행을 제거할 때

해결된 질문

23.11.25 16:41 작성

·

209

·

수정됨

0

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

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

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

     

df = pd.DataFrame({ '날짜': ['20220103', '20220105', None, '20230127', '20220203', '20220205', '20230210', '20230223', '20230312', '20230422', '20', '23'], '제품': ['A', 'B', None, 'B', 'A', None, 'A', 'B', 'A', 'B', 'A', 'A'], '판매수': [3, None, 5, 10, 10, 10, 15, 15, 20, None, 30, 40], '개당수익': [300, 400, 500, 600, 400, 500, 500, 600, 600, 700, 600, 600]

 

판매수 컬럼에 결측치가 있는 행을 제거하라고 할 때,

 

  1. df = df['판매수'].dropna()

  2. df = df.dropna(subset = '판매수')

1번과 2번의 차이는 무엇인가요? ㅠㅠ

답변 2

2

Jason님의 프로필 이미지

2023. 11. 25. 17:35

1번은 데이터프레임 중 '판매수' 컬럼(df['판매수'], Series)에 대해서만 결측치 처리 (결측치를 포함하고 있으면 행 삭제) 후 시리즈 형태로 출력되도록 하는 코드인거 같고,

  • 결과값이 판매수 컬럼만 보임

 

2번은 전체 데이터프레임(df, DataFrame)에 대해서 '판매수' 컬럼에 결측치가 있는 행은 삭제 처리(subset = '판매수') 후 데이터프레임 형태로 출력되도록 하는 코드인거 같습니다.

  • 결과값이 전체 데이터프레임으로 보임

0

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

2023. 11. 25. 23:24

Jason님 답변이 맞습니다.

  1. df = df['판매수'].dropna() 는 잘못된 방식입니다. 전체 df가 아닌 df['판매수']에 대해 결측치를 처리한 결과를 반환합니다. df로 최종 대입된 값은 결측행을 제거한 판매수 컬럼만 있습니다.