tabulate学习

tabulate学习

一、什么是tabulate

tabulate是 Python 打印格式化表格的库,支持列表、字典、DataFrame 等数据,输出美观的控制台表格,支持 markdown、html、latex、grid 等十几种格式。比较适用于命令行输出表格类型。

使用的初衷是因为笔者喜欢使用markdown做笔记,但是python输出的表格类型的结果整理到markdown比较麻烦

二、下载

bash 复制代码
pip install tabulate

三、输出表格

python 复制代码
from tabulate import tabulate

data = [
    ["001", "你是1", "厉害的1"],
    ["002", "你是2", "厉害的2"],
    ["003", "你是3", "厉害的3"]
]
# 表头
headers = ["编号", "列1", "列2"]

# 打印表格
print(tabulate(data, headers=headers, tablefmt="grid"))

输出结果如下

tex 复制代码
+------+------+------+
|   编号 | 列1   | 列2   |
+======+======+======+
|  001 | 你是1  | 厉害的1 |
+------+------+------+
|  002 | 你是2  | 厉害的2 |
+------+------+------+
|  003 | 你是3  | 厉害的3 |
+------+------+------+

支持的类型

参数 效果 适用场景
simple 极简横线 快速调试
grid 实线边框 控制台日志
fancy_grid 美化圆角边框 展示输出
github Markdown 表格 无自动对齐空格,所有单元格紧贴竖线
pipe Markdown 表格 全去掉多余空格,最小体积,纯管道分隔
html HTML 表格 网页输出
latex Latex 代码 论文报告(latex 格式)

四、可以整理的表格类型

4.1 二维列表类型

4.2 字典类型

python 复制代码
from tabulate import tabulate

data = [{'编号': '001', '列1': '你是1', '列2': '厉害的1'},
        {'编号': '002', '列1': '你是2', '列2': '厉害的2'},
        {'编号': '003', '列1': '你是3', '列2': '厉害的3'}]

# 打印表格
print(tabulate(data, headers='keys', tablefmt="fancy_grid"))

4.3 DataFrame类型

python 复制代码
from tabulate import tabulate
import pandas

data = pandas.DataFrame({
    "编号": ["001", "002", "003"],
    "列1": ["你是1", "你是2", "你是3"],
    "列2": ["厉害的1", "厉害的2", "厉害的3"]
})

# 打印表格 , showindex=False  不输出行索引
print(tabulate(data, headers='keys', tablefmt="fancy_grid", showindex=False))

五、常用参数

  1. showindex=True/False:是否显示行号

    python 复制代码
    print(tabulate(data, headers=headers, showindex=True))
  2. numalign="left"/"right"/"center":数字对齐方式

  3. stralign="center":文字居中

    python 复制代码
    print(tabulate(data, headers=headers, stralign="center", numalign="center"))
  4. floatfmt=".2f":浮点数保留 2 位小数

    python 复制代码
    data = [["A", 1234.567], ["B", 89.1]]
    print(tabulate(data, headers=["列1","列2"], floatfmt=".2f"))
  5. maxcolwidths=10,20,8:限制每列最大宽度,长文本自动换行

    python 复制代码
    print(tabulate(data, headers=headers, maxcolwidths=[8, 30, 10]))
相关推荐
依然鸣11 小时前
PTA团体程序设计天梯赛L2真题讲解L2-045-048
数据结构·c++·经验分享·学习·算法·pat考试·pat
星火跨境XINGHUOS11 小时前
独立站搭建后去哪里学运营?全链路学习路径拆解
学习
统计学小王子11 小时前
《数学少年-从正负号到几何原本》(第三章:“进退加减,循规而行“)--3.3 奶茶店流水账
学习·初中数学科普·数学科普
05664612 小时前
RAG 向量检索:从“查字“到“查意“
数据库·人工智能·学习·oracle
却道天凉_好个秋13 小时前
音视频学习(一百零二):全彩夜视
学习·音视频·全彩夜视
声网13 小时前
Agent-VUI 设计:写在语音智能体的「ChatGPT 时刻」前夜|Voice Agent 学习笔记
笔记·学习·chatgpt
m4Rk_13 小时前
【论文阅读】Agent 记忆机制(31):MemAgent——通过强化学习让固定长度记忆处理百万级长文本
论文阅读·人工智能·学习·开源·github
05664613 小时前
agent学习Day23——文件上传与 Embedding 语义检索
python·学习·embedding
小白说大模型13 小时前
【MYSQL】MYSQL学习的一大重点:索引(下)- B+树
b树·学习·mysql
却道天凉_好个秋13 小时前
音视频学习(一百零一):IR-Cut
学习·音视频·ir-cut