嗨害大家好鸭!我是小熊猫❤

虽然之前发的文章当中老是说摸鱼摸鱼~ ~ ~

但是咱正事还是要干滴~ ~ ~

有效率的干事 才能有效率的摸鱼~ ~ ~

大家在用python处理表格数据中,

许多 的工作重点就是对表格类型的数据进行梳理、计算和展示,

本文重点介绍展示这个方面的工作。

首先我们看一个案例,定义一个数组形式的表格数据:

[dechin@dechin-manjaro table]$ ipython
Python 3.8.5 (default, Sep  4 2020, 07:30:14)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.19.0 -- An enhanced Interactive Python. Type '?' for help.In [1]: table=[('a',1,2,3),('b',2,3,4)]In [2]: print(table)
[('a', 1, 2, 3), ('b', 2, 3, 4)]

当我们直接打印这个表格数据的时候,

发现效果非常的难看。

虽然我们可以从这个表格中获取到同样的信息,

但是这种数据展示的方法对于我们直接从打印输出中获取数据是非常不利的。

1.使用tabulate美化表格输出

首先介绍一个工具tabulate,可以直接打印数组格式的表格数据,并且有多种输出格式可选。安装方法同样可以用pip来进行管理:

[dechin@dechin-manjaro table]$ python3 -m pip install tabulate
Requirement already satisfied: tabulate in /home/dechin/anaconda3/lib/python3.8/site-packages (0.8.9)

安装很容易,也没有其他依赖。

接下来我们用ipython来展示一些基本用法:

[dechin@dechin-manjaro table]$ ipython
Python 3.8.5 (default, Sep  4 2020, 07:30:14)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.19.0 -- An enhanced Interactive Python. Type '?' for help.In [1]: from tabulate import tabulateIn [2]: import numpy as npIn [3]: header=['index']+list(range(4)) # 表头的定义In [4]: header
Out[4]: ['index', 0, 1, 2, 3]In [8]: table=[('Alice',1,2,3,4),('Bob',2,3,4,5)] # 表格内容的定义In [9]: table
Out[9]: [('Alice', 1, 2, 3, 4), ('Bob', 2, 3, 4, 5)]In [11]: print(tabulate(table,headers=header,tablefmt='grid')) # 用grid的格式打印表格内容
+---------+-----+-----+-----+-----+
| index   |   0 |   1 |   2 |   3 |
+=========+=====+=====+=====+=====+
| Alice   |   1 |   2 |   3 |   4 |
+---------+-----+-----+-----+-----+
| Bob     |   2 |   3 |   4 |   5 |
+---------+-----+-----+-----+-----+In [12]: print(tabulate(table,headers=header,tablefmt='fancy_grid')) # 用fancy_grid的格式打印
╒═════════╤═════╤═════╤═════╤═════╕
│ index   │   0 │   1 │   2 │   3 │
╞═════════╪═════╪═════╪═════╪═════╡
│ Alice   │   1 │   2 │   3 │   4 │
├─────────┼─────┼─────┼─────┼─────┤
│ Bob     │   2 │   3 │   4 │   5 │
╘═════════╧═════╧═════╧═════╧═════╛

在这个案例中,

我们分别产生了数组格式的表头和表格内容,

然后用tabulate进行封装之后再打印出来。

由于tabulate支持多种格式的输出,

这里我们展示的仅有grid和fancy_grid两种个人比较喜欢的格式。

其他类型的格式还有:

"plain"
"simple"
"github"
"grid"
"fancy_grid"
"pipe"
"orgtbl"
"jira"
"presto"
"psql"
"rst"
"mediawiki"
"moinmoin"
"youtrack"
"html"
"latex"
"latex_raw"
"latex_booktabs"
"textile"

2.使用prettytable美化输出

类似于tabulate的,

prettytable的主要目的也是规范化的美化表格数据的输出,

但是在使用方法上略有差异,

在不同的场景下可以使用不同的方案。

这里我们先看一下prettytable的安装,

同样可以使用pip来进行管理:

[dechin@dechin-manjaro table]$ python3 -m pip install prettytable
Collecting prettytableDownloading prettytable-2.1.0-py3-none-any.whl (22 kB)
Requirement already satisfied: wcwidth in /home/dechin/anaconda3/lib/python3.8/site-packages (from prettytable) (0.2.5)
Installing collected packages: prettytable
Successfully installed prettytable-2.1.0

安装完成后我们用一个py文件的示例来展示其用法:

from prettytable import PrettyTabletb = PrettyTable() # 生成表格对象
tb.field_names = ['Index', 0, 1, 2, 3] # 定义表头
tb.add_row(['Alice',1,2,3,4]) # 添加一行,列是column
tb.add_row(['Bob',2,3,4,5])print (tb) # 打印输出

代码的执行结果如下:

[dechin@dechin-manjaro table]$ python3 pt_test.py
+-------+---+---+---+---+
| Index | 0 | 1 | 2 | 3 |
+-------+---+---+---+---+
| Alice | 1 | 2 | 3 | 4 |
|  Bob  | 2 | 3 | 4 | 5 |
+-------+---+---+---+---+

由于使用的案例跟上面介绍的tabulate是一样的,

所以输出结果也类似,相当于多了一种输出格式。

但是除了输出格式之外,

