Python中表格插件Tabulate的用法

目录

一、引言

二、Tabulate插件安装与导入

三、Tabulate基本用法

1、创建表格:

2. 格式化表格:

3. 表格转置:

4、合并单元格:

5、指定每列的格式:

6、指定每行的格式:

7、使用自定义表格格式:

8、自定义列宽和行高:

9、添加边框和分隔符:

10、添加表头和行脚注:

11、使用自定义格式化函数:

总结


一、引言

在Python中,处理表格数据是常见的任务。表格可以是CSV文件、Excel文件、SQL数据库等。对于这种类型的数据,Python的pandas库提供了很好的支持,而Tabulate插件则进一步简化了表格数据的处理过程。Tabulate插件以其简洁的语法和强大的功能,成为了Python开发者处理表格数据的得力助手。本文将详细介绍Tabulate插件的用法,并通过实例说明其应用场景。

二、Tabulate插件安装与导入

首先,需要安装Tabulate插件。在命令行中输入以下命令进行安装:
pip install tabulate
安装完成后,可以在Python代码中导入Tabulate插件:
from tabulate import tabulate

三、Tabulate基本用法

1、创建表格:

创建表格的基础语法是使用tabulate()函数。这个函数接受两个主要的参数:数据和格式。例如:

data = [['ID', 'Name'], [1, 'Alice'], [2, 'Bob']]  
print(tabulate(data, headers='keys', tablefmt='psql'))

这段代码会创建一个包含ID和Name两列的表格,并打印出来。headers='keys'表示第一行是表头,tablefmt='psql'表示表格的格式。

2. 格式化表格:

Tabulate提供了多种方式来格式化表格。例如,可以通过missingval参数指定缺失值的表示方式:

data = [['ID', 'Name'], [1, 'Alice'], [2, None]]  
print(tabulate(data, headers='keys', missingval='Missing', tablefmt='psql'))

这段代码会在Name列中的空值处显示'Missing'。

3. 表格转置:

使用tabulate()函数的col_headers参数可以轻松地转置表格:

data = [['ID', 'Name'], [1, 'Alice'], [2, 'Bob']]  
headers = ['Name', 'ID']  
print(tabulate(data, headers=headers, tablefmt='psql'))

这段代码会创建一个转置后的表格,其中Name和ID互换了位置。

4、合并单元格:

Tabulate允许合并单元格,这在进行汇总和统计时非常有用。可以使用tabulate()函数的span_headers参数来合并表头,span_cells参数来合并单元格:

data = [['ID', 'Name', 'Age'], [1, 'Alice', 23], [2, 'Bob', None], [3, 'Charlie', 30]]  
print(tabulate(data, headers='keys', tablefmt='psql', span_headers=True, missingval='Missing'))

这段代码会合并Name和Age两列的表头,并在Age列中的空值处显示'Missing'。

5、指定每列的格式:

通过在tabulate()函数中使用headers参数,可以指定每个表头的格式。例如,可以使用lambda函数来格式化某一列:

data = [['ID', 'Name'], [1, 'Alice'], [2, 'Bob']]  
headers = {'ID': '{:03d}', 'Name': lambda x: x.title()}  
print(tabulate(data, headers=headers, tablefmt='psql'))

这段代码会将ID列格式化为三位数字,并将Name列的首字母大写。

6、指定每行的格式:

通过在tabulate()函数中使用missingval参数,可以指定缺失值的表示方式。例如,可以使用lambda函数来格式化缺失值:

data = [['ID', 'Name'], [1, 'Alice'], [2, None]]  
missingval = lambda x: 'Missing' if x is None else x  
print(tabulate(data, headers='keys', tablefmt='psql', missingval=missingval))

这段代码会在Name列中的空值处显示'Missing'。

7、使用自定义表格格式:

Tabulate插件支持自定义表格格式。可以创建一个继承自tabulate.TableFormat类的子类,并重写其_print_table()方法来实现自定义格式。例如,下面的代码实现了一个带有行号的表格:

from tabulate import TableFormat  class NumberedTable(TableFormat):  def _print_table(self, table, leadingspace=0):  for i, row in enumerate(table):  print('Row {}:'.format(i), row)  print(' ' * leadingspace + self._line_separator())

8、自定义列宽和行高:

通过在tabulate()函数中使用colwidths参数,可以指定每列的宽度;使用row_height参数可以指定每行的行高。例如:

data = [['ID', 'Name'], [1, 'Alice'], [2, 'Bob']]  
print(tabulate(data, headers='keys', tablefmt='psql', colwidths=[10, 20], row_height=15))

这段代码将ID列的宽度设置为10,Name列的宽度设置为20,并将行高设置为15。

9、添加边框和分隔符:

通过在tabulate()函数中使用border参数和delimiter参数,可以添加边框和分隔符。例如:

data = [['ID', 'Name'], [1, 'Alice'], [2, 'Bob']]  
print(tabulate(data, headers='keys', tablefmt='psql', border=True, delimiter='/'))

这段代码将表格的边框设置为True,并将分隔符设置为斜杠。

10、添加表头和行脚注:

通过在tabulate()函数中使用header_align参数和footer_align参数,可以添加表头和行脚注并对齐方式。例如:

