『玩转Streamlit』--数据展示组件

数据展示组件在Streamlit各类组件中占据了至关重要的地位,

它的核心功能是以直观、易于理解的方式展示数据。

本次介绍的数据展示组件st.dataframest.table,能够将复杂的数据集以表格、图表等形式清晰地呈现出来,使得用户能够快速把握数据的整体情况和细节特征。

1. st.dataframe

st.dataframe以易读且美观的方式展示pandasDataFrame

无论是处理小型数据集还是庞大的数据表,st.dataframe都能轻而易举展示数据。

st.dataframe适用于需要在Web应用中展示复杂数据集的场景。

首先,它能够自动适应屏幕宽度,并支持水平或垂直滚动,确保用户能方便地浏览整个数据集。

此外,st.dataframe还支持对数据进行排序、筛选和搜索等操作,增强了数据的可读性和交互性。

2. st.table

st.table也是用于在Web应用中显示表格数据,

它可以显示交互式表格,并提供多种自定义设置来满足各类需求。

st.dataframe相比,st.table更适用于当数据集不是特别庞大且需要保持清晰可读性的场景。

它允许用户通过简单的配置来调整表格的显示方式,如列宽、行高等。

3. 两者区别

这两个组件都用于展示数据,都支持多种类型的数据对象作为输入,比如pandas.DataFramenumpy.ndarrayIterabledict等等。

但是在交互性显示方式功能丰富度上面是有区别的,

下面通过一个示例来演示两者在使用上的区别,

先使用 st.dataframe 显示一个包含用户信息的静态DataFrame,如姓名、年龄和邮箱。

DataFrame将显示为可滚动、可排序和可搜索的表格。还可以将数据保存为CSV文件。

同样使用 st.table 显示相同的用户信息数据集,但表格样式会更加简洁,功能相对较少(例如,不支持搜索)。

python 复制代码
import streamlit as st
import pandas as pd

# 创建静态数据集
data = {
    "姓名": ["张三", "李四", "王五"],
    "年龄": [25, 30, 35],
    "邮箱": ["[email protected]", "[email protected]", "[email protected]"],
}
df = pd.DataFrame(data)

st.header("st.dataframe")
# 使用st.dataframe显示
st.dataframe(df)

st.header("st.table")
# 使用st.table显示
st.table(df)

除了功能比较丰富以外,st.dataframe对于展示千上万行的大型数据集时,可以调整其高度和宽度,可以搜索过滤和排序,因此更方便遇查看数据。

st.table由于功能相对简单,会将所有数据直接展示出来,浏览和分析大量数据不那么方便。

比如,下面模拟了一个一万条数据的场景。

st.dataframe展示时,可以固定一块位置;而st.table将所有数据平铺下去展示,加装时间也明显长很多。

python 复制代码
# 创建大数据集
np.random.seed(0)
data = {
    "ID": np.arange(1, 10001),
    "值1": np.random.rand(10000),
    "值2": np.random.rand(10000),
    # ... 可以添加更多列
}
df = pd.DataFrame(data)

st.header("st.dataframe", width=400, height=600)
# 使用st.dataframe显示大数据集
st.dataframe(df)

st.header("st.table")
# 使用st.table显示大数据集(可能性能不佳)
# 对于大数据集,st.table可能不是最佳选择
st.table(df)

4. 总结

总得来看,st.dataframe 更适合需要高级功能和动态交互的场景,

st.table 则更适合简单、快速的表格展示。

相关推荐
Amo Xiang9 分钟前
《100天精通Python——基础篇 2025 第5天:巩固核心知识,选择题实战演练基础语法》
python·选择题·基础语法
机器学习之心19 分钟前
机器学习用于算法交易(Matlab实现)
算法·机器学习·matlab
江梦寻19 分钟前
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
开发语言·后端·python·macos·架构·策略模式
霖檬ing22 分钟前
Python——MySQL远程控制
开发语言·python·mysql
miniwa25 分钟前
Python编程精进:CSV 模块
python
老胖闲聊7 小时前
Python Copilot【代码辅助工具】 简介
开发语言·python·copilot
Blossom.1187 小时前
使用Python和Scikit-Learn实现机器学习模型调优
开发语言·人工智能·python·深度学习·目标检测·机器学习·scikit-learn
曹勖之8 小时前
基于ROS2,撰写python脚本,根据给定的舵-桨动力学模型实现动力学更新
开发语言·python·机器人·ros2
lyaihao9 小时前
使用python实现奔跑的线条效果
python·绘图
郄堃Deep Traffic9 小时前
机器学习+城市规划第十四期:利用半参数地理加权回归来实现区域带宽不同的规划任务
人工智能·机器学习·回归·城市规划