Pandas のデータフレームを CSV ファイルやテキストファイルに出力する

このページでは、Pandas を用いて作成したデータフレームや Pandas を用いて加工したデータを CSV ファイルやテキストファイルとして書き出す方法 (エクスポートする方法) についてご紹介します。

CSV ファイルとして出力する: DataFrame.to_csv() メソッド

Pandas には、CSV ファイルとして出力するメソッドとして、DataFrame.to_csv() メソッドが存在します。また、この際、区切り文字を CSV ファイルで用いるカンマ (,) から タブ (\t) などへ置き換えることで、テキストファイルとして出力する事もできます。

DataFrame.to_csv メソッドの書式と引数 (オプション)

DataFrame.to_csv(path_or_buf=None, sep=', ', na_rep='', float_format=None, columns=None, header=True,
  index=True, index_label=None, mode='w', encoding=None, compression=None, quoting=None,
  quotechar='"', line_terminator='\n', chunksize=None, tupleize_cols=False, date_format=None,
  doublequote=True, escapechar=None, decimal='.')

引数を指定することで、出力するファイル名のほか、区切り文字などのフォーマット、列名、行名の出力有無を指定可能です。以下に主な引数を紹介します。

path_or_buf 出力するファイル名。省略した場合は、コンソール上に文字列として出力されます。
sep 区切り文字 (デフォルト: , (カンマ) )
index 行名を出力するかどうか。Falseを指定した場合、行名は出力されません。(デフォルト: True)
encoding 出力する際の文字コード。’utf-8′, ‘shift_jis’, ‘euc_jp’ などを指定。参考: Python の文字コードの一覧 (デフォルト: Python 3 の場合 “utf-8”, Python 2 の場合 “ascii”)

コード例

以下に実際に作成した Pandas のデータフレームをファイルとして出力するコードの例を紹介します。

CSV ファイルとして出力する

import pandas as pd

# データフレームを作成
df = pd.DataFrame([
  ["0001", "John", "Engineer"],
  ["0002", "Lily", "Sales"]],
  columns=['id', 'name', 'job'])

# CSV ファイル (employee.csv) として出力
df.to_csv("employee.csv")

出力したファイルは以下のように Excel などの表計算ソフトで開くことができます。
pandas-csv-excel

テキストファイルとして出力する

# テキストファイル (employee.txt) として出力
df.to_csv("employee.csv", sep=",")

出力したファイルは以下のようにメモ帳などのエディタで開くことができます。

textfile

コード例 (日本語を含む場合)

日本語の文字列を含んだデータセットを出力する場合は以下のように、encoding="<文字コード名>" を引数に指定します。

Windows 版のExcel で読み込みできる形式で出力する場合は、以下のように、シフト JIS 形式で出力する必要があります。Python で使える文字コードの一覧は 7.2.3. Standard Encodings にあります。

import pandas as pd

# データフレームを作成
df = pd.DataFrame([
  ["1001", "山田 裕司", "エンジニア"],
  ["1002", "佐々木 美紀", "営業"]],
  columns=['id', 'name', 'job'])

# Shift-JIS 形式の CSV ファイル (employee.sjis.csv) して出力
df.to_csv("employee.sjis.csv", encoding="shift_jis")

参考: pandas.DataFrame.to_csv — pandas 0.18.1 documentation