首页 > 其他分享 >『玩转Streamlit』--数据展示组件

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

时间:2024-11-13 13:10:07浏览次数:1  
标签:展示 -- dataframe st df 玩转 table 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 显示相同的用户信息数据集,但表格样式会更加简洁,功能相对较少(例如,不支持搜索)。

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将所有数据平铺下去展示,加装时间也明显长很多。

# 创建大数据集
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 则更适合简单、快速的表格展示。

标签:展示,--,dataframe,st,df,玩转,table,Streamlit,数据
From: https://www.cnblogs.com/wang_yb/p/18543687

相关文章

  • Windows 下安装miniconda 虚拟python环境,搭配 VS Code
    miniconda下载地址https://docs.anaconda.com/miniconda/miniconda-install/miniconda仓库:https://repo.anaconda.com/miniconda/可以按照官方文档校验哈希值,本次在Windows安装,不设置环境变量。从Anacondaprompt启动。2.配置国内源查看源设置condaconfig--show-so......
  • 这个流程基本涵盖了墙面装修的整个过程,抹腻子、挂网、打磨和上漆都是为了确保墙面平整
    以下是一个更加完整和详细的墙面装修流程表格,涵盖了整个墙面装修的各个环节,从前期准备到最终收尾的每一个细节:阶段步骤具体操作注意事项1.墙面准备阶段清理墙面-用吸尘器、扫把或湿布清理墙面上的灰尘、油渍、污渍。-清洁工作需要彻底,确保无杂质或油渍残留。......
  • 【JetBrains Rider 2024软件下载与安装教程】
    1、安装包Rider2024:链接:https://pan.quark.cn/s/f3b3360dccc0提取码:Z8gARider-2023.3.2:链接:https://pan.quark.cn/s/82b63a1e0df3提取码:XdA82、安装教程(建议关闭杀毒软件)1)       双击下载安装包exe文件安装,弹窗安装对话框  2)       点击下一步......
  • 计算机网络 - 运输层 - 学习笔记
    摘要:本文原创,转载请注明地址https://www.cnblogs.com/baokang/p/185432591、运输层是什么,起什么作用定义:运输层是计算机网络体系结构中关键层次之一,它属于面向通信部分的最高层,同时也是用户功能中的最低层。只有主机的协议栈中才有运输层,而网络核心部分中的路由器在转发分组......
  • 在线性坐标系中绘制对数函数图象
    本文记述了用Matplotlib在线性坐标系中绘制对数函数图象的例子。代码主体内容如下:...defmain():fig,ax=plt.subplots(figsize=(8,8))#1ax=configure_axes(ax,'LogarithmicFunction',8,3,1,0.25,1,0.25)#2x=np.linspace(......
  • 电线、硬铜线和铜丝线是常见的电气连接和传导材料,它们在结构、用途、性能等方面有所不
    硬铜线与铜丝线的对比表格:特点硬铜线铜丝线材质纯铜(未经过退火处理)由多根细铜丝编织而成柔韧性较差,硬且不容易弯曲较好,具有较好的弯曲能力导电性良好,铜的导电性优异良好,铜的导电性优异抗拉强度高,适合高负载和长距离传输较低,柔性较好但抗拉强度差耐......
  • 洛谷P1784.数独
    P1784数独思路这个题目最麻烦的是如何判断我们需要判断每一行,每一列,每一个九宫格这里有个小技巧,把每一行,每一列,每一个九宫格哪个数有没有被用过用数组存起来哪个数字属于哪个九宫格也可以先先存起来intid[10][10]={{0,0,0,0,0,0,0,0,0,0},{0,1,1,1,2,......
  • 关于电线平方数(截面积)与功率之间关系的对比表格。该表格主要基于电流承载能力(导线的截
    关于电线平方数(截面积)与功率之间关系的对比表格。该表格主要基于电流承载能力(导线的截面积)与相应的功率传输能力。电线截面积(mm²)额定电流(A)适用功率(W) (220V电压)适用功率(W) (380V电压)0.5mm²5A1100W1900W0.75mm²8A1760W30......
  • SQL NULL 值处理:深入理解与最佳实践
    SQLNULL值处理:深入理解与最佳实践在SQL数据库中,NULL是一个特殊的标记,用于表示“未知”或“不存在”的值。它与空字符串('')和零(0)有本质区别,具有独特的运算规则和处理机制。本文将深入探讨NULL值的处理规则,并通过具体示例说明其影响,最后提供最佳实践建议。1.NULL值基础概......
  • 抹水泥挂网是墙面装修和修复中常见的工艺,主要用于增强水泥抹灰层的附着力和抗裂性,尤其
    抹水泥挂网是墙面装修和修复中常见的工艺,主要用于增强水泥抹灰层的附着力和抗裂性,尤其适用于旧墙面或不平整的基础墙面。为了避免空鼓和脱落,在抹水泥时钉上方格网是一个有效的措施,下面是一些详细的步骤和说明:1. 为什么要钉方格网?方格网(通常为钢丝网或玻璃纤维网)在抹水泥时起到......