1. 결측치 확인
np.random.rand()로 0~1 사이 랜덤한 data를 만들고 임의로 결측치를 만들었다.
import pandas as pd
import numpy as np
#np.random.rand(m, n) : 0~1 사이 난수 생성
data = pd.DataFrame(np.random.rand(7, 3), columns=['A', 'B', 'C'])
data
#결측치 만들기
data.iloc[0, 0] = np.nan
data.iloc[1, 0] = np.nan
data.iloc[2, 2] = np.nan
data.iloc[3, 4] = np.nan
data.iloc[4, 3] = np.nan
data.iloc[5, 1] = np.nan
data.iloc[5, 2] = np.nan
data
data.isnull().sum()으로 컬럼 별 결측치가 몇 개 있는지 확인 가능하다.
#결측치 확인
data.isnull().sum()
>
msno 라이브러리로 결측치를 시각화 할 수 있다.
지금은 데이터가 크지 않아 필요없지만, 데이터 사이즈가 클 때는 결측치를 한 눈에 확인할 수 있어 유용하게 사
import missingno as msno
msno.matrix(df = data.iloc[:, :], figsize=(8, 8));
2. 특정 값으로 결측치 처리
data.fillna(0)로 결측값을 0으로 채운다.
#특정 값으로 채우기
data_0 = data.fillna(0)
data_0
2. 평균 값으로 결측치 처리
data.mean()
data.fillna(data.mean())
>
A 0.256064
B 0.538347
C 0.319626
dtype: float64
3. 최빈값으로 결측치 처리
#최빈값 처리를 위해 'A'컬럼에 동일한 값 0.456805가 있는 row를 새로 만들었다.
data.loc[7] = {'A': 0.456805 , 'B': 0.123142 , 'C': 0.034920, 'D' : 0.54354, 'E' : 0.222441}
#최빈값 처리
most_A = data['A'].value_counts(dropna = True).idxmax()
data['A'].fillna(most_A, inplace = True)
data
'Data Science > Python' 카테고리의 다른 글
지수 표기 숫자로 변환하여 표현하기 (0) | 2021.02.23 |
---|---|
Python으로 하는 EDA(Exploratory Data Analysis) (0) | 2021.01.31 |
python으로 카이제곱 검정 (0) | 2021.01.06 |
Python으로 T-test (0) | 2021.01.05 |
matplotlib - bar chart (0) | 2021.01.05 |