You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NiceGUI中正确显示Polars列表列?含Streamlit对比及性能诉求

解决NiceGUI中Polars DataFrame列表列显示及性能问题

1. 让列表列以原生列表形式显示

NiceGUI的ui.table.from_polars默认会将列表类型的列拼接为字符串,要实现类似Streamlit的显示效果,需要自定义列的format函数来保留列表格式:

import polars as pl
from nicegui import ui

df = pl.DataFrame({
    "a": [1, 2, 3],
    "b": [4, 5, 6],
    "c": [[1, 2], [3, 4], [5, 6]],
})

# 手动定义表格列,为列表列指定格式化函数
columns = [
    {'name': 'a', 'label': 'a', 'field': 'a'},
    {'name': 'b', 'label': 'b', 'field': 'b'},
    {'name': 'c', 'label': 'c', 'field': 'c', 'format': lambda value: str(value)}
]

# 将Polars DataFrame转换为字典列表供表格使用
rows = df.to_dicts()

ui.table(columns=columns, rows=rows)
ui.run()

这里通过lambda value: str(value)直接将列表转为标准字符串形式,显示效果和Streamlit一致。

2. 提升大数据量下的性能

ui.table.from_polars在处理较大DataFrame时,可能因自动列推断和转换产生额外性能开销。手动转换为字典列表并定义列配置,既能避免这部分开销,也能更灵活地控制列的显示逻辑。

如果处理超大数据集,还可以补充优化手段:

  • 启用表格分页功能,仅加载当前页的数据
  • 对数据做预过滤或采样,减少前端渲染的数据量

内容的提问来源于stack exchange,提问作者Simon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 11:12:08