当前位置: 首页 > news >正文

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.lryc.cn/news/232821.html

相关文章:

  • 缺陷分级(过程质量bug分级)
  • pycharm/vscode 配置black和isort
  • python列出本地文件路径
  • 在JavaScript中检查一个数字是否是另一个数字的倍数
  • 计算机网络五层协议的体系结构
  • MySQL 运算符二
  • 【SA8295P 源码分析】121 - MAX9295A 加串器芯片手册分析 及初始化参数分析
  • 问题汇总20231103
  • 65.Undertow代替Tomcat
  • 前端mockjs使用方式[express-mockjs]
  • 矿区安全检查VR模拟仿真培训系统更全面、生动有效
  • 在SpringBoot中使用EhCache缓存
  • filter - 常用滤镜效果(毛玻璃、图片阴影、图片褪色)
  • 【开源】基于Vue和SpringBoot的数据可视化的智慧河南大屏
  • 小型内衣洗衣机什么牌子好?性价比高的迷你洗衣机推荐
  • SIMULIA 2023 PowerFLOW 新功能介绍
  • 智慧农业新篇章:拓世法宝AI智能直播一体机助力乡村振兴与农业可持续发展
  • 【数据结构】C语言实现栈
  • C语言加密字符(ZZULIOJ1064:加密字符)
  • Java爬取哔哩哔哩视频(可视化)
  • adb shell settings高级指令设置系统属性所有的指令汇总+注释
  • Jmeter- Beanshell语法和常用内置对象(网络整理)
  • 【C++二级】题一:构造函数
  • C++标准模板库(STL)-list介绍
  • Arrays.asList
  • XXXX项目管理目标(某项目实施后基于软件工程的总结)
  • 连新手小白都知道的电子画册一键生成器,你还不知道吗?
  • JAVAEE初阶 操作系统
  • 第四代智能井盖传感器:万宾科技智能井盖位移监测方式一览
  • 了解JS中的混个对象“类”