日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

datatable使用_使用Streamlit从简单的Python脚本创建交互式WebApp

發(fā)布時(shí)間:2023/12/3 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 datatable使用_使用Streamlit从简单的Python脚本创建交互式WebApp 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如果有人告訴您可以使用150-200行代碼創(chuàng)建交互式Web應(yīng)用程序,該怎么辦? 有趣的權(quán)利。 Streamlit為您提供了使用簡(jiǎn)單的python腳本和一些streamlit調(diào)用來(lái)創(chuàng)建漂亮的Web應(yīng)用程序的相同機(jī)會(huì)。

Streamlit是一個(gè)開(kāi)放源代碼框架,用于以最快的方式創(chuàng)建數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)應(yīng)用程序以進(jìn)行數(shù)據(jù)探索。 我最喜歡streamlit的地方是它為您提供了實(shí)時(shí)編碼體驗(yàn)。 您可以啟動(dòng)流式應(yīng)用程序,并且每次保存時(shí),您都會(huì)看到代碼同時(shí)反映在瀏覽器中。 整齊吧!

在這篇文章中,我們將為印度的Covid-19 Impact Analysis構(gòu)建一個(gè)Streamlit Web應(yīng)用程序。 我已經(jīng)創(chuàng)建了完整的網(wǎng)站,您可以在這里瀏覽它-www.corona-updates.in。 我們不會(huì)深入研究Pandas,但是本教程將更側(cè)重于Streamlit。 我們將研究一些Pandas庫(kù)函數(shù),但將深入探討Streamlit。 因此,讓我們開(kāi)始吧!

要求:

· Streamlit

· Pandas

· plotly.express

使用pip安裝streamlit:

pip install streamlit

安裝完成后,您可以通過(guò)運(yùn)行示例應(yīng)用程序?qū)ζ溥M(jìn)行測(cè)試。

streamlit hello

您可以使用以下命令運(yùn)行名為app.py的流式Web應(yīng)用程序:

streamlit run app.py

精通Streamlit之后,現(xiàn)在就創(chuàng)建我們的網(wǎng)絡(luò)應(yīng)用。 創(chuàng)建一個(gè)python文件app.py,然后導(dǎo)入您需要?jiǎng)?chuàng)建的庫(kù)和python腳本以及streamlit。

1.導(dǎo)入數(shù)據(jù)庫(kù)

我們正在使用以下驚人的API導(dǎo)入數(shù)據(jù)庫(kù),以了解Covid-19印度的影響:https://api.covid19india.org。

在這里,在load_data()方法中,我們正在使用pandas庫(kù)讀取.csv文件,并且通過(guò)緩存數(shù)據(jù)來(lái)提高代碼效率。 但是隨著Covid-19的數(shù)據(jù)不斷變化,我們每5分鐘或最多20個(gè)條目清除一次緩存。 如果您有一個(gè)不經(jīng)常更改數(shù)據(jù)的用例,則只需使用@ st.cache(persist = True)

2.創(chuàng)建標(biāo)題,文本內(nèi)容和側(cè)邊菜單

Streamlit支持markdown,因此在我們的網(wǎng)絡(luò)應(yīng)用中使用不同的字體大小非常容易。 它還通過(guò)傳遞參數(shù)來(lái)支持HTML:unsafe_allow_html =對(duì)st.markdown()調(diào)用正確,因此,我們可以按需要的方式設(shè)置文本樣式。

由于我們使用HTML將自定義顏色設(shè)為藍(lán)色,因此說(shuō)明顯示為藍(lán)色。 我們也可以使用標(biāo)頭和子標(biāo)頭,就像我們將st.title()用于不同的標(biāo)題一樣。 或者我們可以為此使用markdown。

//will also give the same result as st.title()st.markdown("# Covid-19 Impact in India")st.sidebar.title('Select the parameters to analyze Covid-19 situation')

3.插入復(fù)選框,單選按鈕和滑塊

st.sidebar.checkbox("Show Analysis by State", True, key=1)select = st.sidebar.selectbox('Select a State',data['State'])#get the state selected in the selectboxstate_data = data[data['State'] == select]select_status = st.sidebar.radio("Covid-19 patient's status", ('Confirmed','Active', 'Recovered', 'Deceased'))

· 復(fù)選框-復(fù)選框中的第一個(gè)參數(shù)定義復(fù)選框的標(biāo)題,第二個(gè)參數(shù)定義True或False,即默認(rèn)情況下是否選中它,第三個(gè)參數(shù)定義復(fù)選框的唯一鍵。

· 選擇框—此選擇框包含所有印第安州。 第一個(gè)參數(shù)是選擇框的標(biāo)題,第二個(gè)參數(shù)定義要在選擇框中填充的值的列表。 在這里,第二個(gè)參數(shù)是我們之前加載的.csv文件中的列名"州"。 您可以自己打開(kāi)和瀏覽表格。 在下一行中,我們僅從選擇框中獲取state_data中針對(duì)所選狀態(tài)的數(shù)據(jù)條目。 我們也可以在此處傳遞關(guān)鍵參數(shù)。

