Pythonのpandasを使っていると、分析結果などをデータフレームを表形式で出力することがありますが、このままでは見づらく、解析結果を他の人に共有するのも難しいです。そこで、今回はデータフレームをマークダウン形式やHTMLに変換する方法を紹介します。
Contents
マークダウン形式とは
マークダウン形式は、プレーンなテキスト文書をHTMLに変換するための軽量マークアップ言語です。そのため、ブログ記事やGitHubのREADME.mdなどによく利用されます。
マークダウン形式では、簡潔な記述方法で、見出し、リスト、表などを表現することができます。また、HTMLを使うよりも見た目の整った文書を簡単に作成することができます。
pandasのto_markdownメソッド
pandasには、データフレームをマークダウン形式に変換するためのメソッドがあります。それが、to_markdown()です。to_markdownメソッドでは、デフォルトでパイプ記号(|)を使った表形式に変換されますが、引数を指定することでハイフン(-)を使った表形式、HTML形式、またはGitHub Flavored Markdown形式に変換することもできます。
以下は、to_markdownメソッドを使ってデータフレームをマークダウン形式に変換する例です。
import pandas as pd # データフレームの作成 df = pd.DataFrame({'name': ['aaa', 'bbb', 'ccc'], 'score': [90, 80, 70]}) # マークダウン形式に変換 df_markdown = df.to_markdown() # 出力 print(df_markdown)
出力結果は以下のようになります。
| | name | score | |—:|:——-|——–:| | 0 | aaa | 90 | | 1 | bbb | 80 | | 2 | ccc | 70 |
それでは、引数を指定してさまざまな形式に変換してみましょう。
ハイフンを使った表形式
to_markdownメソッドでは、デフォルトでパイプ記号を使った表形式に変換されますが、引数を指定することで、ハイフンを使った表形式に変換することができます。以下は、引数tablefmtに’pipe’を指定して、パイプ記号を使った表形式に変換する例です。
import pandas as pd # データフレームの作成 df = pd.DataFrame({'name': ['aaa', 'bbb', 'ccc'], 'score': [90, 80, 70]}) # マークダウン形式に変換(ハイフンを使った表形式) df_markdown = df.to_markdown(tablefmt='pipe') # 出力 print(df_markdown)
出力結果は以下のようになります。
| | name | score |
|—:|:——-|——–:|
| 0 | aaa | 90 |
| 1 | bbb | 80 |
| 2 | ccc | 70 |
HTML形式で出力する
to_markdownメソッドでは、引数を指定することで、HTML形式に変換することができます。以下は、引数tablefmtに’html’を指定して、HTML形式に変換する例です。
import pandas as pd # データフレームの作成 df = pd.DataFrame({'name': ['aaa', 'bbb', 'ccc'], 'score': [90, 80, 70]}) # マークダウン形式に変換(HTML形式) df_markdown = df.to_markdown(tablefmt='html') # 出力 print(df_markdown)
出力結果は以下のようになります。
<table>
<thead>
<tr><th style=”text-align: right;”> </th><th>name</th><th style=”text-align: right;”>score</th></tr>
</thead>
<tbody>
<tr><td style=”text-align: right;”> 0 </td><td>aaa</td><td style=”text-align: right;”> 90</td></tr>
<tr><td style=”text-align: right;”> 1 </td><td>bbb</td><td style=”text-align: right;”> 80</td></tr>
<tr><td style=”text-align: right;”> 2 </td><td>ccc</td><td style=”text-align: right;”> 70</td></tr>
</tbody>
</table>
関連記事:【pandas】データフレームをhtmlのテーブルタグとして出力する
GitHub Flavored Markdown形式
GitHub Flavored Markdown形式は、GitHubで使われているマークダウン形式で、ハイフンを使った表形式に対応しています。to_markdownメソッドでは、引数を指定することで、GitHub Flavored Markdown形式に変換することができます。以下は、引数tablefmtに’github’を指定して、GitHub Flavored Markdown形式に変換する例です。
import pandas as pd # データフレームの作成 df = pd.DataFrame({'name': ['aaa', 'bbb', 'ccc'], 'score': [90, 80, 70]}) # マークダウン形式に変換(GitHub Flavored Markdown形式) df_markdown = df.to_markdown(tablefmt='github') # 出力 print(df_markdown)
出力結果は以下のようになります。
出力したテキストを保存する
これらを出力保存するためには以下のコードを実行します。
with open("pandas_table.txt", "w") as f: f.write(df_markdown)
コメント