-
이번 포스팅에서는 통계청에서 대한민국 자살률 통계 데이터를 가져와 시각화를 해보도록 하겠다. 당연히 이번에도 파이썬을 활용하도록 하겠다.
Data Source:
2019년 시도별 인구 10만명당 자살 수
지도로 시각화해보면 충청남도, 강원도 지방 지역에서 수도권이나 광역시 대비 자살률이 높은 점을 확인할 수 있다.
import pandas as pd df=pd.read_csv('C:/Users/banad/Downloads/자살.csv',encoding='cp949') from urllib.request import urlopen import json with urlopen('https://raw.githubusercontent.com/southkorea/southkorea-maps/master/kostat/2018/json/skorea-provinces-2018-geo.json') as response: kor = json.load(response) df2=df[df['Year']==2019] for idx, si in enumerate(kor['features']): name=si['properties']['name_eng'] nvm=df.loc[(df.Eng==name),'Total'].iloc[0] kor['features'][idx]['properties']['인구 10만명당 자살 수']=int(nvm) male=df.loc[(df.Eng==name),'Male'].iloc[0] kor['features'][idx]['properties']['인구 10만명당 자살 수(남성)']=int(male) female=df.loc[(df.Eng==name),'Female'].iloc[0] kor['features'][idx]['properties']['인구 10만명당 자살 수(여성)']=int(female) kor['features'][idx]['properties']['base_year']=2019 import mapboxgl from mapboxgl.viz import * import os from mapboxgl.utils import create_color_stops from mapboxgl.utils import create_numeric_stops api='~~' center =[126.986, 37.565] color_breaks = [10,20,30,40,50] color_stops =create_color_stops(color_breaks,colors='YlGnBu') viz =ChoroplethViz( access_token=api, data=kor, color_property='인구 10만명당 자살 수', color_stops=color_stops, center=center, zoom=6, bearing=-11, pitch=43, height_property='인구 10만명당 자살 수', height_stops=create_numeric_stops(color_breaks,0,2), height_function_type='interpolate' ) viz.show() viz.create_html('C:/Users/banad/OneDrive/바탕 화면/Nomad/index.html')
2015년 ~ 2019년 전국 10만명당 자살 수
전반적으로 전국 평균 자살률은 지난 5년간 크게 차이가 나타나지 않는 점을 확인할 수 있다. 그나마 늘어나지 않는 점이 다행으로 볼 수 있다. 그리고 남성 자살률이 여성 대비 거의 2배 가까이 높은 것도 처음 알았다.
si_do={'강원도':'Gangwon-do','경기도':'Gyeonggi-do', '경상남도':'Gyeongsangnam-do','경상북도':'Gyeongsangbuk-do', '광주광역시':'Gwangju','대구광역시':'Daegu','대전광역시':'Daejeon','부산광역시':'Busan', '서울특별시':'Seoul','세종특별자치시':'Sejongsi','울산광역시':'Ulsan','인천광역시':'Incheon', '전라남도':'Jeollanam-do','전라북도':'Jeollabuk-do','제주특별자치도':'Jeju-do','충청남도':'Chungcheongnam-do', '충청북도':'Chungcheongbuk-do','전국':'Korea'} df['eng']=df['행정구역별'].apply(lambda x: si_do[x] ) df.columns=['Region','Year','Total','Male','Female','Eng'] all=df[df['Region']=='전국'] all=pd.melt(all, id_vars=['Region','Year'], value_vars=['Total','Male','Female']) all.columns=['Region','Year','Sex','Suicides'] import plotly.express as px fig = px.line(all, x="Year", y='Suicides', color='Sex') fig.update_layout( title="Number of Suicides per 100 thousand", ) fig.show()
2015년 ~ 2019년 시도별 10만명당 자살 수 변화
거의 모든 지역에서 조금이나마 자살률이 줄어드는 점을 볼 수 있지만 유일하게 충남이나 강원도의 경우 자살률이 5년 전과 동일한 부분을 확인할 수 있다.
import plotly.graph_objects as go hm = go.Figure(data=go.Heatmap( z=df['Total'], x=df['Year'], y=df['Eng'], hoverongaps = False) ) hm.update_layout( title="Number of Suicides per 100 thousand", xaxis_title="Year", yaxis_title="Region", font=dict( family="Courier New, monospace", size=14, color="#7f7f7f" ) ) hm.show() hj=hm.to_json() for x,y in zip(list(si_do.keys()), list(si_do.values())): hj = hj.replace(y, x)
'Data Analysis > Social Issues' 카테고리의 다른 글
국내 목욕탕/사우나 폐업 수 데이터 분석 & 시각화 With Python (0) 2021.08.22 코로나19 예방접종센터 현황 확인 - 지도 시각화 With Python, Pydeck (1) 2021.06.09 외국인 입국 통계 데이터 분석 With Python (1) 2021.04.14 2010~2020년 국내 시도별 예금은행 예금액 분석 with Python (0) 2021.04.13 전국 시도별 빈집 상황 알아보자 with Python (0) 2021.04.11