Python tabulate モジュール。Pythonで簡単に表を作成する方法とは?

スポンサーリンク

コーダー仲間の皆さん、こんにちは。

この記事では、Pythonで tabulate 関数の助けを借りてテーブルを作成する方法を学び、作成したテーブルに関連するさまざまなプロパティについて学びます。

スポンサーリンク

Python でテーブルを作成するために tabulate モジュールを使用する手順

さっそくですが、tabulateモジュールを使ってPythonで表を作成する手順を紹介します。

1. tabulate` のインポート

最初のステップは、tabulate ライブラリから tabulate 関数をインポートすることです。

もし、エラーが発生した場合は、コマンドプロンプトで pip install コマンドを実行して、tabulate ライブラリがインストールされていることを確認してください。

from tabulate import tabulate

それでは、tabulate関数の助けを借りて、最初の表を作成してみましょう。

2. 簡単なテーブルの作成

テーブルのデータは、後述のコードに示すように、ネストされたリストの形で格納されます。

1
2
3
4
5
6
all_data = [["Roll Number","Student name","Marks"],
            [1,"Sasha",34],
            [2,"Richard",36],
            [3,"Judy",20],
            [4,"Lori",39],
            [5,"Maggie",40]]

データを集計するには、tabulate関数にデータを渡すだけでよい。

また、headersという属性を使って、最初のネストしたリストをテーブルのヘッドにすることができる。

1
2
table1 = tabulate(all_data)
table2 = tabulate(all_data,headers='firstrow')

両方のテーブルの結果は以下のようになります。

-----------  ------------  -----
Roll Number  Student name  Marks
1            Sasha         34
2            Richard       36
3            Judy          20
4            Lori          39
5            Maggie        40
-----------  ------------  -----
Roll Number  Student name      Marks
-------------  --------------  -------
            1  Sasha                34
            2  Richard              36
            3  Judy                 20
            4  Lori                 39
            5  Maggie               40

3. Pythonの表を見栄えよくするための書式設定

Python のテーブルの見栄えを良くするために、テーブルにボーダーを追加して、テキストデータではなく、より表形式に見えるようにすることができます。

このボーダーは tablefmt 属性の値を grid に設定することで追加することができます。

print(tabulate(all_data,headers='firstrow',tablefmt='grid'))
+---------------+----------------+---------+
|   Roll Number | Student name   |   Marks |
+===============+================+=========+
|             1 | Sasha          |      34 |
+---------------+----------------+---------+
|             2 | Richard        |      36 |
+---------------+----------------+---------+
|             3 | Judy           |      20 |
+---------------+----------------+---------+
|             4 | Lori           |      39 |
+---------------+----------------+---------+
|             5 | Maggie         |      40 |
+---------------+----------------+---------+

見栄えをよくするために、単純なグリッドの代わりに fancy_grid を使用することができます。

print(tabulate(all_data,headers='firstrow',tablefmt='fancy_grid'))
╒═══════════════╤════════════════╤═════════╕
│   Roll Number │ Student name   │   Marks │
╞═══════════════╪════════════════╪═════════╡
│             1 │ Sasha          │      34 │
├───────────────┼────────────────┼─────────┤
│             2 │ Richard        │      36 │
├───────────────┼────────────────┼─────────┤
│             3 │ Judy           │      20 │
├───────────────┼────────────────┼─────────┤
│             4 │ Lori           │      39 │
├───────────────┼────────────────┼─────────┤
│             5 │ Maggie         │      40 │
╘═══════════════╧════════════════╧═════════╛

4. tabulateからテーブルのHTMLコードを抽出する

テーブルのHTMLコードを抽出するには、tablefmt属性にhtmlを設定する必要があります。

以下、同様に表示されます。

print(tabulate(all_data,headers='firstrow',tablefmt='html'))
<table>
<thead>
<tr><th style="text-align: right;">  Roll Number</th><th>Student name  </th><th style="text-align: right;">  Marks</th></tr>
</thead>
<tbody>
<tr><td style="text-align: right;">            1</td><td>Sasha         </td><td style="text-align: right;">     34</td></tr>
<tr><td style="text-align: right;">            2</td><td>Richard       </td><td style="text-align: right;">     36</td></tr>
<tr><td style="text-align: right;">            3</td><td>Judy          </td><td style="text-align: right;">     20</td></tr>
<tr><td style="text-align: right;">            4</td><td>Lori          </td><td style="text-align: right;">     39</td></tr>
<tr><td style="text-align: right;">            5</td><td>Maggie        </td><td style="text-align: right;">     40</td></tr>
</tbody>
</table>

結論

この記事では、tabulate関数を使って独自の表形式データを作成し、また、テーブルのいくつかのプロパティについて学びました。

お読みいただきありがとうございました。

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