推荐阅读:
Pyston:一款让Python脚本“瞬间起飞”的黑科技,给Python装了个涡轮增压器——JIT(即时编译器)
NiceGUI: 打造简单易用的界面,让 Python 开发更轻松
johnnydep:一个能把 Python 包依赖树“漂亮”打印出来的命令行工具
QT-PyQt-PySide-Custom-Widgets:快速构建精美动态UI的利器
每次写报告、做数据可视化,总有那么一段:把 Pandas DataFrame 丢到屏幕上,结果是一堆密密麻麻的数字,毫无美感。要是想把它们变成能发朋友圈、发公众号的精致美图,就更是麻烦——要么手动调格式,要么用复杂的前端库,闪退率堪比期末复习。
great-tables 是个什么?
简单来说,great-tables(又叫great_tables)是一个 Python 包,让你用一套统一的 API,快速拼出精美的表格。它不只是换个颜色那么简单,而是把「表头、分组、格式化、隐藏列、脚注」等等常见需求都整合进来,想怎么搭就怎么搭。
它帮你解决了哪些痛点?
- 样式零散:以前要调表格样式,得折腾 CSS、HTML,或者在 Jupyter 里折腾内置样式。
- 复杂定制:想要分组标题、合并单元格、数字对齐?手写 HTML 头发都要掉一地。
- 格式化繁琐:日期、货币、千分位……每次都得自己写一堆格式化函数。
- 输出不灵活:想直接输出成图片发公众号?早期得先生成 HTML、再截图、再裁剪。
great-tables 的出现,就像给你开启了表格界的乐高积木:想玩就拿,不想管底层实现,直接堆砌组件。默认输出 HTML,也能一键保存为图片。
动手示例:几行代码搞定漂亮表
下面以sp500示例数据,演示如何三步把数据变成美观表格——代码写完就能预览!
fromgreat_tablesimportGTfromgreat_tables.dataimportsp500
过滤:取 2020-01-01 到 2020-01-07 的 S&P500 数据df=sp500[(sp500.date>="2020-01-01")&(sp500.date<="2020-01-07")]# 构造表格(GT(df).tab_header(title="S&P 500 走势",subtitle="2020 年第一周").fmt_date(columns="date",date_style="ymd")# 日期格式.fmt_currency(columns=["open","close"],symbol="
fromgreat_tablesimportGTfromgreat_tables.dataimportsp500
过滤:取 2020-01-01 到 2020-01-07 的 S&P500 数据df=sp500[(sp500.date>="2020-01-01")&(sp500.date<="2020-01-07")]# 构造表格(GT(df).tab_header(title="S&P 500 走势",subtitle="2020 年第一周").fmt_date(columns="date",date_style="ymd")# 日期格式.fmt_currency(columns=["open","close"],symbol="$")# 货币格式.fmt_number(columns="volume",compact=True)# 千分位.cols_hide("adj_close")# 隐藏一列.show()# Jupyter/浏览器里预览)quot;)# 货币格式.fmt_number(columns="volume",compact=True)# 千分位.cols_hide("adj_close")# 隐藏一列.show()# Jupyter/浏览器里预览)
这么一写,表头、日期、货币、千分位……全套格式都上了,页面里立刻高大上。
深度定制:更多玩法
- 分组标题:.spanners(...) 可以给多列加一个跨列分组名称。
- 脚注:.tab_footnote(...) 支持文字、链接,还能控制对齐。
- 行/列高亮:.fmt_highlight(...),根据条件自动为单元格加背景色。
- 主题:内置多款色彩主题,一键切换,微信色、暗黑风,随你选。
优缺点浅谈
优点:
- 上手快:API 直观,方法链式调用,几行代码就能出效果。
- 生态友好:支持 Pandas、Polars,和主流数据分析库结合无缝。
- 输出灵活:HTML、图片、甚至可以集成到网页应用。
缺点:
- 浏览器预览依赖本地环境:.show() 会调用默认浏览器,不是所有场景都方便。
- 样式深度定制还需补 CSS:如果你要非常「标新立异」的样式,可能还是得写点自定义 CSS。
- 性能:超大数据表格渲染时,HTML 输出可能稍卡,适合几千行以内。
总结
great-tables 把表格展示这一块,从「要么太丑、要么太复杂」的尴尬,解放成「拼一拼、链一链,漂亮表格马上来」。如果你是数据分析师、BI 工程师,或者喜欢在报告/公众号里整点好看的表格,不妨试试。相信我,用过一回就回不去了。
项目地址:https/github.com/posit-dev/great-tables