data = [['ID', 'Name'], [1, 'Alice'], [2, 'Bob']]  
print(tabulate(data, headers='keys', tablefmt='psql', header_align=['left', 'center'], footer_align=['center', 'right']))

这段代码将ID列的表头对齐方式设置为左对齐,将Name列的表头对齐方式设置为居中对齐,将ID列的行脚注对齐方式设置为居中对齐,将Name列的行脚注对齐方式设置为右对齐。

11、使用自定义格式化函数:

通过在tabulate()函数中使用formatters参数,可以指定每列的格式化函数。例如:

data = [['ID', 'Name'], [1, 'Alice'], [2, 'Bob']]  
formatters = {'ID': lambda x: '{:03d}'.format(x), 'Name': lambda x: x.title()}  
print(tabulate(data, headers='keys', tablefmt='psql', formatters=formatters))

这段代码将ID列的格式化函数设置为将数字格式化为三位数字,将Name列的格式化函数设置为将字符串转换为首字母大写。

总结

通过使用Tabulate插件,我们能够轻松地生成美观且易读的表格,大大提升了数据可视化的效率和效果。Tabulate插件提供了丰富的配置选项,让我们能够根据自己的需求自由地定制表格样式、格式、对齐方式等。

通过使用嵌套列、格式化函数等功能,我们还可以创建复杂的表格结构并实现精细的数据展示要求。总之,Tabulate插件是一个功能强大、简单易用的数据可视化工具,它能够满足我们在Python中进行表格数据展示的各种需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/185782.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中级程序员——uniapp和小程序面试题

😄博主:小猫娃来啦 😄文章核心:uniapp和小程序面试题 文章目录 用uniapp有遇到一些兼容性问题吗?uniapp最大的优点是什么?uniapp如何实现多端兼容?uniapp是如何做跨端适配的?常用的u…

Docker Desktop 配置阿里云镜像加速

阿里云搜索镜像,打开容器镜像服务,复制镜像加速器地址 Docker Desktop 右上角设置,选择 Docker Engine,在配置中添加阿里云的镜像地址,右下 Apply & restart 即可。 "registry-mirrors": ["https…

轻松一刻|Walrus CLI与CI/CD工具集成,轻松部署2048游戏

Walrus 是一款开源的基于平台工程理念、以应用为中心、以完整应用系统自动化编排交付为目标进行设计开发的云原生应用平台,简化和自动化应用部署与发布流程并与现有的 CI/CD 流水线无缝集成。今天我们来点有趣的,跟随本教程,一起将 Walrus CL…

《Linux从练气到飞升》No.30 深入理解 POSIX 信号量与生产消费模型

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…

德思特案例 | Skydel GNSS仿真引擎助力多所高校实现GNSS仿真测试教育

来源:德思特测量测试 德思特案例 | Skydel GNSS仿真引擎助力多所高校实现GNSS仿真测试教育 目前高校研究机构很难拥有用于定位、导航和定时(PNT)的测试和模拟工具,卫星导航相关的教育基本都是通过教科书或基于Matlab代码编程进行研…

11.22文心中国行走进厦门,把握大模型时代的产业新机遇

11月22日,文心中国行将走进厦门。届时,政府、高校及企业的相关专家将现场分享AI和大模型最新进展,从人工智能政策解读,到大模型底层技术,再到产教融合下的空间感知与计算,产业创新应用洞察及实践案例等等&a…

eclipse启动无法找到类(自定义监听器)

一.报错 二.排查 1.首先检查代码是否有问题 本人报错是找不到监听器,故检查监听器的代码和web.xml文件是否有问题 public class DoorListener implements ServletContextListener 监听器是否继承并实现ServletContextListener中的方法。 web.xml中: &…

Java 21:最新特性、性能改进和语言发展

文章目录 模式匹配和模式变量新的记录类型生产者接口本地类型推断的扩展新的垃圾收集器动态CDS档案G1垃圾收集器的增强Java语言的持续发展性能改进和JEPJava 21的部署和使用Java 21的生态系统结语 🎉欢迎来到Java学习路线专栏~Java 21:最新特性、性能改进…

【YOLOv7/YOLOv5系列算法改进NO.47】改进激活函数为GELU

文章目录 前言一、解决问题二、基本原理三、​添加方法四、总结 前言 作为当前先进的深度学习目标检测算法YOLOv7,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系…

如何选择数据恢复软件?前 5 名免费数据恢复软件榜单供参考

我们都知道开源数据恢复软件有很多优点。搜索免费解决方案的用户会被其可用性所吸引,而那些拥有足够技术技能的用户可能会被其定制软件以满足其需求的灵活性所吸引。在本文中,我们为您挑选了最好的开源数据恢复软件,并将尝试回答开源软件是否…

项目架构设计说明书编制

目录 项目名称 1 简介 1.1 目的 1.2 范围 1.3 术语及缩略语 1.4 引用文档 1.5 概述 2 构架表示方式 3 构架目标和约束 4 用例视图 4.1 用例实现 5 逻辑视图 5.1 概述 5.2 在构架方面具有重要意义的设计包 5.3 内部接口设计与协作机制 5.4 对外接…