본문 바로가기
Python

[파이썬] 판다스: NaN

by eyoo 2022. 4. 29.

데이터 프레임 속 NaN 이 얼마나 있는지 파악하자

 

in:

df.isna()

out:

# isna를 사용하여 False와 True로 NaN의 여부를 확인할 수 있다.

 

 

sum함수를 활용해 컬럼별로 Nan의 개수를 알 수 있다.

 

in:

df.isna().sum()

out:

bikes      0
pants      0
watches    0
shirts     1
shoes      0
suits      1
glasses    1
dtype: int64

 

 

전체 Nan의 개수를 알고 싶으면 sum을 한 번 더 사용하면 된다.

 

in:

df.isna().sum().sum()

out:

3

 

 

NaN을 처리하는 방법은 여러 가지가 있다.

 

1. 삭제한다.

 

in:

df.dropna()

out:

# dropna를 통해 Nan이 들어갔던 행들이 모두 삭제됐다.

 

 

2. 특정값으로 채운다.

 

in:

df.fillna(0)

out:

# 0이 아닌 '없음'같은 문자열을 넣고 싶으면 없음으로 처리된다.

# 만약 하나의 열에 있는 nan에만 특정값을 채우고 싶으면 칼럼명을 활용하면 된다.

# 예시: df['shirts'] = df['shirts'].fillna(0)

 

 

method 파라미터에 ffill을 사용해 이전 열의 값을 Nan에 불러와 넣을 수 있다.

 

in:

df.fillna(method='ffill', axis=0)

out:

# Nan이 동일 열, 이전 행의 값과 동일해졌다.

# ffill 대신 bfill을 사용하면 다음 행의 값과 동일해진다.

 

 

mean함수를 이용해 전체 행의 평균값을 nan값에 넣어보자.

 

in:

df.fillna(df.mean())

out:

 

 

notna 함수를 통해 Nan이 아닌 값들을 특정 지을 수 있다.

 

in:

df.notna()

out:

댓글