栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基于streamlit的表格展示-完美解决方案

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于streamlit的表格展示-完美解决方案

问题

用streamlit开发web app非常实用。但是streamlit的表格展示非常不友好,只有两个简单的接口函数:st.table(df)和st.dataframe(df)。

对于字段稍微比较多的dataframe显示效果相当不友好。

st.table(df)会展开所有字段,st.dataframe(df)会压缩到一起,字段名称看不清楚。

主要局限为:

1. 不能控制每个列的宽度。虽然接口里有width和height两个参数,但是亲测不太管用。

2. 行数多的时候,会一直在页面上往下排列。

以下是几个对比:

可以看到如果混杂着中英文或者数字,中文会变成一个字一行。

好处是有左右和上下的滚动条,看上去很整齐。但是不足之处是长的字段的列名和内容都被缩略了。

解决

使用streamlit-aggrid的第三方安装包,可以完美解决如上问题。

pip install streamlit-aggrid

先看效果:

 aggrid的方式完美地解决问题。无缩略,列宽设置合理,可以左右、上下滑动。

代码
from st_aggrid import AgGrid, DataReturnMode, GridUpdateMode, GridOptionsBuilder
options_builder = GridOptionsBuilder.from_dataframe(df)
options_builder.configure_default_column(groupable=True, value=True, enableRowGroup=True, aggFunc='sum', editable=True, wrapText=True, autoHeight=True)
options_builder.configure_column('col1',  pinned='left')
options_builder.configure_column('col2',  pinned='left')
grid_options = options_builder.build()
grid_return = AgGrid(df, grid_options, theme='blue')

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/886853.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号