본문 바로가기

API

[fred 한국은행 API] 한국과 미국의 M1(협의통화), M2(광의통화) 비교

반응형

한국은행 API와 fred API를 이용해서 한국의 M1, M2와 미국의 M1, M2를 비교해보겠습니다.

한국은행 API 및 fred API가 가입이 되어 있어야 합니다.

1. 한국은행 API 가입
2. fred API 가입
3. 한국 M1, M2 데이터 수집
4. 미국 M1, M2 데이터 수집
5. 데이터 비교

1. 한국은행 API 가입

https://yenpa.tistory.com/80

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

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

yenpa.tistory.com



2. fred API 가입

https://yenpa.tistory.com/65

[Fred API] 가입 후 API KEY 신청 및 확인하기

Fred 사이트에 가입 후 API Key 확인하는 방법을 알아보겠습니다. 1. Fred 사이트 가입 아래의 사이트에 접속합니다 https://fred.stlouisfed.org/ Federal Reserve Economic Data | FRED | St. Louis Fed Welcome to FRED, your trust

yenpa.tistory.com



3. 한국 M1, M2 데이터 수집

우리나라의 M1, M2를 불러와 보겠습니다.
우선 M1 데이터 수집입니다. 코드는 '101Y016'이고 통계항목 코드 1은 'BBKS00'입니다.

import requests

url = 'https://ecos.bok.or.kr/api/StatisticSearch/' + apikey \
        + '/json/kr/1/100/101Y016/M/200001/202212/BBKS00'
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 + '/101Y016/M/200001/202212/BBKS00'
    response = requests.get(url)
    result = response.json()
    rows = rows + result['StatisticSearch']['row']
    
dfkom1=pd.DataFrame(rows)
dfkom1


TIME Column이 202212 형식으로 되어 있는데 2022-12-01 형식으로 바꾸고 타입을 datetime으로 변경하겠습니다.
이후 필요한 column만 추려서 dfkom1에 저장후 column type을 float으로 변경하겠습니다.

dfkom1['date']=pd.to_datetime(dfkom1['TIME'].str[:4] + '-' + dfkom1['TIME'].str[4:6] + '-01')
dfkom1 = dfkom1[['date','DATA_VALUE']].set_index('date')
dfkom1=dfkom1.astype('float')
dfkom1



M2 데이터도 마찬가지로 수집하겠습니다.
코드는 '101Y001'이고 통계항목 코드 1은 'BBGS00'입니다.

url = 'https://ecos.bok.or.kr/api/StatisticSearch/' + apikey \
        + '/json/kr/1/100/101Y001/M/200001/202212/BBGS00'
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 + '/101Y001/M/200001/202212/BBGS00'
    response = requests.get(url)
    result = response.json()
    rows = rows + result['StatisticSearch']['row']
    
dfkom2=pd.DataFrame(rows)
dfkom2['date']=pd.to_datetime(dfkom2['TIME'].str[:4] + '-' + dfkom2['TIME'].str[4:6] + '-01')
dfkom2 = dfkom2[['date','DATA_VALUE']].set_index('date')
dfkom2 = dfkom2.astype('float')
dfkom2



반응형


4. 미국 M1, M2 데이터 수집

미국의 M1, M2 데이터를 수집해보겠습니다.
우선 필요라이브러리를 import 합니다.

import pandas as pd
import fredpy as fp
from datetime import datetime, timedelta
#fp.api_key = 'YOUR_API_KEY'

M1은 dfusm1에 M2는 dfusm2에 저장하겠습니다.

enddate=(datetime.now() + timedelta(days=-1)).strftime('%Y-%m-%d')
dfusm1 = fp.series('M1SL',enddate)
dfusm2 = fp.series('M2SL',enddate)
dfusm1.data



M1 데이터가 1959년 부터 있네요. 우리나라의 M1기간과 통일시키기 위해 아래와 같이 기간을 설정합니다.

dfusm1.data = dfusm1.data.loc[dfusm1.data.index>'2001-01-01']
dfusm1.data


M2도 동일하게 설정합니다.

dfusm2.data = dfusm2.data.loc[dfusm2.data.index>'2001-01-01']


5. 데이터 비교

데이터를 그래프로 확인하고 한국과 미국의 M1, M2 데이터를 비교해보겠습니다.
우선 한국의 M1, M2그래프입니다.

import plotly.graph_objects as go
from plotly.subplots import make_subplots
fig = make_subplots(specs=[[{'secondary_y':True}]])

fig.add_trace(
    go.Scatter(x=dfkom1.index, y=dfkom1['DATA_VALUE'],name='한국 M1'),
    secondary_y=False
)

fig.add_trace(
    go.Scatter(x=dfkom2.index, y=dfkom2['DATA_VALUE'],name='한국 M2'),
    secondary_y=False
)

fig.show()

M1, M2모두 꾸준히 상승하다가 M1 통화는 2022년 5월 이후 조금 꺾인 것을 알 수 있습니다.



반응형



미국의 M1, M2입니다.

fig = make_subplots(specs=[[{'secondary_y':True}]])

fig.add_trace(
    go.Scatter(x=dfusm1.data.index, y=dfusm1.data.values,name='미국 M1'),
    secondary_y=False
)

fig.add_trace(
    go.Scatter(x=dfusm2.data.index, y=dfusm2.data.values,name='미국 M2'),
    secondary_y=False
)

fig.show()

미국은 M1, M2모두 2020년 4월 급격히 상승 후 2022년 3월경부터 꺾이는 모습을 보입니다.




한국 M1과 미국 M1의 비교입니다.

fig = make_subplots(specs=[[{'secondary_y':True}]])

fig.add_trace(
    go.Scatter(x=dfusm1.data.index, y=dfusm1.data.values,name='미국 M1'),
    secondary_y=False
)

fig.add_trace(
    go.Scatter(x=dfusm2.data.index, y=dfusm2.data.values,name='미국 M2'),
    secondary_y=False
)

fig.show()

미국 M1이 코로나 때 2020년 4월경 상승폭이 큰것을 알 수 있고 2022년 5월 경부터는
한국 미국 모두 하락 한 것을 알 수 있습니다.


한국 M2와 미국 M2의 비교입니다.

fig = make_subplots(specs=[[{'secondary_y':True}]])

fig.add_trace(
    go.Scatter(x=dfkom2.index, y=dfkom2['DATA_VALUE'],name='한국 M2'),
    secondary_y=False
)

fig.add_trace(
    go.Scatter(x=dfusm2.data.index, y=dfusm2.data.values,name='미국 M2'),
    secondary_y=True
)

fig.show()

M2 역시 미국이 202년 4월의 상승폭이 큰 것을 알 수 있습니다.



이상으로 한국의 M1, M2와 미국의 M1, M2를 확인하고 비교해 봤습니다.

반응형