功能
python的tabulate库提供打印表格数据的功能,支持以下数据类型:
- 支持二维列表、二维迭代类型、字典迭代等类型
- 支持NumPy二维数组、pandas.DataFrame类型
输出表格可以通过参数自定义风格
tabulate库的函数
tabulate库只有一个函数tabulate()
介绍一些常用参数:
-
table:表格数据或变量
-
headers:定义表格的表头
headers=“firstrow”:将每个列表的第一行做表头
headers=“keys”:使用字典索引的键做表头
-
showindex:行索引
showindex=‘always’:显示索引,从0开始,'always’也可以改成如list等迭代类型来自定义索引
from tabulate import tabulate
table=[['张三','北京','男'],\
['李四','上海','男'],\
['洛丽','南宁','女'],]
header=['姓名','祖籍','性别']
print(tabulate(table,headers=header,showindex='always'))
输出如下:
姓名 祖籍 性别
-- ---- ---- ----
0 张三 北京 男
1 李四 上海 男
2 洛丽 南宁 女
- tablefmt:用于定义表格风格,上例改成print(tabulate(table,headers=header,showindex=‘always’,tablefmt=‘grid’))的话就变成:
+----+------+------+------+
| | 姓名 | 祖籍 | 性别 |
+====+======+======+======+
| 0 | 张三 | 北京 | 男 |
+----+------+------+------+
| 1 | 李四 | 上海 | 男 |
+----+------+------+------+
| 2 | 洛丽 | 南宁 | 女 |
+----+------+------+------+
可用格式有:
- plain
- simple
- github
- grid
- fancy_grid
- pipe
- orgtbl
- jira
- presto
- pretty
- psql
- rst
- mediawiki
- moinmoin
- youtrack
- html"
- unsafehtml
- latex
- latex_raw
- latex_booktabs
- latex_longtable
- textile
- tsv
-
numalign:设置全表格数字的对齐方式,默认智能对齐
可用的值有:right, center, left, None(用于禁用对齐)
print(tabulate([[1.2345],[12.345],[123.45],[1234.5],[12345]]))
print(tabulate([[1.2345],[12.345],[123.45],[1234.5],[12345]],numalign='left'))
输出如下:
----------
1.2345
12.345
123.45
1234.5
12345
----------
------
1.2345
12.345
123.45
1234.5
12345
------
-
colalign:文本对齐,可用的对齐方式和numalign,只不过colalign用来对齐文本而已
格式如:colalign=(‘right’,‘left’,‘center’),表示第一列右对齐,第二列左对齐,第三列居中对齐
-
floatfmt:控制小数点后保留几位小数
print(tabulate([["pi",3.141593],["e",2.718282]], floatfmt=".3f"))
输出:
-- -----
pi 3.142
e 2.718
-- -----
也可以像colalign的格式一样控制每一列不同的精确度
详情参考官方文档