Markdown Table vs CSV の使い分けと相互変換(GitHub・Pandas・Excel)

Markdown CSV データ構造 ドキュメント

ドキュメント作成時の Markdown 表(パイプ | 表記)と CSV(カンマ区切り)の比較、用途に応じた選択基準、および自動変換コードです。

1. オンライン Markdown 表生成 & CSV 変換ツール

CSVの貼り付けやExcelからのコピペで Markdown 表を即座に作成・編集できます。

📝 この場でMarkdownのプレビューを確認する

入力
整形結果

整形内容

  • 全角→半角: #→#、-→-、0-9→0-9、[]→[]、()→() など
  • 見出し: ##ああ## ああ
  • リスト: -あ- あ1.あ1. あ
  • 引用: >引用> 引用さらに> 引用さらに > 引用
  • リストインデント: 行頭の全角スペースを半角2つに(ネスト認識のため)
  • :::details: :::details とタイトルの間にスペースを追加
  • テーブル: |a|b|| a | b |
  • 脚注: [^1]:内容[^1]: 内容
  • 水平線: *** / ___---
  • Zenn画像: ![](url=250x)![](url =250x)
  • 保護(変更しない): コードブロック、数式($$/$...$)、\*...\*\[...\]、リンク・画像、:::message:::details:::note<details><!-- -->@[card]
  • 文中の#: 見出し行頭の#のみ半角化、文中の#は維持

対応サービス

以下のサービスで使用されるMarkdown記法に対応しています。他にも多くのサービス(GitHub、GitLab、HackMD、Obsidian など)で利用可能です。

Zenn

対応記法:

  • 見出し・リスト・番号リスト・引用・テーブル・脚注・区切り線
  • 画像: ![](url =250x) 幅指定、キャプション *テキスト*
  • コード: 言語:ファイル名diff js
  • 数式: $$ ブロック、$ インライン(KaTeX)
  • 独自: :::message / :::message alert / :::details:::でネスト)
  • 埋め込み: @[card] @[tweet] @[youtube] @[gist] @[codepen]
  • mermaid・絵文字 :emoji:・HTMLコメント <!-- -->
Qiita

対応記法:

  • GFM準拠 + 拡張。コード: 言語:ファイル名diff_言語
  • :::note info / warn / alert
  • <details><summary> 折りたたみ
  • チェックボックス - [ ] - [x]、説明リスト <dl>
  • 数式: ```math または $`...`$
  • PlantUML・Mermaid・絵文字・リンクカード(URL単独行)
  • 参照リンク [text][ref]、ページ内リンク #見出し
note

対応記法:

  • 見出し・引用・箇条書き・番号リスト・強調・コードブロック・取り消し・区切り線
  • 見出しは h2・h3 のみ(h1 は h2 に変換)
  • 強調: ** 推奨(__ は前後にスペース必要)
  • リスト: -* 混在は非推奨
VSCode / GFM

対応記法:

  • 見出し・リスト・番号リスト・引用・リンク・画像・テーブル・水平線
  • コード: 言語:ファイル名(例: c:main.c
  • 斜体 *・太字 **・打ち消し ~~

※ Zenn・Qiita・note・HackMD・GitHub・GFM など各種Markdown記法に対応。


2. Markdown Table vs CSV 仕様比較表

比較項目Markdown Table (|)CSV (Comma-Separated Values)
主な用途GitHub README, Notion, Qiita, 社内ドキュメントExcel, データベースインポート, Python (Pandas)
可読性 (生テキスト)高い (視覚的に列が揃う)低い (長文やカンマ混在時に見づらい)
プログラミング処理扱いづらい (パーサーが必要)極めて容易 (標準ライブラリでパース可能)
改行・エスケープセル内改行は <br /> を使う必要ありダブルクォート " で囲めばセル内改行可能
ファイルサイズパイプや余白スペース分大きい最小のデータサイズ

3. 使い分けの判断基準

  1. Markdown Table を選ぶべきケース:
    • GitHub / GitLab の README.md や PR の説明欄に表示したいとき。
    • 10行×5列程度までの比較表や仕様一覧。
  2. CSV を選ぶべきケース:
    • 100行を超える大容量データやログ。
    • 今後 Excel や Google スプレッドシートでグラフ化・集計する可能性があるデータ。

4. Python で CSV を Markdown Table に変換するスクリプト

pandas を使うと1行で変換できます。

import pandas as pd

# CSV ファイルの読み込み
df = pd.read_csv('data.csv')

# Markdown 表として出力
markdown_table = df.to_markdown(index=False)
print(markdown_table)
// Node.js で CSV 文字列を簡易 Markdown 表に変換するコード
function csvToMarkdown(csvText) {
  const lines = csvText.trim().split('\n');
  const rows = lines.map(line => line.split(',').map(cell => cell.trim()));
  
  if (rows.length === 0) return '';
  
  const header = `| ${rows[0].join(' | ')} |`;
  const separator = `| ${rows[0].map(() => '---').join(' | ')} |`;
  const body = rows.slice(1).map(row => `| ${row.join(' | ')} |`).join('\n');
  
  return `${header}\n${separator}\n${body}`;
}