DataFrameをcsv形式で出力(エクスポート)する
最終更新日:2022/2/18
DataFrameの操作を学ぶ前に、”DataFrame”をcsv形式で出力(エクスポート)する方法を説明します。
【説明すること】
- DataFrameをcsv形式で出力する方法(エクスポートの方法)
pandasでcsv形式で出力する - 日本語を含む場合のオプション
encoding='shift_jis'
日本語を含む場合
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のヘッダーを指定できる。