본문 바로가기

API

[한국은행 API] 주요 국가의 중앙은행 정책금리 비교

반응형

한국은행 API를 이용해서 주요 국가들의 중앙은행 정책 금리를 확인하고 미국 금리와 비교해보겠습니다.

확인을 위해서는 한국은행 API에 가입이 되어 있어야 합니다.

 

 

1. 한국은행 API 가입

2. 주요국 정책 금리 확인

3. 미국 정책금리와의 비교

 

 

1. 한국은행 API 가입

https://yenpa.tistory.com/80

 

[한국은행 API] 인증키 신청 및 100대 통계 지표 수집

한국은행 API에 가입하고 서비스 항목 중 100대 통계지표에 대해 데이터 수집하고 그래프로 확인해보겠습니다. 1. 인증키 신청 2. 인증키 확인 3. 100대 통계 지표 수집 1. 인증키 신청 사이트 접속

yenpa.tistory.com

 

 

 

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()

우상향 국가들은 미국보다 정책 금리를 더 높인 국가들로 대부분 우상향인 것으로 확인됩니다.

 

이상으로 주요 국가들의 중앙은행 정책 금리를 확인하고 미국 금리와 비교해보겠습니다.

 

반응형