tabulate:在 Python 中竟可如此优雅地创建表格

Posted Python学习与数据挖掘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tabulate:在 Python 中竟可如此优雅地创建表格相关的知识,希望对你有一定的参考价值。

如果能够将我们的无序数据快速组织成更易读的格式,对于数据分析非常有帮助。 Python 提供了将某些表格数据类型轻松转换为格式良好的纯文本表格的能力,这就是 tabulate 库。

推荐文章

闲话少说,我们直接开始吧。

准备工作

2.1.安装tabulate库

安装tabulate库非常容易,使用pip即可安装,代码如下:

pip install tabulate

2.2.导入tabulate函数

接着我们需要导入我们需要的tabulte函数,如下:

from tabulate import tabulate

准备工作做好后,接下来我们来举个栗子。

使用list生成表格

不妨我们假设我们有以下数据:

table = [['First Name', 'Last Name', 'Age'], 
['John', 'Smith', 39], 
['Mary', 'Jane', 25], 
['Jennifer', 'Doe', 28]]

接着我们可以使用 tabulate 函数将上述数据组织成一个更易读的表格形式,代码如下:

print(tabulate(table))

结果如下:

由于上述list中的第一个列表包含每列的名称,我们可以使用以下参数将列名单独显示出来,代码如下:

print(tabulate(table, headers='firstrow'))

结果如下:

tabulate 函数还包提供一个 tablefmt 参数,它允许我们进一步改进表格的外观,代码如下:

print(tabulate(table, headers='firstrow', tablefmt='grid'))

结果如下:

相比grid,我更喜欢对 tablefmt 使用fancy_grid参数,其表现形式如下:

print(tabulate(table, headers='firstrow', tablefmt='fancy_grid'))

结果如下:

使用dict生成表格

当然,在Python中我们也可以使用字典来生成相应的表格。

代码如下:

info = 'First Name': ['John', 'Mary', 'Jennifer'], 
'Last Name': ['Smith', 'Jane', 'Doe'], 
'Age': [39, 25, 28]

在字典的情况下,键通常是列的标题,值将是这些列的元素取值。我们通常通过传递“keys”作为 headers 参数的参数来指定键是表格的标题:

print(tabulate(info, headers='keys'))

结果如下:

当然,此时我们也可以使用 tablefmt 参数来改善表格的外观,代码如下:

print(tabulate(info, headers='keys', tablefmt='fancy_grid'))

结果如下:

增加索引列

进一步来说,我们还可以使用showindex参数来向表格中添加索引列,

代码如下:

我们可以通过向 showindex 参数传入一个可迭代对象来添加自定义索引。例如,如果我们希望索引从 1 开始,我们可以传入一个范围对象作为参数:

缺失值处理

如果我们从字典中移走’Jennifer’,此时我们的表格将会包含一个空白单元格,代码如下:

print(tabulate('First Name': ['John', 'Mary'], 
'Last Name': ['Smith', 'Jane', 'Doe'], 
'Age': [39, 25, 28], headers="keys",
 tablefmt='fancy_grid'))

结果如下:

有时候,我们觉得缺失值用空白格表示不太美观,此时我们可以设置默认值来显示,代码如下:

print(tabulate('First Name': ['John', 'Mary'], 
'Last Name': ['Smith', 'Jane', 'Doe'], 
'Age': [39, 25, 28], headers="keys",
 tablefmt='fancy_grid'))

结果如下:

总结

本文介绍了在python中使用tabulate库来创建表格,并针对输出形式进行不断改进来美化输出效果,并给出了代码示例。

您学废了吗?

技术交流

欢迎转载、收藏、有所收获点赞支持一下!

目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式②、添加微信号:dkl88191,备注:来自CSDN
  • 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

以上是关于tabulate:在 Python 中竟可如此优雅地创建表格的主要内容,如果未能解决你的问题,请参考以下文章

Python pprint 输出数据结构竟如此优雅

Python -- tabulate 模块,

Python 异常还能写得如此优雅,彻底服了

如此优雅,4款 Python 自动数据分析神器真香啊

python3使用tabulate漂亮的打印数据

妙不可言,使用 Python 管道 Pipe 编写代码如此优雅