在Python中如何優雅地創建表格的實現

1. 引言

如果能夠將我們的無序數據快速組織成更易讀的格式,對於數據分析非常有幫助。 Python 提供瞭將某些表格數據類型輕松轉換為格式良好的純文本表格的能力,這就是 tabulate 庫。

閑話少說,我們直接開始吧。 :)

2. 準備工作

安裝tabulate庫
安裝tabulate庫非常容易,使用pip即可安裝,代碼如下:

pip install tabulate

導入tabulate函數
接著我們需要導入我們需要的tabulte函數,如下:

from tabulate import tabulate

準備工作做好後,接下來我們來舉個栗子。

3. 舉個栗子

3.1 使用list生成表格

接著我們假設我們有以下數據:

table = [['First Name', 'Last Name', 'Age'], 
['John', 'Smith', 39], 
['Mary', 'Jane', 25], 
['Jennifer', 'Doe', 28]]

接著我們可以使用 tabulate 函數將上述數據組織成一個更易讀的表格形式,代碼如下:

print(tabulate(table))

結果如下:

在這裡插入圖片描述

由於上述list中的第一個列表包含每列的名稱,我們可以使用以下參數將列名單獨顯示出來,代碼如下:

print(tabulate(table, headers='firstrow'))

結果如下:

在這裡插入圖片描述

tabulate 函數還包提供一個 tablefmt 參數,它允許我們進一步改進表格的外觀,代碼如下:

print(tabulate(table, headers='firstrow', tablefmt='grid'))

結果如下:

在這裡插入圖片描述

相比grid,我更喜歡對 tablefmt 使用fancy_grid參數,其表現形式如下:

print(tabulate(table, headers='firstrow', tablefmt='fancy_grid'))

結果如下:

在這裡插入圖片描述

3.2 使用dict生成表格

當然,在Python中我們也可以使用字典來生成相應的表格。代碼如下:

info = {'First Name': ['John', 'Mary', 'Jennifer'], 
'Last Name': ['Smith', 'Jane', 'Doe'], 
'Age': [39, 25, 28]}

在字典的情況下,鍵通常是列的標題,值將是這些列的元素取值。我們通常通過傳遞“keys”作為 headers 參數的參數來指定鍵是表格的標題:

print(tabulate(info, headers='keys'))

輸出如下:

在這裡插入圖片描述

當然,此時我們也可以使用 tablefmt 參數來改善表格的外觀,代碼如下:

print(tabulate(info, headers='keys', tablefmt='fancy_grid'))

輸出如下:

在這裡插入圖片描述

3.3 增加索引列

進一步來說,我們還可以使用showindex參數來向表格中添加索引列,代碼如下:

在這裡插入圖片描述

3.4 缺失值處理

如果我們從字典中移走’Jennifer’,此時我們的表格將會包含一個空白單元格,代碼如下:

print(tabulate({'First Name': ['John', 'Mary'], 
'Last Name': ['Smith', 'Jane', 'Doe'], 
'Age': [39, 25, 28]}, headers="keys",
 tablefmt='fancy_grid'))

輸出如下:

在這裡插入圖片描述

有時候,我們覺得缺失值用空白格表示不太美觀,此時我們可以設置默認值來顯示,代碼如下:

print(tabulate({'First Name': ['John', 'Mary'], 
'Last Name': ['Smith', 'Jane', 'Doe'], 
'Age': [39, 25, 28]}, headers="keys",
 tablefmt='fancy_grid'))

4. 總結

本文介紹瞭在python中使用tabulate庫來創建表格,並針對輸出形式進行不斷改進來美化輸出效果,並給出瞭代碼示例。

到此這篇關於在Python中如何優雅地創建表格的實現的文章就介紹到這瞭,更多相關Python創建表格內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: