데이터사이언티스트를 위한 웹 개발 streamlit을 알아보자!
데이터사이언티스트를 위한 웹 개발 streamlit을 알아보자!
안녕하세요 모두연 TQA 우성우 입니다.
오늘은 데이터사이언스 및 ML 프로젝트를 간단하게 배포할 수 있는 streamlit이라는 툴을 이용해, 반도체 주식 데이터 dashboard를 만들어보면서 알아가는 시간을 가져보겠습니다.
Streamlit 설치
공식홈페이지를 참조하려면 : https://streamlit.io/
위 내용처럼 `pip install streamlit` 으로 아주 간단하게 패키지를 설치할 수 있으며,
html,css,js를 잘 모르더라도 데이터 관련 dashboard 및 다양한 기능을 프로토타입으로 빠르게 구현하고 배포 까지 할수 있는 좋은 툴입니다.
그래서 저도 아래 링크처럼 인터넷 자료들을 검색하면서 반도체 주식 dashboard를 구현하였습니다.
https://sw-woo-finance-dashboard-app-kb92qs.streamlitapp.com/
구현 과정을 정리하면,
- 파이썬 streamlit 패키지 설치,
- 파이썬 코드 작성,
- github 원격 저장소에 push,
- streamlit 페이지에 경로를 지정하여서 배포
입니다.
위 과정을 조금 더 자세히 소개해드리겠습니다.
구현과정
각종 패키지 다운로드
-
- pip install streamlit
- pip install matplotlib
- pip install yfinance
- pip install pandas
파이썬 코드 작성
from tracemalloc import start
from matplotlib import ticker
import streamlit as st
import yfinance as yf
import pandas as pd
st.title('반도체 주식 데이터 Dashboard')
# tickers =('TSLA','AAPL','MSFT','BTC-USD','ETH-USD','005930.KS')
tickers ={
'SK hynix':'000660.KS',
'Samsung Electronics':'005930.KS',
'NVIDIA Corporation' :'NVDA',
'QUALCOMM':'QCOM'
}
reversed_ticker = dict(map(reversed,tickers.items()))
dropdown = st.multiselect('select',tickers.keys())
start = st.date_input('Start', value=pd.to_datetime('2019-01-01'))
end = st.date_input('End',value=pd.to_datetime('today'))
if len(dropdown) > 0:
for i in dropdown:
df = yf.download(tickers[i],start,end)['Adj Close']
st.title(reversed_ticker[tickers[i]])
st.line_chart(df)
Github 원격저장소에 Push
그리고 파일 구성을 확인해 주세요~
스트림릿에 배포!
sing in을 한후
From existing repo 클릭~
Past GitHub URL 클릭~
github에 올라와 있는 실행.py 파일 url을 복사 붙여 넣기 합니다.~
ex) https://github.com/sw-woo/finance-dashboard/blob/master/app.py
URL을 잘보면 맨마지막 실행하는 파이썬 파일 위치까지 있는 URL을 붙여 넣어 주세요!
완료가 되었다면 아래 처럼 oven이 구워지고 완성된 화면이 나오게 됩니다.
마무리 하며
streamlit을 데이터 프로젝트를 조금더 쉽고 빠르게 웹으로 프로토타이핑 하여 포트폴리오 및 발표 자료로 사용하기에는 좋을듯합니다.
깃허브 링크: https://github.com/sw-woo/finance-dashboard/blob/master/app.py
streamlit 공식 사이트: https://streamlit.io/
반도체 주식 dashboard: https://sw-woo-finance-dashboard-app-kb92qs.streamlitapp.com/