【Python入門】保存するデータをCSVファイルに書き込む方法

csv-write pandas

CSVファイルへデータを書き込む方法です。
Pythonで分析したデータや機械学習の出力は、CSVファイルに書き込んで保存することができます。

pandasライブラリを利用します。

CSVファイルに書き込む方法(to_csv)

CSVファイルに書き込むデータを用意します。

pandas
In [1]:    import pandas as pd
In [2]:    sample = pd.DataFrame([['男爵いも','2個'],['玉ねぎ','1/4個'],
                                  ['にんじん','1/4本'],['リンゴ','1/4個'],
                                  ['干しぶどう','40g']], columns={'材料','数量'})
In [3]:    sample    
Out[3]:           材料	    数量
           0	男爵いも    2個
           1	玉ねぎ	    1/4個
           2	にんじん    1/4本
           3	リンゴ      1/4個
           4	干しぶどう  40g

In [1]: pandasが使えるようにする(ライブラリの読み込み)。
In [2]: sampleに、pandasのDataFrameを作成して入れる。
In [3]: sampleを表示する。
Out[3]: sampleの内容

5行2列のデータが用意できました。

sampleをCSVファイルに書き込みます。

pandas
In [1]:    sample.to_csv('potesara.csv')

In [1]: sampleを、CSVファイル「potesara.csv」に書き込む。

これで、sampleのデータを、CSVファイルに書き込んで保存することができました。

新たなファイルが作成されるか、既存のファイルがあるときは、既存のファイルに上書きされます。
上書きの警告がでませんので、気を付けてください。

作成したCSVファイルは、Pythonの作業ディレクトリ(カレントディレクトリ)に保存されています。

Pythonの作業ディレクトリ(カレントディレクトリ)

「ls」コマンドで、カレントディレクトリのフォルダやファイルの一覧が表示されます。

pandas
In [1]:    ls
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は A509-143D です

 C:\Users\user\Desktop のディレクトリ

 2019/10/17  10:02    <DIR>          .
 2019/10/17  10:02    <DIR>          ..  
 2019/10/17  17:28               123 potesara.csv 

In [1]: 「ls」コマンドを実行する。

Windows環境では、上記のように表示されます。
LinuxやMac環境でも、カレントディレクトリが確認できます。

「ls」はLinuxのコマンドですが、Jupyter Notebookでも使用できます。

CSVファイルの確認

「ls」コマンドで「potesara.csv」はデスクトップに保存されていることがわかりましたので、メモ帳で開いてみます。

メモ帳CSV
図1: potesara.csv

sampleの内容が書き込まれています。

主なパラメーター

to_csvは、パラメーターを設定することができます。
パラメーターを設定することで、CSVファイルに書き込む内容を調整することができます。

CSVファイルに書き込むデータsampleを確認します。

index
図2: sample

CSVファイルに書き込む内容として、以下の4つを調整します。

  • 「インデックス」のあり、なし
  • 「列名(カラム名)」のあり、なし
  • 書き込む列名の選択(列名「材料」だけを書き込み)
  • 文字コード(encoding)
path_or_buf ファイルのパス 第一引数で指定するなら不要
sep 使用する区切り文字 デフォルト: ‘,’
header 列名の書き込み デフォルト(あり): True
なし: False
index インデックスの書き込み デフォルト(あり): True
なし: False
columns 書き込む列を指定 デフォルト: None
encoding 出力ファイルのエンコーディング デフォルト: ‘utf-8’
Windows(日本語):’cp932′

path_or_buf

ファイルの保存場所と、ファイル名を指定します。
第一引数として記述するときは、「path_or_buf」は省略できます。

# 第一引数の例
sample.to_csv('/Users/user/Desktop/potesara.csv') 

# 第二引数の例(普通は使いません)
sample.to_csv(index=True, path_or_buf='/Users/user/Desktop/potesara.csv')

ファイルの保存場所までの道筋「パス」は、2つの書き方があります。
・絶対パス
・相対パス
状況に応じて使い分けますが、上記のコードは「絶対パス」で記述しています。

Windows環境での例になりますが、「C:\Users\user\Desktop」を意味します。
ログインしたユーザー名のデスクトップに保存されたファイルです。

sep

区切り文字をしていします。

CSVファイルはデフォルトで省略できますが、区切り文字に’\t’を使う’TSVファイルとして保存するときに設定します。

タブを表す記号は、’\(バックスラッシュ)t’ですが、システム環境で表示がことなります。(キーボードの右下、ひらがなの「ろ」のキー)

header

列名(カラム名)のありなしを設定します。

# ヘッダーありの例
sample.to_csv('/Users/user/Desktop/potesara.csv', header=True) 

# ヘッダーなしの例
sample.to_csv('/Users/user/Desktop/potesara.csv', header=False)

index

インデックスのありなしを設定します。

# インデックスありの例
sample.to_csv('/Users/user/Desktop/potesara.csv', index=True) 

# インデックスなしの例
sample.to_csv('/Users/user/Desktop/potesara.csv', index=False)

columns

書き込む列を指定することができます。
書き込む列は、[‘列名’]と記述します。

# 列名「材料」だけを書き込む例
sample.to_csv('/Users/user/Desktop/potesara.csv', columns=['材料'])

encoding

出力ファイルの文字コード(エンコーディング)を指定します。

通常はデフォルトのUTF-8で問題ありませんが、作成したCSVファイルをExcelで開くと文字化けすることがあります。

CP932でエンコーディングすれば、日本語の文字化けは解決します。

# CP932でエンコーディングする例
sample.to_csv('/Users/user/Desktop/potesara.csv', encoding='cp932')

まとめ

  • pandasを利用して、CSVファイルに書き込むことができた
  • to_csvのパラメーターの使い方がわかった

関連情報

【Python入門】CSVファイルをコード1行で読み込む方法

タイトルとURLをコピーしました