Fred API를 이용해서 미시간대 소비자심리를 수집하고, 한국은행 API를 이용해서 경제 심리지수를 수집한 후,
두 데이터와 주가(코스피, S&P500)를 비교해 보겠습니다.
데이터 확인을 위해서는 Fred API Key 및 한국은행 API Key가 필요합니다.
1. Fred 가입 후 API KEY 신청 및 확인하기
2. 한국은행 API 가입
3. 미시간대 소비자심리 및 경제심리지수 데이터 수집
4. 미시간대 소비자심리 및 경제심리지수와 주가
1. Fred 가입 후 API KEY 신청 및 확인하기
[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
2. 한국은행 API 가입
[한국은행 API] 인증키 신청 및 100대 통계 지표 수집
한국은행 API에 가입하고 서비스 항목 중 100대 통계지표에 대해 데이터 수집하고 그래프로 확인해보겠습니다. 1. 인증키 신청 2. 인증키 확인 3. 100대 통계 지표 수집 1. 인증키 신청 사이트 접속
yenpa.tistory.com
3. 미시간대 소비자심리 및 경제심리지수 데이터 수집
Fred API에서 미시간대 소비자 심리 데이터를 수집하겠습니다.
기간은 2005-01-01 ~ 2022-12-31까지로 설정하고 symbol 'UMCSENT'로 데이터를 불러옵니다.
import pandas as pd
import fredpy as fp
from datetime import datetime, timedelta
import yfinance as yf
import plotly.graph_objects as go
from plotly.subplots import make_subplots
#fp.api_key = 'YOUR_API_KEY'
startdate='2005-01-01'
enddate='2022-12-31'
# 미시간대 소비자 심리지수
umc = fp.series('UMCSENT',enddate)
dfus = umc.data.loc[umc.data.index >= startdate]
dfus
한국은행 API로 경제 심리 지수를 수집하겠습니다.
기간은 미시간대 소비자심리 데이터와 동일한 기간을 설정하겠습니다.
import requests
url = 'https://ecos.bok.or.kr/api/StatisticSearch/' + apikey \
+ '/json/kr/1/100/513Y001/M/200501/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 + '/513Y001/M/200501/202212'
response = requests.get(url)
result = response.json()
rows = rows + result['StatisticSearch']['row']
df=pd.DataFrame(rows)
df
TIME Column이 YYYYMM 형태로 되어있는데 datetime 형태로 변환하고,
경제심리지수(원계열) 데이터만 df1에 저장하도록 하겠습니다.
df=df.astype({'DATA_VALUE':'float'})
df['datetime']=pd.to_datetime(df['TIME'].str[:4] + '-' + df['TIME'].str[4:6] + '-01')
df1=df.loc[df['ITEM_CODE1']=='E1000']
df1=df1[['datetime','DATA_VALUE']]
df1
그럼 2개의 데이터를 그래프로 확인해 보겠습니다.
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import plotly.express as px
fig = make_subplots(specs=[[{'secondary_y':True}]])
fig.add_trace(
go.Scatter(x=df1['datetime'], y=df1['DATA_VALUE'], name='경제심리지수'),
secondary_y=False
)
fig.add_trace(
go.Scatter(x=dfus.index, y=dfus.values, name='미시간대 소비자심리'),
secondary_y=True
)
fig.update_layout(
title_text = '경기심리지수와 미사간대 소비자심리',
title = {'x':0.5, 'y':0.9}
)
fig.show()
4. 미시간대 소비자심리 및 경제심리지수와 주가
우선 경제심리지수와 미시간대 소비자 심리 지수 데이터를 병합하겠습니다.
dfall=pd.concat([df1.set_index('datetime'), dfus], axis=1)
dfall.columns=['경제심리','미시간대소비자심리']
dfall
경제심리지수 - 미시간대 소비자 심리 지수 계산하겠습니다
dfall['diff']=dfall['경제심리']-dfall['미시간대소비자심리']
dfall
yahoo finance를 이용해서 코스피 주가를 수집하겠습니다.
import yfinance as yf
from datetime import datetime
kospi=yf.download('^KS11', '2005-01-01', '2022-12-31', auto_adjust=True)
kospi
그럼 경제심리지수 - 미시간대소비자심리 데이터와 코스피를 비교해 보겠습니다.
S&P500 주가 수집하고 코스피-S&P500 계산하겠습니다.
snp=yf.download('^GSPC', '2005-01-01', '2022-12-31', auto_adjust=True)
stock=pd.concat([kospi['Close'],snp['Close']], axis=1)
stock.columns=['kospi','snp']
stock['diff']=stock['kospi']-stock['snp']
stock
그럼 마지막으로 (경제심리지수 - 미시간대 소비자심리) 데이터와 (코스피 - S&P500) 데이터를 그래프로 확인하겠습니다.
fig = make_subplots(specs=[[{'secondary_y':True}]])
fig.add_trace(
go.Scatter(x=dfall.index, y=dfall['diff'], name='경기심리-미시간대소비자심리'),
secondary_y=False
)
fig.add_trace(
go.Scatter(x=stock.index, y=stock['diff'], name='코스피지수-S&P500'),
secondary_y=True
)
fig.update_layout(
title_text = '경기심리-미시간대소비자심리와 코스피지수-S&P500',
title = {'x':0.5, 'y':0.9}
)
fig.show()
이상으로 미시간대 소비자심리를 수집하고, 한국은행 API를 이용해서 경제 심리지수를 수집한 후,
두 데이터와 주가(코스피, S&P500)를 비교해 봤습니다.
'API' 카테고리의 다른 글
[Fred API] 물가연동채권(TIPS)과 기준금리 및 소비자물가지수(CPI) (15) | 2023.01.31 |
---|---|
[한국은행API] 경기 선행지수 및 동행지수 순환변동치와 주가 (4) | 2023.01.29 |
[yahoo finance API] 천연가스와 러시아 루블, 달러인덱스 비교 (1223) | 2023.01.21 |
[yahoo finance API] Crude oil과 달러인덱스 ,금, S&P500 비교 (1605) | 2023.01.20 |
[한국은행 API] 위안, 엔, 달러 환율과 KOSPI (1978) | 2023.01.17 |