在本文中,我將向你展示如何使用streamlit python庫快速構建一個簡單的數據驅動web應用程式,只需幾行代碼。
作為一名數據科學家或機器學習工程師,能夠部署我們的數據科學項目是很重要的。傳統的使用Django或Flask這樣的框架來部署機器學習模型可能是一項艱巨和/或耗時的任務。
我們正在構建的股票網絡應用程式概述
今天,我們將構建一個簡單的web應用程式來顯示股票價格和成交量。這將需要使用兩個Python庫,即streamlit和yfinance。
從概念上講,該應用程式將從雅虎檢索歷史市場數據,從yfinance庫得到資金信息。此數據保存到dataframe中,streamlit將使用此數據作為輸入參數,以便將其顯示為折線圖。
安裝必備庫
在本教程中,我們將使用兩個需要安裝的Python庫。其中包括streamlit和yfinance。你可以通過下面的pip install命令輕鬆完成此操作,以安裝streamlit:
pip install streamlit對yfinance也執行相同的操作,如下所示:
pip install yfinanceweb應用程式的代碼
讓我們看看我們今天正在構建的web應用程式的代碼。你會發現只有不到20行代碼(也就是說,如果不計算注釋的話,那就把代碼縮減到14行,其中3行是出於美觀目的的空行)。
import yfinance as yfimport streamlit as stst.write("""# 簡單的股票價格AppShown 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 。 第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.pyYou can now view your Streamlit app in your browser.Local URL: http://localhost:8501Network URL: http://10.0.0.11:8501在短時間內,將彈出一個internet瀏覽器窗口,並將你引導到已創建的web應用程式http://localhost:8501,如下所示。
你已經用Python創建了第一個web應用程式!
定製web應用程式
好吧,你可能想定製這個web應用程式的界面,請看如下代碼。
import yfinance as yfimport streamlit as stst.write("""# Simple Stock Price AppShown 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