오답노트
[Pandas] NaN 처리 본문
NaN
Not A Number의 약자로
사용할 수 없는 데이터, 빈 값이라고 볼 수 있다.
NaN 확인하기
isnull 메소드와 isna 메소드 둘 다 같은 결과를 출력한다.
예제는 isna로만 살펴보자
df.isna()
import pandas as pd
df.isna()
isna 는 데이터 프레임의 형태로 NaN라면 True 아니면 False로 요소를 표현한다.
sum
각 시리즈 별로 NaN의 개수를 나타낸다. 집계함수 sum과 같다
df.isna().sum()
'''
Label 0
Serise1 1
Serise2 2
Serise3 2
'''
any
각 시리즈별로 NaN이 존재 여부를 나타낸다.
df.isna().any()
'''
Label False
Serise1 True
Serise2 True
Serise3 True
'''
NaN 채우기
fillna
df.fillna(n, method)
fillna 는 NaN 자리에 사용자가 지정한 값을 넣을 수 있다.
또는 method 옵션을 통해서 NaN 자리에 적당한 값을 넣게 할 수 있다.
- method=ffill : forward fill로 이전 데이터 값을 NaN에 넣는다.
- method=bfill : back fill로 앞에 데이터 값을 NaN에 넣는다.
df_ffill = df.fillna(method='ffill')
df_bfill = df.fillna(method='bfill')
interpolate
df.interporate()
inerpolate도 method 옵션이 존재하는데 기본값이 linear이다.
linear는 요소의 평균이 되는 값을 NaN 자리에 넣는다.
df_itp = df.interpolate()
NaN 지우기 (dropna)
df.dropona(axis)
NaN이 존재하는 행 또는 열을 삭제할 수 있다.
하지만 보통 열이 아닌 행을 삭제한다.
axis 옵션으로 행 또는 열을 선택할 수 있는데, 기본값은 0으로 행을 삭제한다. 1은 열을 삭제한다.
df_dropna1 = df_itp.dropna()
df_dropna2 = df_itp.dropna(axis =1)
'Python > Pandas' 카테고리의 다른 글
[Pandas] pivot (0) | 2022.08.11 |
---|---|
[Pandas] 가변수 (Dummy Variable) (0) | 2022.08.09 |
[Pandas] 시간 데이터 (0) | 2022.08.08 |
[Pandas] Crosstab (교차표) (0) | 2022.08.08 |
[Pandas] Rolling 과 Shift (0) | 2022.08.08 |