great-tables
Easily generate information-rich, publication-quality tables from Python.
What it is and what it does
Great Tables is a Python library for creating formatted, visually polished tables from DataFrame data. It takes Pandas or Polars DataFrames as input and lets you compose tables with headers, footers, row labels (stubs), column spanners, and cell-level formatting—such as currency, dates, and numbers—before rendering to HTML or image output. The library emphasizes a composable, method-chaining API where you build tables incrementally by applying formatting and layout operations.
The package is designed for both everyday table display needs and publication-quality output. It comes with 16 built-in datasets for experimentation and is commonly used in notebook environments and Quarto documents. The active maintenance, low install friction, and permissive MIT license make it accessible for data analysis, reporting, and documentation workflows across scientific, financial, healthcare, and general software development contexts.
Use it for:
- Generate formatted financial or statistical reports from DataFrames with currency and number formatting applied.
- Create publication-ready tables for research papers, dashboards, or documentation with headers, footers, and styled columns.
- Build interactive HTML tables in Jupyter notebooks or Quarto documents with custom cell formatting and layout.
- Display date-based data with locale-aware formatting using Babel integration.
- Render large datasets as styled HTML or image tables for web or print distribution.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Great Tables transforms Pandas or Polars DataFrames into formatted, publication-quality HTML tables or images with headers, footers, column spanners, and cell-level formatting.
Yes. Great Tables is actively maintained, has low install friction, carries a permissive MIT license, and solves a clear problem—turning DataFrames into polished, formatted tables. It's well-suited for anyone doing data reporting, analysis, or documentation in Python. No known security vulnerabilities as of 2026-08-14.
Install
great-tables on PyPI
pip
pip install great-tablesuv
uv add great-tablespoetry
poetry add great-tablesInstalling great-tables
Before you install
Low friction: pure Python wheel with 8 runtime dependencies (multimark, faicons, htmltools, importlib-metadata, nokap, typing_extensions, Babel, importlib-resources). Active maintenance with a release 18 days ago; last commit 2026-08-14.
License in practice
MIT License (permissive): you can use, modify, and distribute Great Tables freely in commercial and private projects with minimal restrictions, provided you retain the copyright notice and license text.
Quickstart
pip install great_tables
from great_tables import GT
from great_tables.data import sp500
sp500_mini = sp500[(sp500["date"] >= "2010-06-07") & (sp500["date"] <= "2010-06-14")]
GT(sp500_mini).tab_header(title="S&P 500").fmt_currency(columns=["open", "high", "low", "close"])
Requires Python 3.10 or later.
Verify before relying
- Whether image rendering requires additional system dependencies beyond the listed Python packages.
- Performance characteristics with large DataFrames (row/column count limits).
- Compatibility with Jupyter, Quarto, and other notebook environments beyond the documented examples.
Package facts
| License | MIT License Copyright (c) 2022-2026 Posit Software, PBC Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 8 — multimark, faicons, htmltools, importlib-metadata, nokap, typing_extensions, Babel, importlib-resources |
| Maintenance | actively maintained — 18 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 683,169/month — #5,360 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: great_tables-0.23.0-py3-none-any.whl
Keywords: tables
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
itablesRenders Pandas and Polars DataFrames as…
permissive · top 5,000 on PyPI
pretty-html-tableConverts pandas DataFrames into styled HTML…
permissive · top 5,000 on PyPI
pyreadstatReads and writes SAS, SPSS, and Stata data…
permissive · top 5,000 on PyPI
texttableCreates formatted ASCII tables for console…
permissive · top 1,000 on PyPI
narwhalsNarwhals provides a lightweight compatibility…
permissive · top 1,000 on PyPI
percentifyPercentify provides one-call exploratory…
permissive · top 15,000 on PyPI
treetableRenders nested data structures as formatted…
permissive · top 15,000 on PyPI
datacompyDataComPy compares two DataFrames across…
permissive · top 5,000 on PyPI
sklearn-pandasBridges pandas DataFrames and scikit-learn by…
permissive · top 15,000 on PyPI
patitoPatito combines pydantic models with polars…
permissive · top 15,000 on PyPI