[Pandas] 결측치 제거 및 채우기 (Handling Missing Data) - Cheat Sheet🔥

Jaeyoung·2022년 10월 27일
0
post-thumbnail

목표 설정

  • Pandas Cheat Sheet 에서 누락값(결측치 값) 다루는 방법 학습하기
  • 학습 부분
    • Handling Missing Data
      • 결측치 제거 : dropna
      • 결측치 채우기 : fillna

📍실습에 사용할 데이터

import pandas as pd
import numpy as np

df = pd.DataFrame([[np.nan, 2, np.nan, 0],
                   [3, 4, np.nan, 1],
                   [np.nan, np.nan, np.nan, np.nan],
                   [np.nan, 3, np.nan, 4]],
				 columns=list("ABCD"))

df
ABCD
0NaN2.0NaN0.0
13.14.0NaN1.0
2NaNNaNNaNNaN
3NaN3.0NaN4.0

결측값 제거

df.dropna()

📍파라미터 정리

  • axis : 축 (기본값 : axis=0 행 / axis=1은 열)
    • 누락값이 포함된 행 또는 열 삭제

  • how : 제거방법
    • any : NA 값이 있으면 해당 행이나 열 삭제 (기본값)
    • all : 모든 값이 NA 이면 해당 행이나 열 삭제

  • thresh : 정수 입력 (선택사항)
    • thresh=3 이면, NA가 아닌 값이 3개 이상인 경우만 제거하지 않음

  • subset : 컬럼명 (선택사항)
    • subset=[컬럼명1, 컬럼명2] 이면, 두 컬럼에 대해서만 누락값을 찾도록 지정할 수 있음

  • inplace : 수정여부 (기본값 False)
    • inplace=True 하면, 데이터프레임을 수정

👩🏻‍💻실습으로 배우는 dropna

  • 열에 포함된 값 전체가 결측치일 때만 제거
df.dropna(axis=1, how="all")
ABD
0NaN2.00.0
13.04.01.0
2NaNNaNNaN
3NaN3.04.0
  • 위 결과물을 저장하고자 할 때 inplace=True 넣어주면 된다.

결측값 채우기

df.fillna()

  • 채워줄 값만 넣게 되면, 모든 결측치 값에 채워지게 된다.
  • 특정 값으로 채우려면 values

👩🏻‍💻실습으로 배우는 fillna

  • 누락값 부분을 특정 값으로 채우기
df.fillna("결측값")
ABCD
0결측값2.0결측값0.0
13.14.0결측값1.0
2결측값결측값결측값결측값
3결측값3.0결측값4.0
  • 딕셔너리 값으로 열을 기준으로 다른 값 채워주기
values = {"A": "A", "B": "B", "C": "C", "D": "D"}

df.fillna(value=values)
ABCD
0A2.0C0.0
13.14.0C1.0
2ABCD
3A3.0C4.0

적용을 하게 된다면?

  • 결측값이 많은 데이터프레임에서 각 열별로, 다른 평균값을 넣어줄 일이 있다면 value 파라미터를 사용하면 좋을 것 같다!

참고문헌

profile
데이터 분린이:)

0개의 댓글