PandasのデータフレームからCSVへの追記の方法があまり見つからなかったので、備忘録を兼ねて書いてみる。
参考
Pandas のデータフレームを CSV ファイルやテキストファイルに出力する
環境
OS : macOS Sierra(10.12.3)
Python : 3.5.1
Pandas : 0.21.0
まず、pipでpandasを導入する。
$pip pandas
基本的な書き込み
employee.py
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")
,id,name,job
0,0001,John,Engineer
1,0002,Lily,Sales
index部分がいらない場合はオプションを追加します。
employee.py
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", index=False)
id,name,job
0001,John,Engineer
0002,Lily,Sales
日本語を含む場合はオプションでエンコードを指定します。しなかった場合文字化けする可能性があります。
employee.py
import pandas as pd
# データフレームを作成
df = pd.DataFrame([
["0001", "ジョン", "Engineer"],
["0002", "リリィ", "Sales"]],
columns=['id', 'name', 'job'])
# CSV ファイル (employee.csv) として出力
df.to_csv("employee.csv", index=False, encoding="utf-8")
id,name,job
0001,ジョン,Engineer
0002,リリィ,Sales
既に存在するCSVファイルに対して追記する場合はオプションでmodeとヘッダーの設定を変更します。
employee.py
import pandas as pd
# データフレームを作成
df = pd.DataFrame([
["0001", "ジョン", "Engineer"],
["0002", "リリィ", "Sales"]],
columns=['id', 'name', 'job'])
w = pd.DataFrame([["0003", "ジョー", "Teacher"]])
# CSV ファイル (employee.csv) として出力
# df.to_csv("employee.csv", index=False, encoding="utf-8", mode='a')
# CSV ファイル (employee.csv) に追記
w.to_csv("employee.csv", index=False, encoding="utf-8", mode='a', header=False)
id,name,job
0001,ジョン,Engineer
0002,リリィ,Sales
0003,ジョー,Teacher
以上です。
要するに.to_csvのオプションを変更すれば色々出来るという話でした。
今回紹介した以外のオプションは以下を参照してください。
pandas.DataFrame.to_csv