# 결측치 대체할 데이터프레임 따로 카피
df_fillna = df_na.copy()
# 비행시간, 가격은 중앙값으로 대체
df_fillna['duration'] = df_fillna['duration'].fillna(df_fillna['duration'].median())
df_fillna['price'] = df_fillna['price'].fillna(df_fillna['price'].median())
# 출발까지 남은일수는 평균값으로 대체
df_fillna['days_left'] = df_fillna['days_left'].fillna(df_fillna3['days_left'].mean())
# 결측치 처리 확인
df_fillna.isnull().sum()
3️⃣-2. 결측치 대체 — 범주형 칼럼에서 결측치 대체하기 :: bfill(), ffill()
범주형 데이터 칼럼인 경우, 일반적으로 최빈값 혹은 근처의 값들로 대체합니다. - df.fillna(df.mode().iloc[0]) : 최빈값으로 대체 - df.ffill : 바로 위 행의 값으로 대체 - df.bfill : 바로 아래 행의 값으로 대체
# 범주형 칼럼별 최빈값으로 결측치 대체하기
df_fillna = df_fillna.fillna(df_fillna.mode().iloc[0])
# 이전 인덱스(윗줄)에 있는 값으로 결측치 대체하기
df_fillna = df_fillna.ffill()
# 다음 인덱스(아랫줄)에 있는 값으로 결측치 대체하기
df_fillna = df_fillna.bfill()