본문 바로가기
Python/Pandas

[pandas] 결측치 처리하기

by ISLA! 2023. 8. 9.

결측치 처리하기

[예제] 인구통계 컬럼에서 결측치 데이터 확인

 

1. 데이터 불러오기

DATA_PATH = './'
covidtotals = pd.read_csv(DATA_PATH + "data/covidtotalswithmissings.csv")

 

2. 5가지 인구 통계를 나타내는 컬럼만 따로 객체에 저장

demovars = ['population','pop_density','median_age','gdp_per_capita', 'hosp_beds']

 

3. 열 별로 결측치 수 파악

  • 기본적으로 df['컬럼명'].isnull().sum() 을 사용한다
  • 행/열 구분은 axis 로 하는데, axis = 0 이면 열 기준, axis = 1 이면 행 기준이다
# 열 별로 결측치 수 파악
covidtotals[demovars].isnull().sum(axis=0)

 

4. 행 별로 결측치 수 파악

  • value_counts()를 사용하면 결과값이 각각 몇 개나 되는지 확인할 수 있다
# 행에서의 결측치 수 파악
demovars_misscnt = covidtotals[demovars].isnull().sum(axis=1)
demovars_misscnt.value_counts()

 

[⚡️미션] 결측치를 3개 이상 가지고 있는 '행'을 추출해보기

- 컬럼은 ['location']과 demovars 에 한정함

demovars = ['population','pop_density','median_age','gdp_per_capita', 'hosp_beds']

#행 별로 결측치 수 파악
demovars_misscnt = covidtotals[demovars].isnull().sum(axis=1)

#행에서 결측치가 3개 이상인 데이터만 뽑아보기
covidtotals.loc[demovars_misscnt >= 3, ['location']+demovars].T (T는 행과 열을 전치;뒤바꿈)
covidtotals.loc[demovars_misscnt >= 3, ['location']+demovars]

 

👉 결과

 

[⚡️미션] 코로나 관련 변수들 중 결측치를 가지고 있는 행 추출하기

totvars = ['location','total_cases','total_deaths','total_cases_pm','total_deaths_pm']

covidtotals[totvars].isnull().sum(axis=0)
totvarsmisscnt = covidtotals[totvars].isnull().sum(axis=1)
covidtotals.loc[totvarsmisscnt>0].T

728x90