본문 바로가기
Data Science/Python

[Pandas] 누락데이터 처리 : isna, dropna, fillna

by 엔딴 2020. 10. 21.
반응형

결측치 처리 순서

  1. 데이터 프레임 준비
    • 생성, 파일 읽기 등 
  2. 데이터 프레임 결측치 확인
    • isna(), isna().sum()
  3. 데이터 프레임 결측치 제거 1 (행 또는 열이 모두 NA인 경우)
    • dropna(how='all', axis=1), dropna(how='all', axis=0)
  4. 데이터 프레임 결측치 제거 2 (특정 기준으로 제거)
    • 예) NA 비율이 80% 이상인 컬럼, 행 등 
  5. 데이터 프레임 결측치 대체
    • fillna()

isna( ) 또는 notna( ) 함수 이용

isna() # 값이 NA이면 True, 아니면 False
notna() # 값이 NA가 아니라면 True, 맞으면 False

 

isna()를 이용하여 결측치 유무 확인 가능하지만, 눈에 안 들어온다.

df.isna().sum() # 행별(row별) NA 개서 확인
df.isna().sum(axis=1) # 행별(row별) NA 개서 확인

열별 (컬럼별) NA 개수 확인 

 

데이터 프레임에 조건을 비교 -> True (조건 참)이면 값 존재, False (조건 거짓)이면 NaN

 

dropna( ) : NA 제거 함수

  • how (NA 삭제 방법) : 'any', 'all'
  • axis (적용 축) : 0(행), 1(열) 
  • thresh (NA가 아닌 개수) = 숫자(int) 

 

df.dropna(how='any', thresh = 0.8, axis = 1)

 

df.dropna(axis=0,df.dropna(axis=0,df.dropna(axis=0,

 

fillna( ) : NA 값을 채움

1개를 넣으면 모든 NA를 1개의 값으로 변경

컬럼의 수만큼 주면 컬럼 별로 동작

 

컬럼별 평균 값으로 채움

col_mean = df_na.mean() # 컬럼별 평균값(NA 제외하고 계산됨) 
df_na.fillna(col_mean) 

 

반응형