此篇文章主要是詳細介紹了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則用了更為接近數據庫實際操作方式,對于有些客戶來講有純天然的資源優勢。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128724.html
摘要:第一步是發送另一條短信,告訴那些確認參與的客人訪問網站,并通過一個谷歌表單選擇他們的食物選項。所需的只是抓取相關單元格的內容,然后用短信回復讓婚禮餐飲者了解我們的進展,并提供誰沒有選擇的可操作數據,是非常方便的。 showImg(https://segmentfault.com/img/bVbb0N7?w=222&h=223); 2017年9月3日,對世界上的大多數人來說,或許就只是普...
小編寫這篇文章的主要目的,主要是給大家來做一個介紹,介紹關于python pypandas中的相關案例解讀,解讀一下Dataframe與num,該怎么進行二次輸出呢?下面給大家詳細的解答下。 Series series是一種一維的數組型對象,它包含了一個值序列和一個數據標簽 importpandasaspd importnumpyasnp 創建第一個series: s1=pd.S...
摘要:理解迭代對象迭代器生成器后端掘金本文源自作者的一篇博文,原文是,俺寫的這篇文章是按照自己的理解做的參考翻譯。比較的是兩個對象的內容是后端掘金黑魔法之協程異步后端掘金本文為作者原創,轉載請先與作者聯系。 完全理解關鍵字with與上下文管理器 - 掘金如果你有閱讀源碼的習慣,可能會看到一些優秀的代碼經常出現帶有 with 關鍵字的語句,它通常用在什么場景呢?今天就來說說 with 和 上下...
摘要:時代,如果需要手動繼承,如多態多態是指,不同的子類對象調用相同的父類方法,會產生多態多樣結果的編程特性。 參考:黑馬程序員教程 - Python基礎 面向對象 OOP三大特性,且三個特性是有順序的: 封裝 繼承 多態 封裝 指的就是把現實世界的事務,封裝、抽象成編程里的對象,包括各種屬性和方法。這個一般都很簡單,不需要多講。 唯一要注意的就是:推薦從小往大開始封裝、開發類。比如手槍...
摘要:源網頁說明文檔所有關于你應該且必須知道的。性能和優化概述的兼容性旨在兼容多種不同版本的支持的兼容性地理框架打算成為世界級的地理框架。其目標是盡可能簡單地構建應用程序并利用空間使能數據的功能。 源網頁:https://docs.djangoproject.co... django說明文檔 所有關于django你應該且必須知道的。 第一步 你是否django編程新手,那就從此開始!從零開始...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02