此篇文章主要是詳細(xì)介紹了python能夠裝飾數(shù)據(jù)表格輸入數(shù)據(jù)的兩大專用工具,文章內(nèi)容緊扣主題開展詳盡的基本介紹,具有很強(qiáng)的實(shí)用價(jià)值,需用的朋友可以學(xué)習(xí)一下
序言
在用python解決數(shù)據(jù)表格中,這里面的工作中關(guān)鍵就是對報(bào)表種類的信息進(jìn)行整理、運(yùn)算展現(xiàn),文中關(guān)鍵詳細(xì)介紹展現(xiàn)這一相關(guān)的工作。
最先大家看這個(gè)實(shí)例,界定1個(gè)二維數(shù)組方式的數(shù)據(jù)表格:
[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)]
當(dāng)我們直接打印這個(gè)表格數(shù)據(jù)的時(shí)候,發(fā)現(xiàn)效果非常的難看。雖然我們可以從這個(gè)表格中獲取到同樣的信息,但是這種數(shù)據(jù)展示的方法對于我們直接從打印輸出中獲取數(shù)據(jù)是非常不利的。
1.使用tabulate美化表格輸出
首先介紹一個(gè)工具tabulate,可以直接打印數(shù)組格式的表格數(shù)據(jù),并且有多種輸出格式可選。安裝方法同樣可以用pip來進(jìn)行管理:
[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)]#表格內(nèi)容的定義 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的格式打印表格內(nèi)容 +---------+-----+-----+-----+-----+ |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│ ╘═════════╧═════╧═════╧═════╧═════╛
在這個(gè)案例中,我們分別產(chǎn)生了數(shù)組格式的表頭和表格內(nèi)容,然后用tabulate進(jìn)行封裝之后再打印出來。由于tabulate支持多種格式的輸出,這里我們展示的僅有g(shù)rid和fancy_grid兩種個(gè)人比較喜歡的格式
其他類型的格式還有:
"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的主要目的也是規(guī)范化的美化表格數(shù)據(jù)的輸出,但是在使用方法上略有差異,在不同的場景下可以使用不同的方案。
這里我們先看一下prettytable的安裝,同樣可以使用pip來進(jìn)行管理:
[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
安裝完成后我們用一個(gè)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)#打印輸出
代碼的執(zhí)行結(jié)果如下:
[dechin dechin-manjaro table]$python3 pt_test.py +-------+---+---+---+---+ |Index|0|1|2|3| +-------+---+---+---+---+ |Alice|1|2|3|4| |Bob|2|3|4|5| +-------+---+---+---+---+
因?yàn)閼?yīng)用的例子跟上邊推薦的tabulate是差不多的,因而輸入數(shù)據(jù)也類似,等同于多一種輸出格式。但除了輸出格式以外,我們不難發(fā)現(xiàn)prettytable能夠很好的運(yùn)用列和行的加上的方式來開展表格操作,實(shí)際操作習(xí)慣性更接近數(shù)據(jù)庫實(shí)際操作方式,所以對于常常操作數(shù)據(jù)庫的人來說,prettytable很有可能是一類更加好的數(shù)據(jù)表格導(dǎo)出解決方法。
匯總
文中闡述了二種數(shù)據(jù)表格的印刷專用工具:tabulate和prettytable的安裝與基本上操作方法。因?yàn)閿?shù)據(jù)表格本身就是并未對輸出格式開展標(biāo)準(zhǔn)化的,因而直接打印的信息就會(huì)顯得較為雜亂無章,不益于直觀地閱讀文章。因而引進(jìn)這幾種專用工具,增強(qiáng)了輸入數(shù)據(jù)的易讀性。這二者使用上都各有好壞,tabulate適用更多種形式的表格樣式,而prettytable則用了更為接近數(shù)據(jù)庫實(shí)際操作方式,對于有些客戶來講有純天然的資源優(yōu)勢。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/128724.html
摘要:第一步是發(fā)送另一條短信,告訴那些確認(rèn)參與的客人訪問網(wǎng)站,并通過一個(gè)谷歌表單選擇他們的食物選項(xiàng)。所需的只是抓取相關(guān)單元格的內(nèi)容,然后用短信回復(fù)讓婚禮餐飲者了解我們的進(jìn)展,并提供誰沒有選擇的可操作數(shù)據(jù),是非常方便的。 showImg(https://segmentfault.com/img/bVbb0N7?w=222&h=223); 2017年9月3日,對世界上的大多數(shù)人來說,或許就只是普...
小編寫這篇文章的主要目的,主要是給大家來做一個(gè)介紹,介紹關(guān)于python pypandas中的相關(guān)案例解讀,解讀一下Dataframe與num,該怎么進(jìn)行二次輸出呢?下面給大家詳細(xì)的解答下?! eries series是一種一維的數(shù)組型對象,它包含了一個(gè)值序列和一個(gè)數(shù)據(jù)標(biāo)簽 importpandasaspd importnumpyasnp 創(chuàng)建第一個(gè)series: s1=pd.S...
摘要:理解迭代對象迭代器生成器后端掘金本文源自作者的一篇博文,原文是,俺寫的這篇文章是按照自己的理解做的參考翻譯。比較的是兩個(gè)對象的內(nèi)容是后端掘金黑魔法之協(xié)程異步后端掘金本文為作者原創(chuàng),轉(zhuǎn)載請先與作者聯(lián)系。 完全理解關(guān)鍵字with與上下文管理器 - 掘金如果你有閱讀源碼的習(xí)慣,可能會(huì)看到一些優(yōu)秀的代碼經(jīng)常出現(xiàn)帶有 with 關(guān)鍵字的語句,它通常用在什么場景呢?今天就來說說 with 和 上下...
摘要:時(shí)代,如果需要手動(dòng)繼承,如多態(tài)多態(tài)是指,不同的子類對象調(diào)用相同的父類方法,會(huì)產(chǎn)生多態(tài)多樣結(jié)果的編程特性。 參考:黑馬程序員教程 - Python基礎(chǔ) 面向?qū)ο?OOP三大特性,且三個(gè)特性是有順序的: 封裝 繼承 多態(tài) 封裝 指的就是把現(xiàn)實(shí)世界的事務(wù),封裝、抽象成編程里的對象,包括各種屬性和方法。這個(gè)一般都很簡單,不需要多講。 唯一要注意的就是:推薦從小往大開始封裝、開發(fā)類。比如手槍...
摘要:源網(wǎng)頁說明文檔所有關(guān)于你應(yīng)該且必須知道的。性能和優(yōu)化概述的兼容性旨在兼容多種不同版本的支持的兼容性地理框架打算成為世界級的地理框架。其目標(biāo)是盡可能簡單地構(gòu)建應(yīng)用程序并利用空間使能數(shù)據(jù)的功能。 源網(wǎng)頁:https://docs.djangoproject.co... django說明文檔 所有關(guān)于django你應(yīng)該且必須知道的。 第一步 你是否django編程新手,那就從此開始!從零開始...
閱讀 928·2023-01-14 11:38
閱讀 902·2023-01-14 11:04
閱讀 759·2023-01-14 10:48
閱讀 2065·2023-01-14 10:34
閱讀 968·2023-01-14 10:24
閱讀 844·2023-01-14 10:18
閱讀 512·2023-01-14 10:09
閱讀 591·2023-01-14 10:02