资讯专栏INFORMATION COLUMN

python能够装饰数据表格输入数据的两大专用工具

89542767 / 415人阅读

  此篇文章主要是详细介绍了python能够装饰数据表格输入数据的两大专用工具,文章内容紧扣主题开展详尽的基本介绍,具有很强的实用价值,需用的朋友可以学习一下


  序言


  在用python解决数据表格中,这里面的工作中关键就是对报表种类的信息进行整理、运算展现,文中关键详细介绍展现这一相关的工作。


  最先大家看这个实例,界定1个二维数组方式的数据表格:


  [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 tabulate
  In[2]:import numpy as np
  In[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 prettytable
  Downloading 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 PrettyTable
  tb=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则用了更为接近数据库实际操作方式,对于有些客户来讲有纯天然的资源优势。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128724.html

相关文章

  • 你心中理想的婚礼什么样?别担心!python帮你完成你的浪漫之旅!

    摘要:第一步是发送另一条短信,告诉那些确认参与的客人访问网站,并通过一个谷歌表单选择他们的食物选项。所需的只是抓取相关单元格的内容,然后用短信回复让婚礼餐饮者了解我们的进展,并提供谁没有选择的可操作数据,是非常方便的。 showImg(https://segmentfault.com/img/bVbb0N7?w=222&h=223); 2017年9月3日,对世界上的大多数人来说,或许就只是普...

    Yangyang 评论0 收藏0
  • 使用基础pypandas Series与Dataframe与num进行二次输出案例

      小编写这篇文章的主要目的,主要是给大家来做一个介绍,介绍关于python pypandas中的相关案例解读,解读一下Dataframe与num,该怎么进行二次输出呢?下面给大家详细的解答下。  Series  series是一种一维的数组型对象,它包含了一个值序列和一个数据标签  importpandasaspd   importnumpyasnp  创建第一个series:  s1=pd.S...

    89542767 评论0 收藏0
  • 后端技术 - 收藏集 - 掘金

    摘要:理解迭代对象迭代器生成器后端掘金本文源自作者的一篇博文,原文是,俺写的这篇文章是按照自己的理解做的参考翻译。比较的是两个对象的内容是后端掘金黑魔法之协程异步后端掘金本文为作者原创,转载请先与作者联系。 完全理解关键字with与上下文管理器 - 掘金如果你有阅读源码的习惯,可能会看到一些优秀的代码经常出现带有 with 关键字的语句,它通常用在什么场景呢?今天就来说说 with 和 上下...

    oujie 评论0 收藏0
  • Python OOP 面向对象编程

    摘要:时代,如果需要手动继承,如多态多态是指,不同的子类对象调用相同的父类方法,会产生多态多样结果的编程特性。 参考:黑马程序员教程 - Python基础 面向对象 OOP三大特性,且三个特性是有顺序的: 封装 继承 多态 封装 指的就是把现实世界的事务,封装、抽象成编程里的对象,包括各种属性和方法。这个一般都很简单,不需要多讲。 唯一要注意的就是:推荐从小往大开始封装、开发类。比如手枪...

    weknow619 评论0 收藏0
  • django官方文档1.11编翻:首页

    摘要:源网页说明文档所有关于你应该且必须知道的。性能和优化概述的兼容性旨在兼容多种不同版本的支持的兼容性地理框架打算成为世界级的地理框架。其目标是尽可能简单地构建应用程序并利用空间使能数据的功能。 源网页:https://docs.djangoproject.co... django说明文档 所有关于django你应该且必须知道的。 第一步 你是否django编程新手,那就从此开始!从零开始...

    Michael_Lin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<