作者|Chanin Nantasenamat
編譯|VK
來源|Towards Data Science
在本文中,我將向你展示如何使用streamlit python庫快速構建一個簡單的數據驅動web應用程序,只需幾行代碼。
作爲一名數據科學家或機器學習工程師,能夠部署我們的數據科學項目是很重要的。傳統的使用Django或Flask這樣的框架來部署機器學習模型可能是一項艱鉅和/或耗時的任務。
我們正在構建的股票網絡應用程序概述
今天,我們將構建一個簡單的web應用程序來顯示股票價格和成交量。這將需要使用兩個Python庫,即streamlit和yfinance。
從概念上講,該應用程序將從雅虎檢索歷史市場數據,從yfinance庫得到資金信息。此數據保存到dataframe中,streamlit將使用此數據作爲輸入參數,以便將其顯示爲折線圖。
安裝必備庫
在本教程中,我們將使用兩個需要安裝的Python庫。其中包括streamlit和yfinance。你可以通過下面的pip install命令輕鬆完成此操作,以安裝streamlit:
pip install streamlit
對yfinance也執行相同的操作,如下所示:
pip install yfinance
web應用程序的代碼
讓我們看看我們今天正在構建的web應用程序的代碼。你會發現只有不到20行代碼(也就是說,如果不計算註釋的話,那就把代碼縮減到14行,其中3行是出於美觀目的的空行)。
import yfinance as yf
import streamlit as st
st.write("""
# 簡單的股票價格App
Shown are the stock closing price and volume of Google!
""")
# https://towardsdatascience.com/how-to-get-stock-data-using-python-c0de1df17e75
# 定義股票代碼
tickerSymbol = 'GOOGL'
# 獲取這個股票的數據
tickerData = yf.Ticker(tickerSymbol)
# 爲這個股票得到歷史價格
tickerDf = tickerData.history(period='1d', start='2010-5-31', end='2020-5-31')
st.line_chart(tickerDf.Close)
st.line_chart(tickerDf.Volume)
代碼的逐行解釋
讓我們花點時間來理解上面的代碼。
- 1和2行
導入yfinance並賦其yf的別名,導入streamlit並賦其st的別名。
- 4-7行
使用st.write()函數打印輸出文本。這些打印出來的文本是用markdown格式寫的。
-
9-16行
使用yfinance庫從雅虎檢索歷史市場數據。
- 第11行-將股票代碼定義爲GOOGL。
- 第13行-使用yf.Ticker()函數,顧名思義,允許訪問股票代碼數據。需要注意的是,tickerData是一個tickerData對象,如果我們將tickerData作爲一個命令運行,我們將得到以下輸出yfinance.Ticker object <GOOGL>。
- 第15行-創建tickerDf數據幀並定義日期範圍(從2010年5月31日到2020年5月31日)和時間段(1天)。
- 18-19行
使用st.line_chart()函數繪製折線圖(使用第15行定義Close 和Volume 列的收盤價)。
運行web應用程序
將代碼保存到名爲我的app.py,啓動命令提示符(或Microsoft Windows中的Power Shell)並運行以下命令:
streamlit run myapp.py
接下來,我們將看到以下消息:
> streamlit run myapp.py
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501
Network URL: http://10.0.0.11:8501
在短時間內,將彈出一個internet瀏覽器窗口,並將你引導到已創建的web應用程序http://localhost:8501,如下所示。
你已經用Python創建了第一個web應用程序!
定製web應用程序
好吧,你可能想定製這個web應用程序的界面,請看如下代碼。
import yfinance as yf
import streamlit as st
st.write("""
# Simple Stock Price App
Shown are the stock **closing price** and ***volume*** of Google!
""")
# https://towardsdatascience.com/how-to-get-stock-data-using-python-c0de1df17e75
# 定義股票代碼
tickerSymbol = 'GOOGL'
# 獲取這個股票的數據
tickerData = yf.Ticker(tickerSymbol)
# 爲這個股票得到歷史價格
tickerDf = tickerData.history(period='1d', start='2010-5-31', end='2020-5-31')
st.write("""
## Closing Price
""")
st.line_chart(tickerDf.Close)
st.write("""
## Volume
""")
讓我們花點時間來理解上面的代碼。
- 第6行
請注意,我們將“closing price”加粗。還請注意,我們通過在單詞前面和後面使用三個星號使單詞“volume”既粗體又斜體。
- 18-20行和22-25行
在這裏,我們在收盤價和成交量圖之前添加了一個markdown格式的標題。
現在我們有了一個更新的網絡應用程序。
原文鏈接:https://towardsdatascience.com/how-to-build-a-data-science-web-app-in-python-61d1bed65020
歡迎關注磐創AI博客站:
http://panchuang.net/
sklearn機器學習中文官方文檔:
http://sklearn123.com/
歡迎關注磐創博客資源彙總站:
http://docs.panchuang.net/