· 單選按鈕—僅供您參考,我們目前尚未真正在Web應(yīng)用程序中使用它。 與往常一樣,第一個(gè)參數(shù)是廣播組的標(biāo)題,第二個(gè)參數(shù)接受選項(xiàng)的元組。 我們也可以在此處傳遞關(guān)鍵參數(shù)。

Plotting a graph

def get_total_dataframe(dataset): total_dataframe = pd.DataFrame({ 'Status':['Confirmed', 'Active', 'Recovered', 'Deaths'], 'Number of cases':(dataset.iloc[0]['Confirmed'], dataset.iloc[0]['Active'], dataset.iloc[0]['Recovered'], dataset.iloc[0]['Deaths'])}) return total_dataframestate_total = get_total_dataframe(state_data)if st.sidebar.checkbox("Show Analysis by State", True, key=2): st.markdown("## **State level analysis**") st.markdown("### Overall Confirmed, Active, Recovered and " + "Deceased cases in %s yet" % (select)) if not st.checkbox('Hide Graph', False, key=1): state_total_graph = px.bar( state_total, x='Status', y='Number of cases', labels={'Number of cases':'Number of cases in %s' % (select)}, color='Status') st.plotly_chart(state_total_graph)

方法get_total_dataframe()用于獲取數(shù)據(jù)框,以繪制選定狀態(tài)的圖。 dataset.iloc [0] [Confirmed]將返回" Confirmed"列的第一項(xiàng),并且由于我們僅傳遞所選狀態(tài)的數(shù)據(jù),因此在" Confirmed"," Recovered"," Active"和" Deceased"列中將只有一個(gè)條目。 (檢出.csv文件)

未選中"按狀態(tài)顯示分析"復(fù)選框,我們不會(huì)在主屏幕上看到"狀態(tài)級(jí)別分析"部分。 同樣,如果選中了"隱藏圖形"復(fù)選框,我們將不會(huì)看到圖形。

要繪制圖形,我們將使用plotly.express庫(kù)的bar方法。 第一個(gè)參數(shù)是我們要繪制的數(shù)據(jù)框,第二個(gè)參數(shù)是x軸的列,第三個(gè)參數(shù)是y軸的列,如果要更改列名,則labels參數(shù)是可選的 對(duì)于圖形和顏色參數(shù),此處是根據(jù)數(shù)據(jù)框中的"狀態(tài)"列對(duì)圖形進(jìn)行顏色編碼。

最后,為了顯示該圖在我們的Web應(yīng)用程序中,我們使用st.plotly_chart()方法。 我們也可以使用st.write()來(lái)顯示圖形。

5.顯示數(shù)據(jù)框或表

· st.dataframe():第一張圖片是st.dataframe()的結(jié)果,用于第二張圖片中的同一數(shù)據(jù)集。 您還可以使用內(nèi)部調(diào)用st.datframe()的st.write()。

· st.table():我們使用st.table()獲得了第二張圖片中的表格。 這顯示了數(shù)據(jù)框中的所有數(shù)據(jù),而沒(méi)有任何滾動(dòng)。

def get_table(): datatable = data[['State', 'Confirmed', 'Active', 'Recovered', 'Deaths']].sort_values(by=['Confirmed'], ascending=False) datatable = datatable[datatable['State'] != 'State Unassigned'] return datatabledatatable = get_table()st.markdown("### Covid-19 cases in India")st.markdown("The following table gives you a real-time analysis of the confirmed, active, recovered and deceased cases of Covid-19 pertaining to each state in India.")st.dataframe(datatable) # will display the dataframest.table(datatable)# will display the table

在get_table()中,我們通過(guò)從選擇框獲得的狀態(tài)的最高"已確認(rèn)"情況獲得排序后的數(shù)據(jù)框。 我們還會(huì)從數(shù)據(jù)集中刪除狀態(tài)為"未分配狀態(tài)"的行。

而已! 是的,就是這么簡(jiǎn)單。 :)

您已經(jīng)準(zhǔn)備創(chuàng)建自己的Web應(yīng)用程序并嘗試使用Streamlit。 這篇文章是關(guān)于如何使用簡(jiǎn)單的Python腳本創(chuàng)建Streamlit應(yīng)用程序的,我希望您喜歡它。 我創(chuàng)建了另一本有關(guān)如何使用AWS EC2部署此Web應(yīng)用程序的詳細(xì)教程。 請(qǐng)檢查一下,讓我知道您的意見(jiàn)。

我已經(jīng)為印度的Covid-19 Impact創(chuàng)建了完整的Streamlit Web應(yīng)用程序,并使用AWS EC2進(jìn)行了部署。 您可以在這里查看它-www.corona-updates.in。 請(qǐng)?jiān)谠u(píng)論部分提供您的寶貴反饋。 謝謝 :)

(本文翻譯自Nishtha Goswami的文章《Using Streamlit to create interactive WebApps from simple Python scripts》,參考:https://medium.com/swlh/using-streamlit-to-create-interactive-webapps-from-simple-python-scripts-f78b08e486e7)

總結(jié)

以上是生活随笔為你收集整理的datatable使用_使用Streamlit从简单的Python脚本创建交互式WebApp的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。