はじめに
データ読み込みに毎回何十秒もかかっていたらデータ分析どころではありません。
pickleで保存したら速いようなのでその方法と欠点をまとめます。
csvをpickleで保存する
import pandas as pd
df = pd.read_csv("/Users/data/alldata.csv")
csvを読み込んで
df.to_pickle('alldata.pickle')
これでpickleが出力されます。
pickleを読み込む
df = pd.read_pickle('/Users/data/alldata.pickle')
適切なパスを指定して読み込みます。
ちなみに各々かかる時間を計測すると、
%time df1 = pd.read_pickle('/Users/data/alldata.pickle')
%time df2 = pd.read_csv('/Users/data/alldata.csv')
CPU times: user 3.36 s, sys: 2.86 s, total: 6.22 s
Wall time: 6.82 s
CPU times: user 29.2 s, sys: 8.65 s, total: 37.8 s
Wall time: 42 s
6倍ほどの差があるようです。
利点と欠点
pickle速いから全部それでいいや、という訳ではなく、csvはデータが破損してもまだ救いようがありますがpickleは厳しいです。
大事なデータはcsvとpickle両方とも出力しておくのが良いでしょう。