yiskw note

機械学習やプログラミングについて気まぐれで書きます

【Pandas】DataFrameを綺麗に整形されたStringに変換するtabulate


概要

PandasのDataFrameをStringに変換する方法として,DataFrameのto_stringメソッドを使用する方法(参考)があげられますが,
こちらで出力される結果は見にくく,別の方法がないかと探しておりました.
そこでDataFrameを綺麗に整形されたStringに変換できるtabulateというライブラリを見つけたので,こちらに使い方をメモしておきます.

tabulateとは

github.com

Pretty-print tabular data in Python, a library and a command-line utility.

READMEに書かれている通り,テーブルデータを綺麗に整形するライブラリです.
githubpsqlrst, jira形式など,様々な表形式に変換することができます.

インストール方法

pipでインストールできます

pip install tabulate

使い方

tabulate.tabulateにDataFrameとヘッダー,表形式を渡すだけで,簡単に整形してくれます.
ヘッダーとして,DataFrameのカラム名を使用する際は,headers="keys"と指定すれば良いです.
対応している表形式に関してはこちらをご参照してください.

from tabulate import tabulate


df = pd.DataFrame(
    {
        "Name": ["Alice", "Bob"],
        "Age": [24, 19],
        "Height": [170, 175],
    }
)

print(df.to_string())
"""出力
    Name  Age  Height
0  Alice   24     170
1    Bob   19     175
"""

print(tabulate(df, , headers="keys", tablefmt="psql"))
"""出力
+----+--------+-------+----------+
|    | Name   |   Age |   Height |
|----+--------+-------+----------|
|  0 | Alice  |    24 |      170 |
|  1 | Bob    |    19 |      175 |
+----+--------+-------+----------+
"""


print(tabulate(df, , headers="keys", tablefmt="rst"))
"""出力
====  ======  =====  ========
  ..  Name      Age    Height
====  ======  =====  ========
   0  Alice      24       170
   1  Bob        19       175
====  ======  =====  ========
"""

DataFrameのto_stringに比べて,かなり見やすく出力されているのが確認できました!

Reference