[data science] 결측값(NaN) 처리

덴장·2026년 4월 22일

data

목록 보기
34/55

결측값을 처리하는 방법에는 삭제와 대체 두 가지가 있으며, 각각의 방법에 따라 데이터의 분석 가능성과 정확도가 영향을 받을 수 있다.

  1. 결측값 삭제
    결측값이 많지 않거나 특정 컬럼이나 row의 값들이 대부분 결측값일 때 사용.
    간단하지만, 데이터 양이 줄어드는 단점이 있음.
    pandas의 dropna() 함수를 사용하여 결측값 삭제.
    데이터프레임의 행 수가 줄어드는 것을 확인.
airbnb_df = airbnb_df.dropna() // 결측값 삭제

  1. 결측값 대체
    결측값을 다른 값으로 채워주는 방법으로, 데이터의 경향을 반영.
    숫자 데이터는 주로 평균이나 중간값, 범주형 데이터는 최빈값을 사용.
    mean() 함수를 사용하여 결측값을 평균값으로 대체.
    fillna() 함수로 결측값을 평균값으로 채우는 방법 설명.
  rating_mean = airbnb_df['rating'].mean() // 평균
  airbnb_df['rating'] = airbnb_df['rating'].fillna(rating_mean) // 평균값으로 대체

  1. 결측값 확인
    isna()와 sum() 함수를 사용하여 결측값이 모두 처리되었는지 확인하는 방법 제시.
  airbnb_df.isna().sum()

*예제
무게컬럼의 결측값을 채우고 2021년도 생상품만 출력. 한가지 모델만 누락되어 있고 용량과 색상 상관없이 무게 동일.

import pandas as pd

cellphone_df = pd.read_csv('data/cellphone.csv')

#cellphone_df.isna()
#cellphone_df[cellphone_df.isna().any(axis=1)] 
#cellphone_df[['weight'].isna().any(axis=1)]

cellphone_df['weight'] = cellphone_df['weight'].fillna(173)
cellphone_df[cellphone_df['year'] == 2021]
profile
개발자

0개의 댓글