【てぃーえすぶいふぁいる】

TSVファイル とは?

💡 タブで値を区切るデータファイル、CSVの仲間
📌 このページのポイント
TSVファイル — タブ区切りのデータ形式 TSVの中身(テキスト) 名前 TAB 年齢 TAB 職業 田中 28 エンジニア 佐藤 35 デザイナー 鈴木 42 マネージャー 表として表示 名前 年齢 職業 田中 28 エンジニア 佐藤 35 デザイナー 鈴木 42 マネージャー CSV(カンマ区切り) 田中,28,エンジニア データにカンマがあると問題 TSV(タブ区切り) 田中→28→エンジニア タブはデータに含まれにくい
TSVファイルのデータ形式イメージ
ひよこ ひよこ

TSVってCSVとどう違うの?

ペンギン先生 ペンギン先生

CSVはカンマで区切り、TSVはタブ(\t)で区切る。住所や文章など「カンマを含むデータ」を扱うとき、CSVだとクォーティング処理が必要で複雑になる。タブは通常のデータにあまり含まれないのでTSVの方がシンプルに書ける場合がある。

ひよこ ひよこ

どんなデータに使われるの?

ペンギン先生 ペンギン先生

データベースのエクスポート・ログ分析機械学習データセットなど。特にコーパス(文章の集まり)のような、カンマを含む可能性があるデータでよく使われる。Excelで開くと自動的にタブを列の区切りとして認識する。

ひよこ ひよこ

Pythonで読み込むには?

ペンギン先生 ペンギン先生

pandasなら「df = pd.read_csv('data.tsv', sep='\t')」。組み込みcsvモジュールなら「csv.reader(f, delimiter='\t')」と書く。CSVとほぼ同じコードで区切り文字を指定するだけ。

ひよこ ひよこ

CSVTSVの他にもデータ交換フォーマットってあるの?

ペンギン先生 ペンギン先生

JSONXMLはもちろん、最近ではParquet(パーケ)やArrow(アロー)というカラムナフォーマットが注目されているよ。これらはデータを列ごとにまとめて圧縮するから、大規模データの分析で劇的に速い。ただしテキストエディタで開けないバイナリ形式だから、手軽に中身を確認したいときはCSV/TSVの方が便利だね。

ひよこ ひよこ

TSVファイルの中にタブ文字を含むデータがあったらどうなるの?

ペンギン先生 ペンギン先生

これがTSVの弱点で、データ中にタブ文字があると区切りが狂ってしまうんだ。CSVならダブルクォートで囲んでエスケープできるけど、TSVには標準的なエスケープ規則がない。実務ではタブ文字をスペースに置換してからTSV化するか、そもそもJSONParquetを使うことが多い。完璧な区切り文字は存在しないから、データの特性に合わせてフォーマットを選ぶのが大事だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
TSVファイルって出てきたら「タブ文字で値を区切るデータファイル、CSVのタブ区切り版」と思えばOK!
📖 おまけ:英語の意味
「Tab-Separated Values」 = タブ区切り値
💬 CSVのカンマをタブに変えた形式。データにカンマが含まれる可能性がある場合(文章データなど)にCSVよりシンプルに扱えることがある
← 用語集にもどる