빅데이터/Data Visualization

데이터 시각화 08 - Matplotlib (인구 피라미드)

H-V 2022. 1. 24. 20:44

유투버 '나도코딩'님 강의 참조

 

 

 

인구 피라미드 시각화

 

 

01 실제 데이터 들고 오기

  • 검색이 잘 되는지 확인을 한 후 엑셀 파일을 받고, 파일이 깨지지 않는지 확인 하자. 그리고 현재 작업하고있는 폴더에 넣어 주자!

  • 데이터가 어디서 시작하는지 그리고 남/여 데이터가 어디서 나뉘는지 확인이 필요 하다

 

 

 

02 데이터 정제

 

▶ 남/녀 데이터를 구분짓는 정제 작업이 필요 하다

 

 

- 남자 데이터

  • 주황색 부분은 필요가없고 파란색 부분이 필요하니 이에 맞게 불러 올때 작업을 해줘야 한다.
import pandas as pd
df_m = pd.read_excel('201112_201112_연령별인구현황_월간.xlsx', skiprows=3, index_col='행정기관',
                    usecols='B, E:Y')
df_m

굿!

 

▶ 데이터를 쉽게 쓰기위해서 쉼표 처리

df_m.iloc[0] = df_m.iloc[0].str.replace(',','').astype(int)

 

 

- 여자 데이터도 같은 작업

df_w = pd.read_excel('201112_201112_연령별인구현황_월간.xlsx', skiprows=3, index_col='행정기관',
                    usecols='B, AB:AV')
df_w

하지만 여자 데이터가 세.1 이 붙는것을 볼 수 있다.  이것도 처리 하자

- 컬럼명 수정

df_w.columns = df_m.columns # 컬럼명 통일

 

▶ 쉼표 처리

df_w.iloc[0] = df_w.iloc[0].str.replace(',','').astype(int)
df_w

 

 

 

 

03 시각화

  • 데이터 준비는 끝났다. 시각화를 해 보자

* 기본 세팅

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 한글 폰트 설정
import matplotlib
matplotlib.rcParams['font.family'] = 'Malgun Gothic' # 윈도우 전용
matplotlib.rcParams['font.size'] = 15 #폰트 크기
matplotlib.rcParams['axes.unicode_minus'] = False

 

  • 피라미드 그리기
plt.figure(figsize=(10, 7))
plt.barh(df_m.columns, -df_m.iloc[0] // 1000, label='남자') # 단위 천명 기준
plt.barh(df_w.columns, df_w.iloc[0] // 1000, label='여자') 
plt.title('2011 대한민국 인구 피라미드')
plt.savefig('2011_인구피라미드.png', dpi=100)
plt.legend();

▶ 남자의 데이터를 만대로 나오게 하기 위해 '-'를 준다

 

 

※ 이제 년도별 파일만 바꿔서 받고 이름만 바꿔주면 년도별로 피라미드를 만들 수 있다!