총 3개의 데이터프레임이 있다.
1. 주 / 나이 / 연도 / 인구 수를 담은 population
2. 주와 주 이름의 약자를 담은 abbrevs
3. 주와 그 주의 면적을 담은 areas
모든 데이터가 하나의 데이터프레임에 있지 않고
SQL 처럼 join하기 위해 정규화 되어 있다.
우선 Null이 있는지 보자
population의 population 컬럼에만 20개의 NaN값이 있다.
그리고 각 데이터프레임의 shape을 살펴보면
popluation이 주된 데이터프레임인 것을 확인할 수 있고
나머지 2개는 정보를 담아둔 컬럼이라고 생각할 수 있다.
이제, 목표로 하는 주별 인구밀도를 얻기 위해선
population컬럼이 필요하고, area (sq. mi) 컬럼이 필요하다
즉, merge가 진행되어야한다는 것이다.
1. popluation과 abbrevs의 merge → merged
population의 state/region 컬럼과
abbrevs의 abbreviation 컬럼을 조인 조건으로 넣어 merge할 수 있다.
물론 population 컬럼에 누락값이 있으므로
merge한 뒤에 누락값이 늘어날 수 있다.
merged의 정보
역시 걱정했던 대로 누락값이 늘어났다.
여기서 결정해야할 것이 '누락값을 어떻게 대체할 것이냐' 이다.
아직 merge를 한번 더 해야하기 때문에
merge할 컬럼에는 절대 누락값이 있어선 안된다.
이렇게 보면 merge에 이용할 컬럼은 분명히 state이다.
(merged의 state와 areas의 state)
우선, 이제는 필요 없어보이는 abbreviation 컬럼은 삭제하자
2. state컬럼의 누락값 채우기
누락값만 해당하는 행만 뽑아보자
총 96행이 state 컬럼에 누락값이 있음을 보여준다.
여기서 얻을 수 있는 힌트는 state/region 컬럼이다.
실제로도 누락값이 있는 행의 state/region 컬럼의 고유값은 PR과 USA 뿐이다.
즉, 이들은 미국의 주를 약자로 표현한 것이니
PR = Puerto Rico
USA = United States
로 채워줄 수 있다.
위 코드로 state컬럼의 누락값을
사전 지식을 이용해 채워줬다.
population 컬럼의 누락값은 아쉽지만
merge에 이용해야할 state 컬럼은 다 채우게 됐다.
이후 진행은 다음 포스팅
'Pandas > 실전' 카테고리의 다른 글
판다스 - 미국의 연도별 인구밀도 변화 (0) | 2020.07.11 |
---|---|
판다스 - 미국 주/지역별 인구밀도 계산 : merge, 인구밀도 계산 (0) | 2020.07.11 |
판다스 - 지하철 공공데이터 분석 (2020년 1월 ~ 5월) : 발렌타인데이 분석 (0) | 2020.07.10 |
판다스 - 지하철 공공데이터 분석 (2020년 1월 ~ 5월) : 2월의 유동인구 많은 일자, 역별 분석 (0) | 2020.07.10 |
판다스 - 지하철 공공데이터 분석 (2020년 1월 ~ 5월) : 승객이 가장 많은 역/노선의 1월 분석 (0) | 2020.07.09 |