【Python】表形式のデータが作成可能なtabulateのインストール

【Python】表形式のデータが作成可能なtabulateのインストール プログラミング

「CUIで出力結果を表形式にしたい」
「DataFrame (データフレーム)をそのままhtmlタグに変更したい」
「Pythonで印刷用のデータを出力したい」

このような場合には、tabulateが利用できます。
この記事では、tabulateについて解説しています。

本記事の内容

  • tabulateとは?
  • tabulateのシステム要件
  • tabulateのインストール
  • tabulateの動作確認

それでは、上記に沿って解説していきます。

tabulateとは?

tabulateは、データを表形式で綺麗に表示するPythonライブラリです。
GUIではなくCUIにおける表示の話となります。

言葉で説明するより、見た方が早いです。

+----------+----------+---------------------+ 
| Planet   |   R (km) |   mass (x 10^29 kg) | 
+==========+==========+=====================+ 
| Sun      |   696000 |          1.9891e+09 | 
+----------+----------+---------------------+ 
| Earth    |     6371 |       5973.6        | 
+----------+----------+---------------------+ 
| Moon     |     1737 |         73.5        | 
+----------+----------+---------------------+ 
| Mars     |     3390 |        641.85       | 
+----------+----------+---------------------+

tabulateを使えば、このような表示がCUIで可能になります。
CUIしか利用できない環境において、活躍する機能と言えます。

また、出力形式を選択できます。
html形式にすれば、table、tr、tdのタグ形式で出力されます。
latex形式にすれば、そのまま印刷用データにもなります。

以上、tabulateについての説明でした。
次は、tabulateのシステム要件を確認します。

tabulateのシステム要件

現時点(2021年10月)でのtabulateの最新バージョンは、0.8.9となります。
この最新バージョンは、2021年2月22日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

サポート対象となるPythonのバージョンは、以下となります。

  • Python 2.7
  • Python 3.5
  • Python 3.6
  • Python 3.7
  • Python 3.8
  • Python 3.9

ちょっとサポート範囲が広すぎですね。
以下は、Python公式開発サイクルになります。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年10月4日2026年10月

Python公式開発サイクルと比較すると、もう古いPythonは切り捨ててもよいと思います。
Python 2はもちろん、Python 3.5もです。
ライブラリによっては、Python 3.6のサポートを辞めているモノもあります。

なお、Pythonのアップグレードについては以下の記事で説明しています。

まとめると、tabulateのシステム要件はほぼありません。
Pythonが動けば、基本的には問題ないでしょう。

以上、tabulateのシステム要件を説明しました。
次は、tabulateをインストールします。

tabulateのインストール

検証は、次のバージョンのPythonで行います。

>python -V 
Python 3.9.7

まずは、現状のインストール済みパッケージを確認しておきます。

>pip list 
Package    Version 
---------- ------- 
pip        21.3 
setuptools 58.2.0

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、tabulateのインストールです。
tabulateのインストールは、以下のコマンドとなります。

pip install tabulate

インストールは、一瞬で終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list 
Package    Version 
---------- ------- 
pip        21.3 
setuptools 58.2.0 
tabulate   0.8.9

依存するパッケージは、ゼロです。
よって、どんな環境にでもtabulateを気軽に導入できます。

以上、tabulateのインストールについて説明しました。
最後は、tabulateの動作確認を行います。

tabulateの動作確認

tabulateの動作確認を行うサンプルコードです。
Python APIとして利用しています。

from tabulate import tabulate 

table = [["Sun", 696000, 1989100000], ["Earth", 6371, 5973.6], 
         ["Moon", 1737, 73.5], ["Mars", 3390, 641.85]] 

print(tabulate(table, headers=["Planet", "R (km)", "mass (x 10^29 kg)"], tablefmt="grid"))

上記コードを実行した結果は、以下。
「tabulateとは? 」で示したテーブル表示は、以下と同じです。

+----------+----------+---------------------+ 
| Planet   |   R (km) |   mass (x 10^29 kg) | 
+==========+==========+=====================+ 
| Sun      |   696000 |          1.9891e+09 | 
+----------+----------+---------------------+ 
| Earth    |     6371 |       5973.6        | 
+----------+----------+---------------------+ 
| Moon     |     1737 |         73.5        | 
+----------+----------+---------------------+ 
| Mars     |     3390 |        641.85       | 
+----------+----------+---------------------+

「tablefmt」の値により、表の表現方法を変えることが可能です。

「tablefmt=”presto”」の場合

 Planet   |   R (km) |   mass (x 10^29 kg) 
----------+----------+--------------------- 
 Sun      |   696000 |          1.9891e+09 
 Earth    |     6371 |       5973.6 
 Moon     |     1737 |         73.5 
 Mars     |     3390 |        641.85

「tablefmt=”html”」の場合

<table> 
<thead> 
<tr><th>Planet  </th><th style="text-align: right;">  R (km)</th><th style="text-align: right;">  mass (x 10^29 kg)</th></tr> 
</thead> 
<tbody> 
<tr><td>Sun     </td><td style="text-align: right;">  696000</td><td style="text-align: right;">         1.9891e+09</td></tr> 
<tr><td>Earth   </td><td style="text-align: right;">    6371</td><td style="text-align: right;">      5973.6       </td></tr> 
<tr><td>Moon    </td><td style="text-align: right;">    1737</td><td style="text-align: right;">        73.5       </td></tr> 
<tr><td>Mars    </td><td style="text-align: right;">    3390</td><td style="text-align: right;">       641.85      </td></tr> 
</tbody> 
</table>

現状では、以下のフォーマットを選択可能です。

plainsimplegithubgridfancy_grid
pipeorgtbljiraprestopretty
psqlrstmediawikimoinmoinyoutrack
htmlunsafehtmllatexlatex_rawlatex_booktabs
latex_longtabletextiletsv

以上、tabulateの動作確認の説明でした。

タイトルとURLをコピーしました