DataFrameをcsv形式で出力(エクスポート)する

最終更新日:2022/2/18

DataFrameの操作を学ぶ前に、”DataFrame”をcsv形式で出力(エクスポート)する方法を説明します。

【説明すること】

DataFrameを操作し、意図通りにできたか確認する為、csvで出力して確認することが非常に多いです。
なので、先に出力の方法を知っておく方が、効率的です。

numpy の ndarray は、この方法では出力できません。なので、自分が何を扱っているのか(ここではDataFrame)を意識する事がとても重要です。

データのインポート同様、エクスポートが出来ないと、何も出来ないに等しいです。

詳細は以下のサイトが非常に役に立ちます。
https://note.nkmk.me/python-pandas-to-csv/

pandasでcsv形式で出力する

pandasのdf.to_csv() を使います。

ここでは、例として以下のDataFrameのdf1aをcsvに出力します。


df.to_csv('ファイル名') で出力されます。
但し、日本語を含む場合、後述するオプションが必要です。

ファイルのパスは、例えば、Windowsのドキュメントに保存した場合、
C:\Users\ユーザ名\Documents
となります。以下はユーザー名が shilabo の場合です。
パスを指定する場合”r”を頭に書くと、”\”を”\\”と書く必要がなくなり便利です。Windowsのエクスプローラーからパスをコピーして、そのままペーストするだけよくなります。


ヘッダーが不要な場合、header=Falseをオプションで指定します。


indexも不要な場合、index=False をオプションで指定します。


パスとファイル名を分けたい場合は、以下のように書けばいいです(実務でよく使います)。


出力したcsvのindexの先頭に”日付”や”管理番号”のような名前(カラム名のようなもの)を付けたい場合があります。これは、 index_label=で指定できます。
実践では、csvを作成して、もう一度、そのcsvを読み込む事があり、よく使います。
以下は、”ID”と名前を付けた場合です。

出力されたcsvファイル df1a_idx.csv は以下のようになります。

日本語を含む場合

日本語を含む場合は、オプションencoding='shift_jis' を指定しなければいけません。
指定しないと、文字化けします。Pythonは日本語が苦手です。

以下の例では、カラム名(列名)に日本語を含むので、encoding='shift_jis'を指定します。
shiftとjisの間はアンダースコア(_)でありハイフン(-)ではありません

【覚えたこと】
  • pd.to_csv()を使う。
  • 日本語を含む場合、encoding='shift_jis' をオプションに指定する。
  • header = False / True でヘッダーの有無を指定できる。
  • index = False / True でindexの有無を指定できる。
  • index_label='名前'でindexのヘッダーを指定できる。