[pandas] 결측치 다루기
결측치 다루기
Data에서 결측치를 Pandas에서는
NaN으로 표현하고pandas.nan값으로 입력할 수있다.결측치를 포함하는 data를 다룰때 값을 삭제하거나 대체해서 사용해야 한다. 이를 위해 필요한
function들에 대해서 알아본다.
1. dropna
dropna라는 method를 사용해서NaN값을 포함한 data를 삭제한다.option으로는
how(any/all),inplace(원본 삭제),index가 입력된다.
np.random.seed(2)
df =pd.DataFrame(np.random.randint(0,10,(6,4)))
df.columns = ['A','B','C','D']
df.index = pd.date_range('20200101',periods=6)
df['E'] = [7, np.nan, 4, np.nan, 2, np.nan]
display(df)

how='any': row에 하나라도NaN값이 있으면 삭제한다.
display(df.dropna(how='any', inplace=False))

how='all': row에 모든 값이NaN값이면 삭제한다.
display(df.dropna(how='all', inplace= False))

axis = 1

2. fillna
결측치를 다른값으로 대체하는 방법이다.

nwe_df = df.fillna(value=0)

nwe_df = df.fillna(value=10)

3. replace
fillna와 다르게 원하는값 모두를 다른값 바꿔줄 수 있다.

result = df.replace(np.nan,-100)
display(result)

4. 결측치행 추출하기 또는 제외하기
isnull과notnull을 사용해 boolean mask를 만든 후NaN이 있는 행과NaN이 없는 행 각각 추출가능하다.
isnull

my_mask = df['E'].isnull()
display(df.loc[my_mask,:])

notnull
my_mask = df['E'].notnull()
display(df.loc[my_mask,:])
