한국은행 API를 이용해서 수입 금액 지수를 수집하고 전년도 동월 대비 데이터와 전월 대비 변동 데이터를 확인하겠습니다.
확인을 위해서는 한국은행 API에 가입이 되어 있어야 합니다.
1. 한국은행 API 가입
2. 수출 금액 지수 확인
3. 전년도 동월 대비 변동 및 전월 대비 변동(YOY, MON)
1. 한국은행 API 가입
2. 수출 금액 지수 확인
수출 금액 지수는 STAT_CODE=403Y001 (3.3.1.1.1. 수출금액지수 )에서 확인이 가능합니다.
그럼 데이터를 불러오겠습니다.
#수출금액지수
import requests
url = 'https://ecos.bok.or.kr/api/StatisticSearch/' + apikey \
+ '/json/kr/1/100/403Y001/M/201501/202212'
response = requests.get(url)
result = response.json()
list_total_count=(int)(result['StatisticSearch']['list_total_count'])
list_count=(int)(list_total_count/100) + 1
rows=[]
for i in range(0,list_count):
start = str(i * 100 + 1)
end = str((i + 1) * 100)
url = 'https://ecos.bok.or.kr/api/StatisticSearch/' + apikey + '/json/kr/' \
+ start + '/' + end + '/403Y001/M/201501/202212'
response = requests.get(url)
result = response.json()
rows = rows + result['StatisticSearch']['row']
df=pd.DataFrame(rows)
df
필요한 column만 df1에 다시 저장합니다.
TIME column의 데이터는 YYYYMM의 형태인데 이것을 datetime 형식으로 date column으로 만들었습니다.
df1=df[['ITEM_NAME1','TIME','DATA_VALUE']]
df1['date']=pd.to_datetime((df1['TIME'].str[:4] + '-' + df1['TIME'].str[4:6] + '-01'))
df1=df1.astype({'DATA_VALUE':'float'})
df1=df1.drop_duplicates()
df1
3. 전년도 동월 대비 변동 및 전월 대비 변동(YOY, MON)
ITEM_NAME1에 종류만 234개가 확인이 됩니다.
len(df['ITEM_NAME1'].unique())
각 분류 별로 전년도 동월 대비 변동율(YOY), 전월 대비 변동률 (MOM)을 구하겠습니다.
전체 ITEM_NAME1 리스트를 items에 저장하고
각 item 별로 YOY, MOM을 pct_change를 이용해서 계산했습니다.
items=df['ITEM_NAME1'].unique()
for item in items:
dftemp=df1.loc[df1['ITEM_NAME1']==item]
df1.loc[df1['ITEM_NAME1']==item,'YOY']= \
df1.loc[df1['ITEM_NAME1']==item,'DATA_VALUE'].pct_change(12) *100
df1.loc[df1['ITEM_NAME1']== \
item,'MOM']=df1.loc[df1['ITEM_NAME1']==item,'DATA_VALUE'].pct_change() *100
2022년 11월 데이터만 따로 저장하고 YOY로 sort하니,
상위와 하위 분류들의 데이터를 알 수 있습니다.
df202211=df1.loc[df1['date']=='2022-11-01']
df202211.sort_values('YOY',ascending=False)
다음으로는 전월 대비 변동률(MOM)입니다.
df202211.sort_values('MOM',ascending=False)
분류가 200개가 넘으니 한 번에 확인은 힘들 것 같아,
상위 20, 하위 20만 따로 그래프로 확인하겠습니다.
우선 상위 20입니다.
import plotly.express as px
from plotly.subplots import make_subplots
import plotly.graph_objects as go
fig=px.bar(data_frame=df202211.sort_values('YOY',ascending=False).iloc[:20],x='YOY',y='ITEM_NAME1')
fig.update_layout(title_text='2022년 11월 수출금액지수 YOY 상위 20', title_x=0.5)
fig.show()
하위 20입니다.
fig=px.bar(data_frame=df202211.sort_values('YOY',ascending=True).iloc[:20],x='YOY',y='ITEM_NAME1')
fig.update_layout(title_text='2022년 11월 수출금액지수 YOY 하위 20', title_x=0.5)
fig.show()
YOY 상위 5개만 2021년 1월부터의 트렌드를 확인하겠습니다.
top20items=['조강','변압기','기초무기화합물','산업용보일러및증기발생기','기초무기화학물질']
dftop20=df1.loc[df1['ITEM_NAME1'].isin(top20items)]
fig=px.line(data_frame=dftop20.loc[dftop20['date']>='2021-01-01'], \
x='date',y='DATA_VALUE',color='ITEM_NAME1')
fig.update_layout(title_text='2021년 ~ 2022년 수입금액지수(YOY 상위 5)', title_x=0.5)
fig.show()
이상으로 수출 금액 지수를 수집하고 전년도 동월 대비 데이터와 전월 대비 변동 데이터를 확인해 봤습니다.
'API' 카테고리의 다른 글
[한국은행 API] 주요국가 외환보유액과 2022년 변동율 비교 (3433) | 2023.01.16 |
---|---|
[한국은행 API] 경기심리지수, 뉴스심리지수와 코스피 주가 (2071) | 2023.01.13 |
[한국은행 API] 수입금액지수 수집 및 전년도 동월과 전월 대비 변동 확인 (3450) | 2023.01.09 |
[농림축산식품 API] 가입하기 및 인증키(APPKey) 확인, API 데이터 신청 (8) | 2023.01.02 |
[Fred API] 신규주택 착공건수 및 거래건수와 경기침체 확인 (8) | 2023.01.01 |