한국은행 API를 이용해서 주요 국가들의 중앙은행 정책 금리를 확인하고 미국 금리와 비교해보겠습니다.
확인을 위해서는 한국은행 API에 가입이 되어 있어야 합니다.
1. 한국은행 API 가입
2. 주요국 정책 금리 확인
3. 미국 정책금리와의 비교
1. 한국은행 API 가입
2. 주요국 정책 금리 확인
주요 국가의 정책 금리는 STAT_CODE=902Y006 (9.1.1.3. 국제 주요국 중앙은행 정책금리)에서 확인이 가능합니다.
그럼 데이터를 불러오겠습니다.
import requests
url = 'https://ecos.bok.or.kr/api/StatisticSearch/' + apikey \
+ '/json/kr/1/100/902Y006/M/200101/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 + '/902Y006/M/200101/202212'
response = requests.get(url)
result = response.json()
rows = rows + result['StatisticSearch']['row']
df=pd.DataFrame(rows)
df
전체 리스트의 개수는 6000개가 넘는데, API로 한번에 불러올 수 있는 개수는 100개입니다.
그래서 for문을 이용해서 100개 단위로 데이터를 불러와서 rows 리스트에 저장했습니다.
rows 리스트를 DataFrame으로 변환했습니다.
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 + '/902Y006/M/200101/202212'
response = requests.get(url)
result = response.json()
rows = rows + result['StatisticSearch']['row']
df=pd.DataFrame(rows)
어떤 국가들의 데이터가 포함되어 있는지 보겠습니다.
df['ITEM_NAME1'].unique()
26개 국가가 확인이 됩니다.
plotly를 이용해서 그래프로 확인해 보겠습니다.
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import plotly.express as px
df=df.astype({'DATA_VALUE':'float'})
fig=px.line(data_frame=df, x='TIME', y='DATA_VALUE',
color='ITEM_NAME1', facet_col='ITEM_NAME1', facet_col_wrap=4,
labels={'ITEM_NAME1':'국가','DATA_VALUE':'금리','TIME':'날짜'})
fig.update_layout(
title_text='주요국가의 정책금리',
title={'x':0.5}
)
fig.show()
일부 국가의 정책 금리가 높아 전체적으로 변동량을 보기 힘드니, 10% 초과하는 국가들만 따로 저장해서
그래프를 10% 이하, 10% 초과 국가로 나누어 그려보겠습니다.
df.loc[df['DATA_VALUE']>10,'ITEM_NAME1'].unique()
10% 이하 국가 그래프입니다.
country=['브라질', '헝가리', '아이슬란드', '멕시코', '폴란드', '러시아', '남아프리카공화국', '터키',
'인도네시아', '칠레']
df1=df.loc[~df['ITEM_NAME1'].isin(country)]
fig=px.line(data_frame=df1, x='TIME', y='DATA_VALUE',
color='ITEM_NAME1', facet_col='ITEM_NAME1', facet_col_wrap=4,
labels={'ITEM_NAME1':'국가','DATA_VALUE':'금리','TIME':'날짜'})
fig.update_layout(
title_text='주요국가의 정책금리(10%이하)',
title={'x':0.5}
)
fig.show()
10% 초과 국가입니다.
country=['브라질', '헝가리', '아이슬란드', '멕시코', '폴란드', '러시아', '남아프리카공화국', '터키',
'인도네시아', '칠레']
df1=df.loc[df['ITEM_NAME1'].isin(country)]
fig=px.line(data_frame=df1, x='TIME', y='DATA_VALUE',
color='ITEM_NAME1', facet_col='ITEM_NAME1', facet_col_wrap=4,
labels={'ITEM_NAME1':'국가','DATA_VALUE':'금리','TIME':'날짜'})
fig.update_layout(
title_text='주요국가의 정책금리(10%초과)',
title={'x':0.5}
)
fig.show()
3. 미국 정책금리와 비교
다음으로는 미국 정책 금리와 각 국가의 정책 금리를 비교하겠습니다.
각 국가 정책금리 - 미국 정책금리를 계산하겠습니다.
계산을 위해 우선 데이터를 pivot_table을 이용해 변형하겠습니다.
df2=df1.pivot_table(index='TIME', values='DATA_VALUE', columns='ITEM_NAME1')
df2
국가 정책금리 - 미국 정책금리를 계산하고 데이터를 원래의 형태로 변환합니다.
for col in df2:
df2[col] = df2[col] - df2['미국']
df2=pd.melt(df2.reset_index(), id_vars=['TIME'], value_vars=df2.columns[1:])
df2=df2.astype({'value':'float'})
df2
그래프로 확인해보겠습니다.
fig=px.line(data_frame=df2, x='TIME', y='value',
color='ITEM_NAME1', facet_col='ITEM_NAME1', facet_col_wrap=4,
labels={'ITEM_NAME1':'국가','DATA_VALUE':'금리','TIME':'날짜'})
fig.update_layout(
title_text='주요국가의 정책금리 - 미국 정책금리',
title={'x':0.5}
)
fig.show()
최근 미국이 금리를 올리기 시작한 2021년 2월부터의 데이터를 확인해볼까요
fig=px.line(data_frame=df2.loc[df2['TIME'].astype('float')>=202202], x='TIME', y='value',
color='ITEM_NAME1', facet_col='ITEM_NAME1', facet_col_wrap=4,
labels={'ITEM_NAME1':'국가','DATA_VALUE':'금리','TIME':'날짜'})
fig.update_layout(
title_text='주요국가의 정책금리 - 미국 정책금리 (2021년 2월이후)',
title={'x':0.5}
)
fig.show()
우상향 국가들은 미국보다 정책 금리를 더 높인 국가들로 대부분 우상향인 것으로 확인됩니다.
이상으로 주요 국가들의 중앙은행 정책 금리를 확인하고 미국 금리와 비교해보겠습니다.
'API' 카테고리의 다른 글
[한국은행 API] 한국 장단기 국채 수익률 곡선 그래프(1년, 3년, 5년, 10년, 20년) (4) | 2022.12.17 |
---|---|
[fred 한국은행 API] 한국과 미국의 M1(협의통화), M2(광의통화) 비교 (4) | 2022.12.15 |
[fred yahoo API] 소비자심리지수와 S&P500, 달러인덱스, 금 데이터 비교하기 (4) | 2022.12.12 |
[fred 한국은행 API] 한국과 미국의 장단기 금리차 비교하기 (6) | 2022.12.10 |
[한국은행 API] 인증키 신청 및 100대 통계 지표 수집 (8) | 2022.12.09 |