본문 바로가기

API

[통계청 API] 해외 입국자의 국적,연령대,입국 목적별 정보수집(2022년)

반응형

통계청 API를 이용해서 해외 입국자의 국적별, 연령대별, 입국 목적별 데이터를 확인해 보겠습니다.
확인을 위해서는 통계청 API에 가입이 되어 있어야 합니다.

1. 통계청 API 가입
2. 국적별 입국 정보

3. 연령대별 입국 정보

4. 입국 목적별 입국 정보 

 

 

1. 통계청 API 가입

https://yenpa.tistory.com/121

 

[통계청 API] 가입 후 API key 신청 및 확인

통계청 API를 이용하기 위해 사이트 가입 및 API key 신청 후 확인해 보겠습니다. 1. 사이트가입 2. API key 신청 및 확인 1. 사이트 가입 통계청 사이트에 접속합니다. https://kosis.kr/openapi/index/index.jsp KOS

yenpa.tistory.com

 

 

 

2. 국적별 입국 정보

외래객 입국-연령별/국적별(DT_TRD_AGE_ENT_AGG_MONTH)의 2022년 데이터를 월별 수집하겠습니다.

apikey는 본인의 데이터가 필요합니다.

import requests
import pandas as pd

url='https://kosis.kr/openapi/Param/statisticsParameterData.do?method=getList&' + \
'apiKey=' + apikey + '&itmId=13103314423T02+13103314423T03+13103314423T04+13103314423T05' + \
'+13103314423T06+13103314423T07+&objL1=13102314423A.2002+13102314423A.2003+13102314423A.2004' + \
'+13102314423A.2005+13102314423A.2006+13102314423A.2007+13102314423A.2008+13102314423A.2009' + \
'+13102314423A.2010+13102314423A.2011+13102314423A.2012+13102314423A.2013+13102314423A.2014' + \
'+13102314423A.2015+13102314423A.2016+13102314423A.2017+13102314423A.2018+13102314423A.2019' + \
'+13102314423A.2020+13102314423A.2021+13102314423A.2022+13102314423A.2023+13102314423A.2024' + \
'+13102314423A.2025+13102314423A.3002+13102314423A.3003+13102314423A.3004+13102314423A.3005' + \
'+13102314423A.4002+13102314423A.4003+13102314423A.4004+13102314423A.4005+13102314423A.4006' + \
'+13102314423A.4007+13102314423A.4008+13102314423A.4009+13102314423A.4010+13102314423A.4011' + \
'+13102314423A.4012+13102314423A.4013+13102314423A.4014+13102314423A.4015+13102314423A.4016' + \
'+13102314423A.4017+13102314423A.4018+13102314423A.4019+13102314423A.4020+13102314423A.4021' + \
'+13102314423A.4022+13102314423A.4023+13102314423A.5002+13102314423A.5003+13102314423A.5004' + \
'+13102314423A.6002+13102314423A.6003+&objL2=&objL3=&objL4=&objL5=&objL6=&objL7=&objL8=&format=json' + \
'&jsonVD=Y&prdSe=M&startPrdDe=202201&endPrdDe=202212&orgId=314&tblId=DT_TRD_AGE_ENT_AGG_MONTH'

response = requests.get(url)
result = response.json()
result

 

Json -> DataFrame으로 변경하고,

필요한 Column만 지정하고, Data Column인 DT를 int 형태로 변경했습니다.

df=pd.DataFrame(result)
df1=df[['PRD_DE','PRD_SE','ITM_NM','C1_NM','DT']]
df1=df1.astype({'DT':'int'})
df1

 

국가별로 입국자수를 그래프로 확인하겠습니다.

import plotly.graph_objects as go
from plotly.subplots import make_subplots
import plotly.express as px


df2=df1.groupby('C1_NM')[['DT']].sum().sort_values('DT',ascending=False).iloc[:20,]

fig=px.bar(data_frame=df2, x=df2.index, 
           y='DT', color=df2.index)
fig.update_layout(
    title_text='2022년 국가별 입국자수',
    title={'x':0.5}
)
fig.show()

미국 국적이 가장 많았고, 그다음으로 일본, 중국, 태국, 싱가포르 순으로 많았습니다.

 

 

반응형

 

 

3. 연령대별 입국 정보

연령대 별로는 어떻게 구성이 되어있는지 보겠습니다.

fig=px.pie(data_frame=df1, names='ITM_NM', 
           values='DT', color='ITM_NM')
fig.update_layout(
    title_text='2022년 연령대별 입국자 비율',
    title={'x':0.5}
)
fig.show()

