결측치 처리하기
[예제] 인구통계 컬럼에서 결측치 데이터 확인
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
'Python > Pandas' 카테고리의 다른 글
[pandas] pd.qcut() 과 pd.crosstab() (0) | 2023.08.09 |
---|---|
Index Alignment란? (0) | 2023.08.09 |
[pandas] 날짜 데이터 다루기 (0) | 2023.08.09 |
[API 다루기] XML 파일을 pandas 데이터프레임으로 (0) | 2023.08.07 |
[API 다루기] XML 데이터를 pandas 데이터프레임으로 (0) | 2023.08.07 |