🐍

DataFrameをマークダウンのテーブル形式に変換する

2022/01/19に公開

モチベーション: 執筆作業を楽にしたい!

  • DataFrameをマークダウンのテーブル形式にしたい!
  • テーブル形式の文字列をプログラムで書いたあと、手動でコピーするのが面倒くさい!

TL;DR

  • pd.DataFrame.to_markdown()を使うとDataFrameをマークダウンでのテーブル形式に変換してくれる
  • 同時にpyperclip.copy()を使うとそのままクリップボードにコピーできるので物書きが捗る

サンプルコード

import pandas as pd
import pyperclip

# てきとーなDataFrameの準備
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Cathy'],
    'age': [18, 25, 34],
    'power': [1, 2.7, 3.14]
})

# マークダウンの形式(文字列型)に変換
table = df.to_markdown(index=True, floatfmt='.2f')

# クリップボードにコピー
pyperclip.copy(table)

上記tableは次のような文字列になっています。

|    | name   |   age |   power |
|---:|:-------|------:|--------:|
|  0 | Alice  |    18 |    1.00 |
|  1 | Bob    |    25 |    2.70 |
|  2 | Cathy  |    34 |    3.14 |

pyperclip.copy(table)でクリップボードに内容がコピーされているのでそのままペーストすればOK! もしこれがないと、いちいち出力をマウスカーソルで範囲指定しないといけないので面倒 👿

実行環境

$ sw_vers 
ProductName:    macOS
ProductVersion: 11.6
BuildVersion:   20G165
requirements.txt
pandas==1.3.3
pyperclip==1.8.2
tabulate==0.8.9
$ pip install pandas pyperclip tabulate 

References

Discussion