결측값 처리
import pandas as pd
import numpy as np
df = pd.DataFrame({'a' : [1, 1, 3, 4, 5], 'b' : [2, 3, np.nan, 3, 4], 'c' : [3, 4, 7, 6, 4]})
df
1. isnull()
- isnull() : 결측값 유무 확인
df.isnull()
- isnull().sum() : 결측값 개수 확인
- isnull값이 null값이면 True, null값이 아니라면 False를 출력
df.isnull().sum()
a 0
b 1
c 0
dtype: int64
2. dropna()
- dropna() : 결측값이 포함된 행 지우기
df.dropna()
df
df.dropna(inplace = True)
df
- dropna(axis=1) : 결측값이 포함된 열 지우기
df = pd.DataFrame({'a' : [1, 1, 3, 4, 5], 'b' : [2, 3, np.nan, 3, 4], 'c' : [3, 4, 7, 6, 4]})
df.dropna(axis=1)
df
df.dropna(axis=1, inplace = True)
df
3. fillna()
- fillna() : 결측값을 다른 값으로 대체, 결측값 채우기
df = pd.DataFrame({'a' : [1, 1, 3, 4, 5], 'b' : [2, 3, np.nan, 3, 4], 'c' : [3, 4, 7, 6, 4]})
df
#결측값을 특정 값으로 채우기
df.fillna(0, inplace=True)
df
- 앞이나 뒤의 숫자로 바꾸기
df = pd.DataFrame({'a' : [1, 1, 3, 4, np.nan], 'b' : [2, 3, np.nan, np.nan, 4], 'c' : [np.nan, 4, 1, 1, 4]})
df
- df.fillna(method='bfill') or df.fillna(method='backfill') : 결측값을 결측값의 뒷 행의 값으로 채우기
df.fillna(method='bfill')
df
- df.fillna(method='ffill') or df.fillna(method='pad') : 결측값을 결측값의 앞 행의 값으로 채우기
df.fillna(method='ffill')
- fillna(method='ffill', limit=number), fillna(method='bfill', limit=number) : 앞/뒤 방향으로 결측값 채우는 횟수 제한하기
df.fillna(method='ffill', limit =1)
-문제 : 데이터 프레임에 존재하는 결측값들을 뒤의 값으로 대체한 이후 앞의 값으로 대체하기
df = pd.DataFrame({'a' : [1, 1, 3, 4, np.nan], 'b' : [2, 3, np.nan, np.nan, 4], 'c' : [np.nan, 4, 1, 1, 4]})
df
df.fillna(method='bfill', inplace=True)
df
df.fillna(method='ffill',inplace=True)
df
- fillna(df.mean()) : 결측값을 각 열의 평균 값으로 채우기
df = pd.DataFrame({'a' : [1, 1, 3, 4, np.nan], 'b' : [2, 3, np.nan, np.nan, 4], 'c' : [np.nan, 4, 1, 1, 4]})
df
df.mean()['a']
2.25
df.fillna(df.mean()['a'])
df.mean()
a 2.25
b 3.00
c 2.50
dtype: float64
df.fillna(df.mean())
df
-문제 : b, c의 결측값들을 데이터 프레임의 전체 값의 평균으로 치환하기
df.fillna(df.mean()[['b', 'c']])
'study📚 > python' 카테고리의 다른 글
[python/파이썬] 데이터 전처리 - 레코드, 칼럼 추가 / 삭제 (0) | 2022.07.26 |
---|---|
[python/파이썬] 데이터 전처리 - 타입 변환 dtype, astype(), to_datetime() (0) | 2022.07.26 |
[python/파이썬] 데이터 전처리 - 정렬 sort_index(), sort_values() (0) | 2022.07.25 |
[python/파이썬] 데이터 전처리 - 조건에 맞는 데이터 추출 (0) | 2022.07.23 |
[python/파이썬] 데이터 전처리 - loc와 iloc를 이용한 데이터 추출 (0) | 2022.07.23 |
댓글