LoginSignup
6
6

More than 3 years have passed since last update.

csvをpickleで保存して読み取りを速くする

Posted at

はじめに

データ読み込みに毎回何十秒もかかっていたらデータ分析どころではありません。
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両方とも出力しておくのが良いでしょう。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6