본문 바로가기

API

[Fred API] 원달러 환율, 달러 인덱스 비교 그래프

반응형

Fred API를 이용해서 원 달러 환율과 달러 인덱스의 데이트를 비교하고 그래프를 그려보겠습니다.

 

1. Fred 가입 후 API KEY 신청 및 확인하기

2. 원 달러 환율, 달러 인덱스 데이터 수집 및 그래프 확인

3. 원 달러 환율과 달러 인덱스의 차분 그래프 확인

 

 

1. Fred 가입 후 API KEY 신청 및 확인하기

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

 

 

2. 원 달러 환율, 달러 인덱스 데이터 수집

필요 라이브러리를 import 합니다. API_KEY는 본인의 데이터가 필요합니다.

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

 

원 달러 환율 및 달러 인덱스 데이터를 불러옵니다.

원 달러 환율의 symbol은 'DEXKOUS'이고 달러 인덱스의 환율을 'DTWEXBGS'입니다.

enddate=(datetime.now() + timedelta(days=-1)).strftime('%Y-%m-%d')
won= fp.series('DEXKOUS',enddate)
won.data

 

달러 인덱스입니다.

enddate=(datetime.now() + timedelta(days=-1)).strftime('%Y-%m-%d')
dol= fp.series('DTWEXBGS',enddate)
dol.data

 

데이터의 기간을 맞추기 위해 원 달러 환율의 기간을 '2006-01-02'로 하고

그래프를 그려 보겠습니다.

wondata=won.data.loc[won.data.index > '2006-01-02']

import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots

# Create figure with secondary y-axis
fig = make_subplots(specs=[[{"secondary_y": True}]])

# Add traces
fig.add_trace(
    go.Line(x=dol.data.index, y=dol.data.values, name="달러인덱스"),
    secondary_y=True,
)

fig.add_trace(
    go.Line(x=wondata.index, y=wondata.values, name="원달러환율"),
    secondary_y=False,
)

#fig.add_trace(
#    go.Bar(x=usregdata.index, y=usregdata.values, name="경기침체"),
#    secondary_y=False,
#)

fig.show()

 

 

3. 원 달러 환율과 달러 인덱스의 차분 그래프 확인

원 달러 환율과 달러 인덱스의 차분 데이터를 확인하기 위해 두 개의 데이터를 병합하겠습니다.

df=pd.concat([dol.data,wondata], axis=1)
df.columns=['달러인덱스','원달러환율']
df

 

원 달러 환율 데이터는 2006-01-03부터 시작되니 01-03을 100.7558으로 설정하고

이후의 날짜를 변환하도록 하겠습니다.

우선 pct_change로 일별 변화율을 구하고, cumprod를 이용 누적 변화율을 구합니다.

df['원달러환율_change']=df['원달러환율'].pct_change()
df['원달러환율_changecum']=(1+df['원달러환율_change']).cumprod()

원 달러 환율의 2006-01-03을 1로 설정 후 전체 데이터를 100.7558을 곱해 주면 

2006-01-03의 100.7558 기준으로 데이터가 변환이 됩니다.

df.loc['2006-01-03','원달러환율_changecum']=1
df['원달러환율index']=df['원달러환율_changecum']*100.7558

수치가 변한 것을 알 수 있습니다.

원달러 환율 index에서 달러 인덱스의 차분을 구합니다.

df['차분']=df['원달러환율index']-df['달러인덱스']
df

그래프로 확인해 보겠습니다.

import plotly.express as px

fig=px.line(data_frame=df, x=df.index, y='차분', 
          title='원 달러 인덱스와 달러인덱스의 차분 그래프', height=500)
fig.update_layout(
    uniformtext_minsize=8, uniformtext_mode='hide',
    title={
        'y':0.85,
        'x':0.5,
        'xanchor': 'center',
        'yanchor': 'top'})
fig.show()

0보다 크면 달러 인덱스의 변화보다 원 달러 환율의 수치가 많은 경우가 되겠습니다.

 

차분 그래프와 경기 침체 그래프를 보겠습니다.

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>='2006-01-01']

# Create figure with secondary y-axis
fig = make_subplots(specs=[[{"secondary_y": True}]])

# Add traces
fig.add_trace(
    go.Line(x=df.index, y=df['차분']), 
    secondary_y=True,
)

fig.add_trace(
    go.Bar(x=usregdata.index, y=usregdata.values, name="경기침체"),
    secondary_y=False,
)

fig.show()

 

 

차분 데이터와 코스피 지수를 확인해 볼까요

 

 

이상으로 원 달러 환율과 달러 인덱스의 데이트를 비교하고 그래프를 그려보겠습니다.

 

반응형