df.isnull() : 각 행/열 별 결측 여부, True(있음)/False(없음)
(+) df.col_name.isnull() : 'col_name' 컬럼의 행별 결측 여부, True(있음)/False(없음)
(+) df[df.col_name.isnull()] : 'col_name' 컬럼에서 결측값을 가진 행 추출
(+) df.isnull().sum() : 각 컬럼 별 결측값이 있는 행의 수
* .isnull()은 .isna()의 별칭으로 같은 기능을 함
[Example]
[1] 결측치를 제외한 인덱스 유지
df=df[df['col_name'].isna()!=True].reset_index(drop=True)
[2] 결측치 인덱스를 제거하고 남은 인덱스 추출
df=df.iloc[df['col_name'].dropna().index].reset_index(drop=True)
df.dropna() OR df.dropna(axis=0) : 결측값이 있는 행 제거, 0 대신 'rows'나 'index' 가능
(+) df.dropna(axis=1) : 결측값이 있는 열 제거, 1 대신 'columns' 가능df.loc[df['col_name'.isna()==True, 'ohe'] = 1 # df의 'col_name'열에 결측값이 있을 경우, # 'ohe'열을 1로 채운다. df.loc[df['col_name'.isna()==False, 'ohe'] = 0 # df의 'col_name'열에 결측값이 없을 경우, # 'ohe'열을 0으로 채운다.
df.fillna() : 결측값 채우기
(+) df.fillna(특정값) : 결측값을 특정값으로 채우기 // 문자열은 ''로, inplace() 등 옵션 추가 가능
(+) df.fillna(method='ffill') OR df.fillna(method='pad') : 결측값을 결측값 앞 행의 값으로 채우기
(+) df.fillna(method='bfill') OR df.fillna(method='backfill') : 결측값을 결측값 뒷 행의 값으로 채우기
(+) df.fillna(df.mena()) : 결측값을 각 열의 평균값으로 채우기
df.notna() : innull()/isna() 반대