반응형
Fred API를 이용해서 CPI 및 Core CPI의 데이터를 수집해서 그래프로 확인해보겠습니다.
1. Fred 가입 후 API KEY 신청 및 확인하기
2. CPI, Core CPI 데이터 수집
3. 그래프 확인
1. Fred 가입 후 API KEY 신청 및 확인하기
2. CPI, Core CPI 데이터 수집
필요 라이브러리를 import 합니다. API_KEY는 본인의 데이터가 필요합니다.
import pandas as pd
import fredpy as fp
from datetime import datetime, timedelta
#fp.api_key = 'YOUR_API_KEY'
CPI 및 Core CPI의 데이터를 불러옵니다.
CPI의 Symbol은 'CPIAUCSL'이고 Core CPI는 'CPILFESL'입니다.
enddate=(datetime.now() + timedelta(days=-1)).strftime('%Y-%m-%d')
cpi= fp.series('CPIAUCSL',enddate)
corecpi = fp.series('CPILFESL',enddate)
cpi.data
CPI Data인데 1947년부터의 데이터가 보이는데, Row Data로 일반적으로 표시하는 %가 아닙니다.
이것을 YOY(1년 전 같은 달에서의 성장)의 데이터로 확인해보겠습니다.
fredpy에서 apc라는 function으로 계산이 가능합니다.
cpiyoy=cpi.apc().data
cpiyoy
%로 계산된 것이 확인이 됩니다.
이번에는 MOM(지난달 대비 성장)을 확인해 보겠습니다.
fredpy에서는 별도로 지원은 없고 pct_change로 간단히 계산이 됩니다.
cpimom=cpi.data.pct_change()*100
cpimom
Core CPI도 YOY와 MOM을 계산하겠습니다.
corecpiyoy=corecpi.apc().data
corecpimom=corecpi.data.pct_change()*100
3. 그래프 확인
Plotly를 이용해서 CPI YOY의 장기 데이터 그래프를 그려보겠습니다.
import plotly.express as px
fig=px.bar(x=cpiyoy.index, y=cpiyoy.values, color=cpiyoy.values,
title='CPI YOY 장기데이터', height=500)
fig.update_traces(textposition='outside')
fig.update_layout(
uniformtext_minsize=8, uniformtext_mode='hide',
title={
'y':0.85,
'x':0.5,
'xanchor': 'center',
'yanchor': 'top'})
fig.show()
다음으로는 CPI MOM 장기 데이터를 볼까요.
fig=px.bar(x=cpimom.index, y=cpimom.values, color=cpimom.values,
title='CPI MOM 장기데이터', height=500)
fig.update_traces(textposition='outside')
fig.update_layout(
uniformtext_minsize=8, uniformtext_mode='hide',
title={
'y':0.85,
'x':0.5,
'xanchor': 'center',
'yanchor': 'top'})
fig.show()
CPI와 Core CPI를 같은 그래프에서 확인해보도록 하겠습니다.
import plotly.express as px
fig=px.line(data_frame=dfyoy, x=dfyoy.index, y=['CPI','Core CPI'],
title='CPI vs CoreCPI YOY 장기데이터', height=500)
fig.update_layout(
uniformtext_minsize=8, uniformtext_mode='hide',
title={
'y':0.85,
'x':0.5,
'xanchor': 'center',
'yanchor': 'top'})
fig.show()
경기침체 데이터와 같은 그래프로 확인해보겠습니다.
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
usreg = fp.series('USREC',enddate)
usregdata=usreg.data.loc[usreg.data.index>='1945-01-01']
# Create figure with secondary y-axis
fig = make_subplots(specs=[[{"secondary_y": True}]])
# Add traces
fig.add_trace(
go.Line(x=dfyoy.index, y=dfyoy['CPI'], name="CPI"),
secondary_y=True,
)
fig.add_trace(
go.Line(x=dfyoy.index, y=dfyoy['Core CPI'], name="Core CPI"),
secondary_y=True,
)
fig.add_trace(
go.Bar(x=usregdata.index, y=usregdata.values, name="경기침체"),
secondary_y=False,
)
fig.show()
이상으로 CPI 및 Core CPI의 데이터를 수집 후 그래프로 확인해 봤습니다.
반응형
'API' 카테고리의 다른 글
[Fred API] 달러 인덱스와 금, 은, 구리 비교 그래프 (11) | 2022.12.05 |
---|---|
[Fred API] 원달러 환율, 달러 인덱스 비교 그래프 (4) | 2022.12.02 |
[공공데이터포털 API] 아파트 매매 실거래 자료 수집 (4) | 2022.11.28 |
[Fred API] 미국 장단기 국채 수익률 곡선 그래프(2년, 3년, 5년, 10년, 20년, 30년) (4) | 2022.11.25 |
[Fred API FinanceDataReader] 주가와 장단기금리차 데이터 수집 및 그래프 확인 (4) | 2022.11.24 |