
本文约4300字,建议阅读10分钟。
本文阐述如何使用StreamLit创建支持数据科学项目的应用程序。

Python之禅:简胜于繁。Streamlight便是诠释它最好的注脚,使创建web应用程序从未如此简单。
pip install streamlit
streamlit hello


Streamlit Hello World
import streamlit as stx = st.slider('x')st.write(x, 'squared is', x * x)
streamlit run helloworld.py

st.slider 小部件命令,实现滑动滑块以更改Web应用程序的输出的效果;
st.write 多功能命令,它居然能利用图表、数据和简单的文本写出任何东西。稍后会详述该功能。
1. 滑块
streamlit.slider(label, min_value=None, max_value=None, value=None,step=None, format=None)
2. 文本输入
import streamlit as sturl =st.text_input('Enter URL')st.write('The Entered URL is', url)

3. 复选框
import streamlit as stimport pandas as pdimport numpy as npdf = pd.read_csv("football_data.csv")if st.checkbox('Show dataframe'):st.write(df)
一个简单的复选框小部件应用程序
4. 选择框
import streamlit as stimport pandas as pdimport numpy as npdf = pd.read_csv("football_data.csv")option = st.selectbox('Which Club do you like best?',df['Club'].unique())'You selected: ', option
简单的下拉框/选择框小部件应用程序
5. 多选择
import streamlit as stimport pandas as pdimport numpy as npdf = pd.read_csv("football_data.csv")options = st.multiselect('What are your favorite clubs?',df['Club'].unique())st.write('You selected:', options)

import streamlit as stimport pandas as pdimport numpy as npdf = pd.read_csv("football_data.csv")clubs = st.multiselect('Show Player for clubs?', df['Club'].unique())nationalities = st.multiselect('Show Player from Nationalities?', df['Nationality'].unique())# Filter dataframenew_df = df[(df['Club'].isin(clubs)) & (df['Nationality'].isin(nationalities))]# write dataframe to screenst.write(new_df)
综合使用多个小部件
import streamlit as stimport pandas as pdimport numpy as npimport plotly_express as pxdf = pd.read_csv("football_data.csv")clubs = st.multiselect('Show Player for clubs?', df['Club'].unique())nationalities = st.multiselect('Show Player from Nationalities?', df['Nationality'].unique())new_df = df[(df['Club'].isin(clubs)) & (df['Nationality'].isin(nationalities))]st.write(new_df)# create figure using plotly expressfig = px.scatter(new_df, x ='Overall',y='Age',color='Name')# Plot!st.plotly_chart(fig)Adding charts

添加图表
1. 缓存
import streamlit as stimport pandas as pdimport numpy as npimport plotly_express as pxdf = st.cache(pd.read_csv)("football_data.csv"
@st.cachedef complex_func(a,b):DO SOMETHING COMPLEX# Won't run again and again.complex_func(a,b)
2. 工具条
import streamlit as stimport pandas as pdimport numpy as npimport plotly_express as pxdf = st.cache(pd.read_csv)("football_data.csv")clubs = st.sidebar.multiselect('Show Player for clubs?', df['Club'].unique())nationalities = st.sidebar.multiselect('Show Player from Nationalities?', df['Nationality'].unique())new_df = df[(df['Club'].isin(clubs)) & (df['Nationality'].isin(nationalities))]st.write(new_df)# Create distplot with custom bin_sizefig = px.scatter(new_df, x ='Overall',y='Age',color='Name')# Plot!st.plotly_chart(fig)Move widgets to the sidebar

3.Markdown?(一种纯文本格式的标记语言)
import streamlit as stimport pandas as pdimport numpy as npimport plotly_express as px'''# Club and Nationality AppThis very simple webapp allows you to select and visualize players from certain clubs and certain nationalities.'''df = st.cache(pd.read_csv)("football_data.csv")clubs = st.sidebar.multiselect('Show Player for clubs?', df['Club'].unique())nationalities = st.sidebar.multiselect('Show Player from Nationalities?', df['Nationality'].unique())new_df = df[(df['Club'].isin(clubs)) & (df['Nationality'].isin(nationalities))]st.write(new_df)# Create distplot with custom bin_sizefig = px.scatter(new_df, x ='Overall',y='Age',color='Name')'''### Here is a simple chart between player age and overall'''st.plotly_chart(fig)

结论

作者简介:
Rahuil Agarwal,Walmart实验室的数据科学家。
原文标题:
How to Write Web Apps Using Simple Python for Data Scientists
原文链接:
https://www.kdnuggets.com/2019/10/write-web-apps-using-simple-python-data-scientists.html
编辑:王菁
校对:龚力
译者简介
陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。业余时间喜爱翻译创作,翻译作品主要有:IEC-ISO 7816、伊拉克石油工程项目、新财税主义宣言等等,其中中译英作品“新财税主义宣言”在GLOBAL TIMES正式发表。能够利用业余时间加入到THU 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步。
翻译组招募信息
工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。
你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。
其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。
点击文末“阅读原文”加入数据派团队~
转载须知
如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:datapi),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。
发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”拥抱组织





