df_obj.dropna(axis=0, inplace=True)
df_obj.dropna(axis=1, inplace=True)
df_obj['columns'].fillna(df_obj[’columns’].mean())
df_obj['columns'].fillna(df_obj[’columns’].mode()[0])
df_obj['columns'].fillna(df_obj[’columns’].median())
df_obj['columns'].fillna(*method='ffill'*)
: 시간상 앞에 있는 값을 대입df_obj['columns'].fillna(*method='bfill'*)
: 시간상 뒤에 있는 값을 대입df_obj['columns'].interpolate()
: 선형 보간법을 통한 대입.
method
: linear(선형 보간), time(df의 index가 시간일 때 시간 기준 선형 보간), polynomial(곡선 형태로 보간, order
옵션 필요), spline(spline curve 보간, order
필요), nearest(가장 가까운 값으로 대체)order
: 다항식의 차수를 설정. 2 → quadratic, 3 → cubic구체적인 결측값 대체 방법은 구현하기 나름.
KNNImputer
: K-Nearest Neighbors 알고리즘을 기반으로 유사한 행을 찾아 결측치를 대체
from sklearn.impute import KNNImputer
import pandas as pd
df = pd.read_csv("")
imputer = KNNImputer(n_neighbors=2) # 가까운 2개 이웃 데이터의 평균으로 대체
df_filled = pd.DataFrame(imputer.fit_transform(df), columns=df.columns)