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.mfbz.cn/a/156135.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

kubernetes学习笔记-概念

参考:https://kubernetes.io/zh-cn/docs/concepts/overview/ 概述 Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、…

观测云产品更新 | 监控、图表、服务管理、单点登录、Pipeline 等优化

观测云更新 监控相关的若干使用优化 1.【告警沉默】功能回归,您仍可以通过告警沉默配置定义重复告警通知的时间间隔。 2.【监控器】删除 ”紧急“、”重要“、”警告“触发条件必须配置任意一项的限制,您可任意配置”紧急“、”重要“、”警告“、”无…

实时云渲染与带宽探讨:解密数字新基建中的网络技术

随着“数字新基建”和5G技术的蓬勃发展,数字孪生、智慧工厂、智慧城市、虚拟仿真教学等领域正经历着迅速的技术进步。部署方案也由最初的本地部署,发展到webGL本地网络方式再到最新的实时云渲染技术。本文将深入探讨实时云渲染技术方案对于带宽的要求条件…

【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏4(附项目源码)

文章目录 先看本次实现的最终效果前言把敌人和炮塔全部配置成预制体炮塔商店打开商店放置炮塔升级炮塔出售显示炮塔攻击范围显示玩家金额和血量关闭升级面板和商店功能源码完结 先看本次实现的最终效果 前言 本期紧接着上一篇,本期主要内容是实现商店、购买、出售、…

Python学习笔记--自定义元类

四、自定义元类 到现在,我们已经知道元类是什么鬼东西了。 那么,从始至终我们还不知道元类到底有啥用。 只是了解了一下元类。 在了解它有啥用的时候,我们先来了解下怎么自定义元类。 因为只有了解了怎么自定义才能更好的理解它的作用。…

《向量数据库指南》——2023云栖大会现场,向量数据库Milvus Cloud成关注焦点

近期,广受关注的2023 云栖大会正式收官,来自全球各地的开发者集聚一堂,共同探索 AI 时代的更多可能性。 云栖大会是由阿里巴巴集团主办的科技盛宴,是中国最早的开发者创新展示平台。据悉,今年云栖大会的主题为“计算,为了无法计算的价值”,共吸引了全球 44 个国家和地区…

【MySQL8】1130 - Host *** is not allowed to connect to this MySOL server

问题描述 使用 Navicat 连接 MySQL8 报错: 1130 - Host *** is not allowed to connect to this MySOL server解决方案 use mysql;select host ,user from user; -- 将 root 用户的主机(host)值修改为 %,即允许从任何主机连接 …

进阶JAVA篇- Lambda 表达式与 Lambda 表达式的省略规则

目录 1.0 什么是 Lambda 表达式? 1.1 既然跟匿名内部类相关,先来回顾匿名内部类。 1.2 Lambda 表达式与匿名内部类之间的关系。 1.3 函数式接口 1.4 在具体代码中来操作一下 2.0 Lambda 表达式省略规则 1.0 什么是 Lambda 表达式? Lambda 表达…

SQL server从安装到入门(一)

文章目录 彻底安装怎么安装?Polybase要求安装orcale jre 7更新 51或更高版本?安装完怎么配置?没有SSMS? 熟悉一下SMSS! 根据本人实际安装和初步使用SQL server的过程中,经历的一些关键性的步骤和精品文章。…

【volatality 3】使用说明文档

由于volatility2.6 和3.0 版本之间略有差异,所以特写本文档用来学习参考。 在vol3 中不需要指定profile,而是在命令中指定系统。 如windows.info、Windows.pslist 使用示例 文档说明 本文作者:SwBack 创作时间:‎2022‎年‎6‎月‎14‎日,‏‎15:47:05 知乎:https…

OPPO发布AndesGPT大模型;Emu Video和Emu Edit的新突破

🦉 AI新闻 🚀 OPPO发布全新ColorOS 14及自主训练的AndesGPT大模型 摘要:OPPO在2023 OPPO开发者大会上发布了全新的ColorOS 14,并正式推出了自主训练的安第斯大模型(AndesGPT)。AndesGPT拥有对话增强、个人…

集合贴——智能客服是什么

基础课1——智能客服的定义-CSDN博客文章浏览阅读166次。智能客服是一种采用人工智能技术的客户服务方式,它通过语音识别、自然语言处理、语义理解等技术,实现了与客户的自动交互。https://blog.csdn.net/2202_75469062/article/details/134406392?spm1…

为什么选择CodeEase?

目录 为什么选择CodeEase核心功能后端前端 框架结构总结 为什么选择CodeEase CodeEase是一个标准化的低代码平台 愿景 我们励志开发一站式服务,缩短网站开发周期,降低程序bug率,减少开发人力和成本,推出了多租户SaaS平台开发模板…

unity中的模型坐标系与3dmax导出的模型坐标系不一致的解决方案

unity中的模型坐标系与3dmax导出的模型坐标系不一致的解决方案 unity是左手坐标系,3dmax为右手坐标系 需要在3dmax中修改坐标系 顶视图中改成:X轴(红色)向右: Y轴(蓝色)朝向自己: Z轴&#xff…

码住!听我说护眼台灯这样选!

台灯的显色指数是其非常重要的指标,它可以表示灯光照射到物体身上,物体颜色的真实程度,一般用平均显色指数Ra来表示,Ra值越高,灯光显色能力越强。常见的台灯显色指数最低要求一般是在Ra80以上即可,比较好的…

机械人必须要了解的丝杆螺母参数

丝杆螺母是机械中重要的零部件之一,主要用于将旋转运动转化为直线运动,或者将直线运动转化为旋转运动。只有正确了解丝杆螺母的参数,才能进行选型。 1、螺纹规格:丝杆螺母的螺纹规格是按照国家标准进行分类的,常见的有…

CleanMyMac X2024免费苹果笔记本清理内存清理工具

CleanMyMac X的优点包括: 全面的系统清理:CleanMyMac X可以扫描和清理系统中的垃圾文件、缓存文件、无用的语言文件、残留文件等,从而释放磁盘空间,提高系统性能。 优化工具:该软件还提供了一系列优化工具&#xff0c…

Linux下好玩有趣的指令(持续更新)

适用于centOS下,别的Linux换个指令就行,内容是一样的 centOS有的指令安装不了?试试拓展yum源,再安装基本就OK啦! yum install -y epel-release 下面是作者在centOS环境下亲测可以使用的,如果你是root用户直…

网络运维Day19

文章目录 环境准备数据备份为什么要备份什么是备份备份到哪里什么时候备份如何备份 完整备份物理备份逻辑备份测试恢复所有库 构建MySQL服务xtrabackup完全备份与恢复完全备份完全恢复增量备份增量恢复 总结 环境准备 IP地址采用自动分配,以自己的为准 可以将之前的…

几种典型的深度学习算法:(CNN、RNN、GANS、RL)

以下是几种典型的深度学习算法: 1、卷积神经网络(Convolutional Neural Network,CNN):主要用于图像和视频等视觉任务。通过使用卷积层、池化层和全连接层等不同类型的神经网络层,CNN 可以学习图像中的特征并…