반응형
통계청 API를 이용해서 시군구별 인구이동 통계데이터를 불러와보겠습니다.
확인을 위해서는 통계청 API에 가입이 되어 있어야 합니다.
1. 통계청 API 가입
2. 시군구별 인구이동 통계데이터 수집(2006~2022)
3. 시도별 순이동 변동률 및 순이동 장기데이터
1. 통계청 API 가입
2. 시군구별 인구이동 통계데이터 수집(2006~2022)
국내인구이동통계 -> 시군구별 이동자수(DT_1B26001_A01)의 데이터를 2006년부터 2022년까지 주기를 년으로 해서 수집하겠습니다.
apikey는 본인의 데이터가 필요합니다.
import requests
import pandas as pd
startPrdDe='2006';
endPrdDe='2022';
url='https://kosis.kr/openapi/Param/statisticsParameterData.do?method=getList&apiKey=' + \
apikey + '&itmId=T10+T20+T25+T30+T31+T32+T40+T50+&objL1=ALL&objL2=&objL3=&objL4=&objL5=&objL6=&objL7=&objL8=&' + \
'format=json&jsonVD=Y&prdSe=Y&startPrdDe=' + startPrdDe + \
'&endPrdDe=' + endPrdDe + '&orgId=101&tblId=DT_1B26001_A01'
response = requests.get(url)
result = response.json()
result
아래의 개발가이드 -> 통계자료 -> URL 생성에서 조건에 맞는 URL을 생성하는 것이 가능합니다.
결과가 JSON 형태로 수집이 되었는데 DataFrame으로 변환하겠습니다.
df=pd.DataFrame(result)
df
ITM_NM을 보시면 어떤 항목을 볼수 있을지 알 수 있습니다.
아래의 8가지 항목에 데이터를 확인 할수 있습니다.
df['ITM_NM'].unique()
반응형
3. 시도별 순이동 변동율 및 순이동 장기데이터
시도(서울, 경기도, 인천...)와 시군구 데이터가 모두 수집이 됩니다.
우선 시도 데이터만 따로 저장하겠습니다.
level1=['서울특별시','경기도','인천광역시','강원도','충청북도','충청남도','세종특별자치시','대전광역시',
'전라북도','전라남도','광주광역시','경상북도','대구광역시','경상남도','부산광역시','제주특별자치도']
df1=df.loc[df['C1_NM'].isin(level1),['PRD_DE','ITM_NM','DT','UNIT_NM','C1_NM']]
df1
순이동 데이터만 따로 뽑고, 시도별로 연도별 변동률을 구합니다.
df2=df1.loc[df1['ITM_NM']=='순이동'].drop_duplicates()
df2=df2.astype({'DT':'float'})
for level in level1:
df2.loc[df2['C1_NM']==level,'변동율']=df2.loc[df2['C1_NM']==level,'DT'].pct_change()*100
df2
2022년 시도별 순이동 변동율을 그래프로 확인해 보겠습니다.
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import plotly.express as px
fig=px.bar(data_frame=df2.loc[df2['PRD_DE']=='2022'].sort_values('변동율',ascending=False), x='C1_NM',
y='변동율', color='C1_NM')
fig.update_layout(
title_text='2022년 시도별 인구 순이동 변동율',
title={'x':0.5}
)
fig.show()
인천광역시가 가장 변동률이 높고, 경상북도가 낮게 나왔습니다.
2006년부터 장기데이터로 확인해 보겠습니다.
fig=px.bar(data_frame=df2, x='PRD_DE',
y='DT', color='C1_NM', facet_col='C1_NM', facet_col_wrap=4)
fig.update_layout(
title_text='2006~2022년 시도별 순이동 ',
title={'x':0.5}
)
fig.show()
서울은 매년 순이동이 마이너스이고, 경기도는 플러스 수치를 나타내고 있습니다.
세종특별자치시도 매년 늘어나는 모습을 보이고 있습니다.
이상으로 시군구별 인구이동 통계데이터를 확인해 봤습니다.
반응형
'API' 카테고리의 다른 글
[yahoo finance API] 금 은 구리 스프레드와 주가(S&P500) 비교 (4) | 2023.03.02 |
---|---|
[통계청 API] 서울 각 구별 초중고 학생 순 이동자수(2006년~2022년) (4) | 2023.02.28 |
[통계청 API] 가입 후 API key 신청 및 확인 (4) | 2023.02.21 |
[한국은행 API] 우리나라의 국가별 수출총액 수집 및 과거데이터 비교 (4) | 2023.02.17 |
[네이버 뷰 크롤링] 검색어에 대한 링크정보 확인 (4) | 2023.02.15 |