결측치 대체
1. (결측치 -> 평균값)
df.X1 = df.X1.fillna(df.X1.mean()) # NaN을 평균값으로 대체
2. (결측치 -> 최빈값, 평균값)
df.fillna({'X1':df['X1'].mode()[0],
'X2':int(df['X2'].mean())}, inplace=True) # X1은 최빈값, X2는 평균값으로 대체
3. (결측치 -> 정수)
df['X1'] = df['X1'].fillna(3) # 결측값을 3으로 대체
4. (결측치 -> 0)
df = df.replace(np.NaN, 0)
+ 추가
1. ( 값 -> 결측치)
df.iloc[3, 3] = np.nan # 3행3열을 결측값으로 교체 # iloc = index location(인덱스 위치)
2. (문자 -> 값)
df.replace(['good', 'bad'], [0, 1])
실습 코드
import pandas as pd
import numpy as np
df = pd.DataFrame({ 'X1': [np.nan, 1, 1, 4],
'X2': [5, 7, np.nan, 9],
'X3': [np.nan, 10, np.nan, 12]})
df
# 1. (결측치 -> 평균값)
df.X1 = df.X1.fillna(df.X1.mean()) # NaN을 평균값으로 대체
# 2. (결측치 -> 최빈값, 평균값)
df.fillna({'X1':df['X1'].mode()[0],
'X2':int(df['X2'].mean())}, inplace=True) # X1은 최빈값, X2는 평균값으로 대체
#3. (결측치 -> 정수)
df['X1'] = df['X1'].fillna(3) # 결측값을 3으로 대체
# 4. (결측치 -> 0)
df = df.replace(np.NaN, 0)
실습 결과


실습 파일
'<Python> > [DataFrame]' 카테고리의 다른 글
| 파이썬 Pandas DataFrame 열 제거 (0) | 2021.12.18 |
|---|---|
| 파이썬 Pandas DataFrame 일부 행 제거 (0) | 2021.12.18 |
| 파이썬 Pandas DataFrame 결측치 행 제거 (0) | 2021.12.18 |
| 파이썬 Pandas DataFrame 결측치 확인 (0) | 2021.12.18 |
| 파이썬 Pandas DataFrame (0) | 2021.12.03 |