이유야 어떻든 이 0 값을 처리해야 한다. 각 칼럼에 0이 몇 개 있는지 세어 보자.
print("Number of rows with 0 values for each variable") for col in df.columns: missing_rows = df.loc[df[col]==0].shape[0] print(col + ": " + str(missing_rows))
▲ 그림 2-9 각 칼럼이 가진 0의 개수
Insulin 칼럼에 0이 무려 374개나 있다. 이 정도면 데이터셋의 거의 절반이다. Insulin 값이 0인 로우를 버리면 모델 성능이 크게 나빠질 것이다.
결측값은 다음 몇 가지 방법으로 처리할 수 있다.
• 결측값이 있는 로우를 제거한다(즉, 버린다).
• 결측되지 않은 정상 값의 평균, 중앙값, 또는 최빈값으로 결측값을 대신한다.
• 별도 머신 러닝 모델을 사용해 결측값을 예측한다.