Glucose, BloodPressure, SkinTickness, Insulin, BMI는 모두 연속 변수이므로 정상 값의 평균을 사용할 수 있다.
먼저 0을 NaN으로 바꿔서 판다스가 결측값을 인식하게 만든다.
import numpy as np df['Glucose'] = df['Glucose'].replace(0, np.nan) df['BloodPressure'] = df['BloodPressure'].replace(0, np.nan) df['SkinThickness'] = df['SkinThickness'].replace(0, np.nan) df['Insulin'] = df['Insulin'].replace(0, np.nan) df['BMI'] = df['BMI'].replace(0, np.nan)
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-10 각 칼럼이 가진 0의 개수 재확인