본문 바로가기
데이터 분석/파이썬 (Python)

[파이썬] 데이터 결측치 처리 (fillna, dropna 메서드)

by thomasito 2021. 8. 1.
반응형

 데이터 분석과정에서 결측치는 항상 존재한다. 결측치는 처리하는 방법은 결측치 자리에 특정값을 채우거나, 또는 결측치를 제거하는 것이다. 결측치를 그냥 제거해도 되지 않나라고 생각할 수도 있지만 실제로 결측치가 의미있는 데이터인 경우 데이터 전처리 과정에서 성격이 왜곡될 수 있다.

 

1. dropna 메서드

데이터프레임.dropna(how='all')

- 디폴트값 : NA가 하나라도 있는 로우는 삭제

- how = 'all'  옵션 : 모든 컬럼이 NA인 로우만 제외시킴) 

import numpy as np
import pandas as pd

data = pd.DataFrame([[1., 6.5, 3.],[1.,NA,NA],[NA,NA,NA],[NA,6.5,3.]])
data

  NA 결측치를 채운 임의의 데이터 프레임을 만들어 준다. data.dropna() 와 data.dropna(how='all')의 차이를 살펴보자.

data.dropna()

 

data.dropna(how='all')

2. fillna 메서드

데이터프레임.fillna(method=ffill, axis=0, inplace=True)

- method :  디폴트는 ffill 이며 앞데이터로 채운다. bfill은 뒤데이터로 채운다. 쉽게 말해 1/2 데이터를 채우는 경우 ffill은 1/1 데이터로 채우고 bfill은 1/3 데이터로 채우는 것이다.

- axis : 디폴트는 0 이다.

- inplace : 디폴트는 False 이며, inplace = True 인 경우 복사본을 생성하지 않고 호출한 객체를 바로 변경한다. 

 

df = pd.DataFrame(np.random.randn(6,3))
# 6 X 3 데이터프레임에 아무 숫자나 채운다.

df.iloc[2:, 1] = NA
df.iloc[4:, 2] = NA
# 임의의 NA(결측치)를 채워준다.

df

df.fillna(method='ffill')
# 앞 데이터로 결측치를 채워준다.

df.fillna(df.mean())
# 평균값으로 채워주는 방법도 있다.

 결측치는 때로 우리에게 유의미한 데이터이므로, dropna/fillna 메서드는 유용한 전처리 메서드가 될 수 있다.

반응형

댓글