본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Playdata_study/Python

210722_NaN (누락데이터)

by 케리's 2021. 7. 23.

DataFrame - 누락데이터 처리하기

 

데이터 분석시 제공된 데이터를 살펴보면 값이 입력되어 있지 않은 경우가 종종 있다.
이런 경우를 Missing Value 가 있다고 표현한다.

 

 

 

 

✔ Missing Value를 처리하는 대표적인 전략 

 

  • 데이터가 거의 없는 Feature는 Feature 자체를 Drop 시킨다.
  • 데이터가 없으면 바로 Drop
  • Missing Value의 최소 갯수를 정해서 어느 이상 갯수를 넘어서면 Drop
  • 최빈값, 평균값, 0 등의 값으로 비어있는 데이터를 채우기

 

판다스는 누락된 데이터를 모두 NaN 으로 처리한다.
또한 판다스 객체의 모든 통계함수는 누락데이터를 무시하고 연산을 진행한다.

 

 

 

 

✔ 누락데이터를 처리하는 함수들 

 

  • dropna() → NaN이 하나라도 있는 로우는 모두 삭제
  • dropna(how ='all') → 모든 값이 NaN인 경우만 삭제
  • dropda('how ='any') → NaN 이 하나라도 있는 로우는 모두 삭제
  • fillna()
  • isnull()
  • notnull()

 

 

import numpy as np
import pandas as pd
from pandas import DataFrame
from numpy import nan as NA


df = DataFrame([[1,6.5,3],
               [1, NA, NA],
               [NA,NA, NA],
               [NA, 6.7, 2]
               ])
df

df

 

 

누락데이터 삭제하기

 

# dropna()

 

# 누락데이터가 하나라도 있으면 해당 로우가 삭제된다
# 기본적으로 원본 유지한다.

removeNa = df.dropna() 
removeNa

 

 

 

# dropna(how='all')

 

df.dropna(how='all')

 

 

 

# dropna(thresh=2)

 

# NaN 이 아닌 일반값이 두개 이상이면 남긴다
df.dropna(thresh=2)

 

 

 

# dropna(thresh=3)

 

# NaN이 아닌 일반값이 세개 이상이면 남긴다 
df.dropna(thresh=3)

 

누락데이터 채우기

 

 

# fillna () 

 

df.fillna(df.mean()) # 평균값으로 채우기

 

df.fillna(value=5)

 

df.fillna(method = 'ffill') # 결측값을 앞 방향으로 채우기

 

 

'|Playdata_study > Python' 카테고리의 다른 글

210723_GroupBy, Pivot Tables  (0) 2021.07.24
210723_Concat,Merge  (0) 2021.07.24
210722_Pandas (DataFrame)  (0) 2021.07.23
210721_Pandas(Series, Matplot)  (0) 2021.07.23
210720_Numpy (array, random, 인덱싱, 슬라이싱)  (0) 2021.07.20

댓글