こんにちは!
新米データサイエンティストのぽむです。
今日、会社で10GBくらいのcsvファイルをpandasで読み込もうとしました。
しかし、待てど暮らせど読み込みが終わらない...
これではお仕事にならないので、読み込み速度を速める方法を調べました。共有します!
①dtype引数の指定
read_csvにはdtypeを指定する引数があります。
例えば、下記のコードのようにカラムごとに設定できます。
import pandas as pd
pd.read_csv(file_path, dtype={"カラム名1": float, "カラム名2": int})
これをやるだけで、30分以上かかっていた読み込みが2分になりました🤗
②読み込みたいカラムだけを指定する
csvファイルの中身を見ると、分析には使えないカラムもたくさんありました。
そこでread_csvのusecols引数で読み込みたいカラムだけを指定しました。
import pandas as pd
pd.read_csv(file_path, usecols=["カラム名1", "カラム名2"])
これも少し早くなりました。また、読み込み速度だけではなくてメモリの節約にもなってお得です!
おわりに
他にもDaskというライブラリを使うととても速いみたいですが、難しそうなのでまた今度調べます!
ありがとうございました!