教程

Streamlit数据应用开发实战

| 2025-11-25 18:44 | 2458 浏览
# Streamlit数据应用开发实战 ## 什么是Streamlit? Streamlit是一个Python框架,专为数据科学家和机器学习工程师设计,可以快速构建数据应用、仪表板和AI应用。 ## 安装 ```bash pip install streamlit ``` ## 快速开始 ```python import streamlit as st st.title("我的第一个Streamlit应用") st.write("欢迎使用Streamlit!") # 运行: streamlit run app.py ``` ## 常用组件 ### 文本显示 ```python st.title("标题") st.header("二级标题") st.subheader("三级标题") st.markdown("**Markdown文本**") st.code("print('hello')", language="python") st.latex(r"E=mc^2") ``` ### 输入组件 ```python name = st.text_input("姓名") age = st.number_input("年龄", min_value=0, max_value=150) level = st.slider("等级", 1, 100) option = st.selectbox("选择", ["A", "B", "C"]) file = st.file_uploader("上传文件") ``` ### 数据展示 ```python import pandas as pd df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]}) st.dataframe(df) # 交互式表格 st.table(df) # 静态表格 st.json({"key": "value"}) ``` ### 图表 ```python import matplotlib.pyplot as plt import altair as alt # Matplotlib fig, ax = plt.subplots() ax.plot([1, 2, 3], [1, 4, 9]) st.pyplot(fig) # Streamlit原生图表 st.line_chart(df) st.bar_chart(df) st.area_chart(df) # Altair chart = alt.Chart(df).mark_line().encode(x="A", y="B") st.altair_chart(chart) ``` ## 布局 ```python # 列布局 col1, col2 = st.columns(2) with col1: st.write("左侧内容") with col2: st.write("右侧内容") # 侧边栏 with st.sidebar: st.write("侧边栏内容") page = st.selectbox("页面", ["首页", "设置"]) # 选项卡 tab1, tab2 = st.tabs(["数据", "图表"]) with tab1: st.dataframe(df) with tab2: st.line_chart(df) ``` ## 状态管理 ```python # Session State if "count" not in st.session_state: st.session_state.count = 0 if st.button("点击"): st.session_state.count += 1 st.write(f"点击次数: {st.session_state.count}") ``` ## 缓存优化 ```python @st.cache_data def load_data(): return pd.read_csv("large_data.csv") @st.cache_resource def load_model(): return load_heavy_model() ``` ## AI聊天应用示例 ```python import streamlit as st from openai import OpenAI st.title("🤖 AI聊天助手") client = OpenAI() if "messages" not in st.session_state: st.session_state.messages = [] for message in st.session_state.messages: with st.chat_message(message["role"]): st.write(message["content"]) if prompt := st.chat_input("说些什么..."): st.session_state.messages.append({"role": "user", "content": prompt}) with st.chat_message("user"): st.write(prompt) with st.chat_message("assistant"): response = client.chat.completions.create( model="gpt-3.5-turbo", messages=st.session_state.messages, stream=True ) full_response = st.write_stream(response) st.session_state.messages.append({"role": "assistant", "content": full_response}) ``` ## 部署 Streamlit Cloud免费托管,连接GitHub即可自动部署。 ## 总结 Streamlit是构建数据应用和AI Demo的绝佳选择,特别适合需要处理和展示数据的场景。
Streamlit数据应用仪表板Python可视化
189 点赞 31 评论

评论 (0)

登录后发表评论。

暂无评论。成为第一个评论的人吧!