21~30세가 가장 많았고, 31~40, 41~50세 순으로 많았습니다.

그럼 연령대별로 국적 구성을 확인해 보겠습니다.

우선 입국자 상위 10개 국가만 따로 저장을 하겠습니다.

country=df2.index.unique()[:10]
df3=df1.groupby(['ITM_NM','C1_NM'])[['DT']].sum().reset_index().sort_values('DT',ascending=False)
df3=df3.loc[df3['C1_NM'].isin(country)]
country

 

그래프로 확인하겠습니다.

fig=px.pie(data_frame=df3, names='C1_NM', 
           values='DT',  facet_col='ITM_NM', facet_col_wrap=3, height=700)
fig.update_layout(
    title_text='2022년 연령대별 국적별 입국자 비율',
    title={'x':0.5}
)
fig.show()

전체 입국은 미국> 일본> 중국> 태국> 싱가포르 순이었습니다.

21~30세는 일본이 가장 많았고, 61세 이상은 미국이 절반정도 차지했습니다.

30~40세는 태국이 2번째로 많았고, 0~20세는 싱가포르가 2번째로 확인이 됩니다.

 

반응형

 

4. 입국 목적별 입국 정보 

입국 목적별 입국 정보를 수집하고 그래프로 확인하겠습니다.

url='https://kosis.kr/openapi/Param/statisticsParameterData.do?method=getList&' + \
'apiKey=' + apikey + '&itmId=13103314422T02+13103314422T03+13103314422T04+13103314422T05+13103314422T06+&objL1=13102314422A.2002+13102314422A.2003+13102314422A.2004+13102314422A.2005+13102314422A.2006+13102314422A.2007+13102314422A.2008+13102314422A.2009+13102314422A.2010+13102314422A.2011+13102314422A.2012+13102314422A.2013+13102314422A.2014+13102314422A.2015+13102314422A.2016+13102314422A.2017+13102314422A.2018+13102314422A.2019+13102314422A.2020+13102314422A.2021+13102314422A.2022+13102314422A.2023+13102314422A.2024+13102314422A.2025+13102314422A.3002+13102314422A.3003+13102314422A.3004+13102314422A.3005+13102314422A.4002+13102314422A.4003+13102314422A.4004+13102314422A.4005+13102314422A.4006+13102314422A.4007+13102314422A.4008+13102314422A.4009+13102314422A.4010+13102314422A.4011+13102314422A.4012+13102314422A.4013+13102314422A.4014+13102314422A.4015+13102314422A.4016+13102314422A.4017+13102314422A.4018+13102314422A.4019+13102314422A.4020+13102314422A.4021+13102314422A.4022+13102314422A.4023+13102314422A.5002+13102314422A.5003+13102314422A.6002+&objL2=&objL3=&objL4=&objL5=&objL6=&objL7=&objL8=&format=json&jsonVD=Y&prdSe=M&startPrdDe=202201&endPrdDe=202212&orgId=314&tblId=DT_TRD_TGT_ENT_AGG_MONTH'

response = requests.get(url)
result = response.json()
df=pd.DataFrame(result)
df1=df[['PRD_DE','PRD_SE','ITM_NM','C1_NM','DT']]
df1=df1.astype({'DT':'int'})


fig=px.pie(data_frame=df1, names='ITM_NM', 
           values='DT', color='ITM_NM')
fig.update_layout(
    title_text='2022년 입국목적별 입국자 비율',
    title={'x':0.5}
)
fig.show()

마지막으로 국적별로 입국 목적비율을 확인하겠습니다.

df3=df1.groupby(['ITM_NM','C1_NM'])[['DT']].sum().reset_index().sort_values('DT',ascending=False)
df3=df3.loc[df3['C1_NM'].isin(country)]


fig=px.pie(data_frame=df3, names='ITM_NM', 
           values='DT',  facet_col='C1_NM', facet_col_wrap=4, height=700)
fig.update_layout(
    title_text='2022년 국적별 입국목적별 입국자 비율',
    title={'x':0.5}
)
fig.show()

전체 입국목적은 관광> 기타> 유학연수 순이었습니다.

전체적으로 관광의 비율이 높지만, 중국 및 필리핀은 기타 목적이 많은 것을 알 수 있습니다.

한국 관광공사의 자료에 설명되어 있는 입국목적별의 기준은 아래와 같습니다.

 

이상으로 해외 입국자의 국적별, 연령대별, 입국 목적별 데이터를 확인해 봤습니다.

반응형