我们发现prettytable可以很好的利用行和列的添加的形式来进行表格操作,

操作习惯更接近于数据库的操作形式,

因此对于经常使用数据库的人而言,

prettytable可能是一种更好的表格数据输出解决方案。

总结

本文介绍了两种表格数据的打印工具:tabulate和prettytable的安装与基本使用方法。

由于表格数据本身是没有对输出格式进行规范化的,

因此打印出来的数据会显得比较杂乱,不利于直观的阅读。

因此引入这两种工具,加强了输出结果的可读性。

这两者在使用上各有优劣,

tabulate支持更多形式的表格样式,

而prettytable则使用了更加接近于数据库的操作形式,

对于部分用户而言有天然的生态优势。

2 个python美化表格数据输出结果的工具,摸鱼简直心安理得~相关推荐

  1. python处理表格数据-基于Python快速处理PDF表格数据

    我们有下面一张PDF格式存储的表格,现在需要使用Python将它提取出来. 使用Python提取表格数据需要使用pdfplumber模块,打开CMD,安装代码如下: pip install pdfpl ...

  2. r语言 将表格导出为csv_如何将R语言中表格数据输出为Excel文件.pdf

    如何将R 语言中的表格数据输出为Excel 文件 熊荣川 六盘水师范学院生物信息学实验室 xiongrongchuan@126.com /u/Bearjazz 平台的开放性使得R 语言具有了丰富的运算 ...

  3. r语言导出文件为xlxs_R语言数据导出到Excel表格-如何将R语言中的表格数据输出为Excel文件...

    r语言怎么将values中的数据导出为excel 直接新建一个txt文件,打开,然后按ctrl A,复制excel表格中数据,直接粘贴至该打开的txt文件里即可.或者打开excel后,另存为" ...

  4. python处理表格数据-60万行的Excel数据,Python轻松处理

    原标题:60万行的Excel数据,Python轻松处理 一个朋友在某运动品牌公司上班,老板给他布置了一个处理客户订单数据的任务.要求是根据订单时间和客户id判断生成四个新的数据: 1.记录该客户是第几 ...

  5. python处理表格数据-Python数据处理(二):处理 Excel 数据

    在本章和下一章里,我们将研究两种文件类型实例:Excel 文件和 PDF,并给出几条一般性说明,在遇到其他文件类型时可以参考. 处理 Excel 比上章讲的处理 CSV.JSON.XML 文件要难多了 ...

  6. python读取pdf表格数据代码_Python新工具:用三行代码提取PDF表格数据

    原标题:Python新工具:用三行代码提取PDF表格数据 机器之心报道 项目作者:vinayak mehta,参与:一鸣 从 PDF 表格中获取数据是一项痛苦的工作.不久前,一位开发者提供了一个名为 ...

  7. dataframe 输出标题_【学界】第八章:Python代码之数据输出、调参与算法总结

    作者:小杨 学校:广东工业大学 年级:研二 专业:工业工程 主要研究兴趣:强化学习.深度学习 简介:作者是广东工业大学2016级工业工程系研究生,师从广东工业大学教授.博士生导师.<工业工程&g ...

  8. python处理表格数据-python读取word 中指定位置的表格及表格数据

    1.Word文档如下: 2.代码 # -*- coding: UTF-8 -*- from docx import Document def readSpecTable(filename, specT ...

  9. python读取表格数据_Python读取Excel数据并根据列名取值

    一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...

最新文章

  1. Linux CNTOS7 修改网络配置
  2. 4j导入节点与关系_Neo4j Cypher 中怎样根据值动态指定关系类型?
  3. go swagger
  4. UIAppearanceContainer 利器
  5. #串口通信超时处理_【学院推荐】划重点!LabVIEW中串口参数需注意的几点
  6. java package报错_Java从入门到精通(一)
  7. 本科化学 研究生力学 毕业从事销售最后却转行算法
  8. android 注入webview,Android webview js注入
  9. 测试小兵成长记:新兵营
  10. Arcgis 创建切片包(*.tpk)
  11. php视频打水印,php 七牛云 视频加水印
  12. re管理器修改音量_教你巧用RE管理器修改手机各种系统声音锁屏声音
  13. 使用代理爬去微信公众号_Python3WebSpider/9.5-使用代理爬取微信公众号文章.md at master · Lainton/Python3WebSpider · GitHub...
  14. AI绘画怎么生成?这些软件帮助你实现
  15. 计算机毕业设计ssm文学阅读平台
  16. 【Qt入门第23篇】 数据库(三)利用QSqlQuery类执行SQL语句
  17. 华硕天选如何进入BIOS界面
  18. python 操作excle和word
  19. Java实现 LeetCode 6 Z字形变换
  20. 东方通中间件弱密码漏洞检测方法

热门文章

  1. [CF891E]Lust
  2. php 图片合成,php原生图片合成和文字生成图片
  3. 2-3 golang项目中benchmark的写法
  4. 微信公众号实现模板消息推送
  5. Linux服务器配置与管理:Linux基础
  6. unittest自动化测试-requests库实现http请求与requests库离线安装
  7. postgresql和postgrest安装及使用
  8. Windows常见DOS命令
  9. LDCP 02 - 奇偶校验码发展史
  10. C#身份证验证封装的函数方法