본문 바로가기
문송충의 코딩하기/파이썬 데이터 분석

KODEX 은행, TIGER 은행 지난 5년간 주가 그래프 파이썬으로 그리기

by 동장군님 2021. 3. 22.
728x90
반응형

오늘은 간단하게 내가 최근에 관심 있게 지켜보고 있는 국내 은행주 ETF 주가 차트를 파이썬으로 그려보도록 하겠다. 국내 증시에는 삼성자산운용의 KODEX 은행과 미래에셋자산운용의 TIGER 은행 두 개의 ETF가 있다. 파이썬으로 하나하나 만드는 과정을 간략히 설명하도록 하겠다.

 

 

1. 네이버 크롤링

우선 네이버 증권 사이트에서 전체 ETF 종목을 가져온 다음 ETF 종목 이름 중에서 "은행"이라는 단어가 포함된 종목만 추출하도록 하겠다.

import requests
import json
from pandas.io.json import json_normalize

url = 'https://finance.naver.com/api/sise/etfItemList.nhn'
json_data = json.loads(requests.get(url).text)
df = json_normalize(json_data['result']['etfItemList'])
bank=df[df['itemname'].str.contains('은행')]

 

위 코드가 문제 없다면 아래와 같이 오늘 분석할 2개 ETF 종목을 볼 수 있을 것이다.

 

2. 데이터 처리

시각화하기 전에 간단히 데이터 전처리하도록 하겠다. 여기서는 16년부터 현재까지의 주가를 가져오도록 하겠다. 그리고 추가로 코스피 지수도 같이 가져와서 그래프에 그리도록 하겠다.

 

import pandas as pd
import FinanceDataReader as fdr

kodex = fdr.DataReader(bank['itemcode'].values[0], '2016')[['Close']]
tiger = fdr.DataReader(bank['itemcode'].values[1], '2016')[['Close']]

etf=pd.merge(left=kodex,right=tiger, left_on=kodex.index, right_on=tiger.index,how='inner')
etf.columns=['Date','Kodex Bank','Tiger Bank']

kospi=fdr.DataReader('KS11', '2016')[['Close']].reset_index()
kospi.columns=['Date','KOSPI']

price=pd.merge(left=etf,right=kospi,left_on=etf['Date'],right_on=kospi['Date'],how='inner')
price=price.drop(['key_0','Date_x'],axis=1)
price=price.rename(columns={'Date_y':'Date'})

 

 

3. Plotly 인터렉티브 그래프 그리기

마지막으로 반응형 그래프 패키지 Plotly를 사용해서 시각화하도록 하겠다.

 

import plotly.express as px

fig = px.line(price, x="Date", y=['Kodex Bank','Tiger Bank','KOSPI'])
fig.show()

 

728x90
반응형

댓글