在数据科学的世界里,我们常遇到一个尴尬局面:模型训练好了,分析结果也很棒,但怎么展示给团队或客户看?
总不能每次都给对方发Jupyter Notebook吧。这时候,有个叫Streamlit的Python库就派上了用场。
它专为数据应用而生,能让你像写普通Python脚本一样,轻松做出美观、可互动的Web应用,特别适合快速原型和内部工具开发。
📊打地基——创建最简单的展示页面
一切从显示标题和文本开始。这段代码虽短,但却是每个Streamlit应用的起点。导入库后,只需调用st.title和st.write,页面就有了骨架。st.write是万能函数,能渲染文字、表格甚至图表。
import streamlit as st
st.title('我的第一个数据仪表盘')
st.write('欢迎!这里会显示数据分析的关键结果。')
页面顶部出现大号主标题。
下方紧接着一段普通文本,作为欢迎语。
没有多余的HTML或CSS干扰,干净利落。
📈 加互动——让用户自己选数据范围
很多时候,我们想让用户自由筛选感兴趣的数据区间。Streamlit的滑块组件st.slider就能做到。
它会自动生成一个滑动条,用户拖拽时,程序就能实时拿到最新值。下面的代码演示如何接收用户输入的数字,并立刻在页面上展示出来。
number = st.slider('选择一个数字', 0, 100, 50)
st.write('你当前选中的数字是:', number)
页面出现一个滑动条,范围0到100,默认停在50。
滑动条旁边实时显示当前数值。
用户每拖动一次,下面的文字就会自动更新。
📋 小标题三:秀结果——用DataFrame展示数据样貌
数据分析绕不开表格数据。Streamlit对Pandas的DataFrame有天然支持,st.dataframe不仅能显示表格,还自带排序、列宽调整等功能。
下面构造一个简单的销售记录表,并把它渲染到页面上,整个过程不超过三行核心逻辑。
import pandas as pd
sales_data = pd.DataFrame({'产品': ['A', 'B'], '销量': [150, 230]})
st.dataframe(sales_data)
浏览器中呈现一张整洁的表格,包含“产品”和“销量”两列。
第一行:A产品销量150。
第二行:B产品销量230。
表头支持点击排序,体验接近Excel。
⚖️ 优势对比分析
相比Flask或Django需要手动处理前后端交互,Streamlit的优势是极低的代码量和无需写HTML/JS。
但它牺牲了灵活的页面布局和细粒度控制。建议:适合快速原型或内部数据工具;生产级、高定制化的公开站点可选传统框架。
💡 结语与互动
Streamlit让数据应用的开发门槛降到了新低。从标题、滑块到表格展示,每一块都只需要一行Python代码。
如果你也在为如何呈现数据分析结果而发愁,不妨上手试试。欢迎在评论区分享你用Streamlit做过的小工具,或者想用它实现什么功能~