해결된 질문
작성
·
214
·
수정됨
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]
판매수 컬럼에 결측치가 있는 행을 제거하라고 할 때,
df = df['판매수'].dropna()
df = df.dropna(subset = '판매수')
1번과 2번의 차이는 무엇인가요? ㅠㅠ
답변 2
2
1번은 데이터프레임 중 '판매수' 컬럼(df['판매수'], Series)에 대해서만 결측치 처리 (결측치를 포함하고 있으면 행 삭제) 후 시리즈 형태로 출력되도록 하는 코드인거 같고,
결과값이 판매수 컬럼만 보임
2번은 전체 데이터프레임(df, DataFrame)에 대해서 '판매수' 컬럼에 결측치가 있는 행은 삭제 처리(subset = '판매수') 후 데이터프레임 형태로 출력되도록 하는 코드인거 같습니다.
결과값이 전체 데이터프레임으로 보임
0
Jason님 답변이 맞습니다.
df = df['판매수'].dropna() 는 잘못된 방식입니다. 전체 df가 아닌 df['판매수']에 대해 결측치를 처리한 결과를 반환합니다. df로 최종 대입된 값은 결측행을 제거한 판매수 컬럼만 있습니다.