CSVファイルへデータを書き込む方法です。
Pythonで分析したデータや機械学習の出力は、CSVファイルに書き込んで保存することができます。
pandasライブラリを利用します。
CSVファイルに書き込む方法(to_csv)
CSVファイルに書き込むデータを用意します。
5行2列のデータが用意できました。
sampleをCSVファイルに書き込みます。
これで、sampleのデータを、CSVファイルに書き込んで保存することができました。
新たなファイルが作成されるか、既存のファイルがあるときは、既存のファイルに上書きされます。
上書きの警告がでませんので、気を付けてください。
作成したCSVファイルは、Pythonの作業ディレクトリ(カレントディレクトリ)に保存されています。
Pythonの作業ディレクトリ(カレントディレクトリ)
「ls」コマンドで、カレントディレクトリのフォルダやファイルの一覧が表示されます。
Windows環境では、上記のように表示されます。
LinuxやMac環境でも、カレントディレクトリが確認できます。
「ls」はLinuxのコマンドですが、Jupyter Notebookでも使用できます。
CSVファイルの確認
「ls」コマンドで「potesara.csv」はデスクトップに保存されていることがわかりましたので、メモ帳で開いてみます。
sampleの内容が書き込まれています。
主なパラメーター
to_csvは、パラメーターを設定することができます。
パラメーターを設定することで、CSVファイルに書き込む内容を調整することができます。
CSVファイルに書き込むデータ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のパラメーターの使い方がわかった