Great Tables 是由 Posit 团队维护的开源 Python 表格展示与排版库,项目地址:posit-dev/great-tables。它的核心定位是将 Pandas、Polars 等数据框中的结构化数据,转换为适合报告、数据分析文档和网页展示的高质量格式化表格,而不是提供数据处理或交互式数据探索能力。
Great Tables 的核心输出是 HTML 表格,主要通过 HTML + CSS 实现排版和样式,而不是提供一套独立的前端 UI 组件。
- 渲染层:生成 HTML 表格结构,并使用 CSS 控制字体、颜色、边框、间距、条件格式等视觉效果。
- 交互层:它不是 DataTables、AG Grid 这类面向 Web 应用的交互式表格组件,核心目标是静态数据展示和报告排版,而不是提供排序、筛选、编辑等完整交互能力。
另外,它也支持将 CSS 内联到 HTML 元素中,方便嵌入邮件模板等对样式支持有限的环境;还可以导出 PNG、JPEG、WebP 和 PDF。需要注意,图片和 PDF 导出涉及浏览器渲染,并非仅靠 HTML 字符串直接完成。
核心功能包括:
- 表格结构编排:支持标题、副标题、表头、表尾、行标签、分组表头、脚注和数据来源说明,可以组合出类似专业报告、学术论文的复杂表格。
- 数据格式化:提供货币、百分比、日期、数字、时长等格式化方法,支持紧凑数字表示、缺失值替换及自定义文本转换。
- 样式定制:可以设置单元格颜色、字体、对齐方式、边框、行间距和条件格式,还能通过数据颜色映射及迷你图增强数据表达效果。
- 多种输出格式:默认生成 HTML 表格,也支持导出图片、PDF 和 LaTeX 等格式,适用于 Jupyter Notebook、Quarto 文档及报告生成流程。
- 链式 API:以
GT()为入口,通过连续调用tab_header()、fmt_currency()、cols_hide()等方法逐步构建表格,代码可读性较好。
典型使用场景包括经营分析报告、财务报表、统计数据发布、研究论文、数据分析 Notebook,以及自动化生成的 HTML 报告。
安装方式:
pip install great_tables
简单示例:
from great_tables import GT
table = (
GT(df)
.tab_header(title="销售业绩报告")
.fmt_currency(columns=["revenue"])
.fmt_number(columns=["orders"], compact=True)
)
其中 df 是已有的 Pandas 或 Polars 数据框。
Great Tables 可以理解为 Python 生态中的专业表格排版引擎,优势在于声明式 API、丰富的格式化能力和高质量输出。如果需要将统计结果直接呈现为可发布的报告表格,它比手动拼接 HTML 更合适;如果需要前端实时交互、排序筛选或复杂的数据管理界面,则应考虑专门的 Web 表格组件。该项目采用 MIT 开源许可证,适合商业项目集成。
项目提供了一个 Skill 供安装:https://posit-dev.github.io/great-tables/skills.html
name: great-tables
description: >
Easily generate information-rich, publication-quality tables from Python. Use when writing Python code that uses the great_tables package.
license: MIT
compatibility: Requires Python >=3.10.