판다스 누락값 결측치 파악하기
누락값이 있다면 연산에서 에러가 발생할 수 있으므로 데이터 작업 전에는 항상 누락값을 처리해주고 시작하는 것이 좋습니다. 이번 포스팅은 누락값을 처리하는 여러 방법들입니다.
import pandas as pd
ebola = pd.read_csv("country_timeseries.csv")
누락값은 if문으로 매칭할 수 없기 때문에 누락값의 존재 여부를 알기 위해서는 아래와 같은 방법을 사용해야합니다.
먼저 info를 통해 시각적으로 확인할 수 있습니다.
ebola.info()
정확한 숫자를 알고 싶다면 아래와 같이 사용할 수 있습니다.
ebola.index.stop - ebola.count()
누락값 데이터 입력하기
먼저 단순하게 특정 값이나 평균값 등의 통계 데이터로 채워넣는 방법이 있습니다.
ebola = ebola.fillna("단순값")
평균과 같은 통계 데이터 이용도 간단합니다.
ebola = ebola.fillna(ebola.mean())
하지만 시계열 데이터나 일정한 흐름이 존재한다면 평균이나 특정 값으로 채우는 것이 좋지 않을 수 있습니다. 예를 들어 시간이 지날 수록 늘어나는 숫자에 대한 데이터 등입니다.
이럴 때 데이터 흐름에 맞게 결측치를 채워주는 메소드가 바로 "interpolate()" 메소드입니다. 아래 "Cases_Guinea" 컬럼은 점점 숫자가 줄어들고 있는 일정한 흐름이 있기에 적당한 값을 채워준 것을 볼 수 있습니다.
ebola = ebola.interpolate()
하지만 흐름을 알 수 없는 데이터가 있다면 NaN 값이 채워지지 않습니다. 따라서 먼저 "interpolate()" 메소드로 흐름에 맞는 데이터를 채워준 다음, 위에서 다룬 평균값을 넣거나 위, 아래의 내용을 그대로 가져다 넣어주는 등의 추가 작업이 필요합니다.
- fillna(method = "ffill") ==> 이전 데이터를 그대로 넣어줌
- fillna(method = "bfill") ==> 다음 데이터를 그대로 넣어줌
ebola = ebola.interpolate()
ebola = ebola.fillna(method = "ffill")
ebola = ebola.fillna(method = "bfill")
세 가지 방법을 모두 사용하고 난 뒤에는 누락값이 없어진 것을 확인할 수 있습니다.
ebola.index.stop - ebola.count()
'파이썬 > 라이브러리(API)' 카테고리의 다른 글
파이썬 판다스 데이터에 순위 매기기 (0) | 2024.03.08 |
---|---|
판다스 데이터프레임 행과 열 값 바꾸기 (0) | 2024.03.07 |
판다스 데이터프레임 합치기 (데이터프레임 병합) (1) | 2024.03.07 |
파이썬 시각화하기 - 맷플롯리브(matplotlib) 라이브러리 기초 (0) | 2024.03.07 |
판다스 데이터프레임에서 조건문(if문)으로 데이터 넣기 (2) | 2024.03.07 |
댓글