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
반응형
'문송충의 코딩하기 > 파이썬 데이터 분석' 카테고리의 다른 글
2021년 11월 서울 아파트 평균 평당(㎡) 거래 매매가 with python (0) | 2021.12.28 |
---|---|
2021년 5월 ~ 11월 서울 강서구 오피스텔 매매가 데이터 가져오기(공공데이터) with Python (0) | 2021.12.27 |
공공데이터 Open API를 통해 국내 주요 은행 현황 분석#1 with Python (0) | 2021.03.20 |
네이버에서 국내 ETF 종목 정보 가져와서 분석 with Python (0) | 2021.03.20 |
[파이썬] - 공공데이터 API에서 시도별 미세먼지 PM10 데이터를 가져와서 Folium으로 시각화하기 (0) | 2020.11.28 |
댓글