データの調査をするときにPandas profiingはかなり有用ですよね。
僕も最初のデータ調査のときにはPandas profilingを使って、データの統計量や欠損、分布などなど調べることにしています。
なにせ1コマンドで簡単にこれらができるので、ありがたいったらありゃしないのです。
ところがこの前、このpandas profilingをしたらメモリエラーが出てしまいました。
このときのデータはエクセルだと読み込みもできないような容量のデータで、pandas profilingの限界を越えてしまったようです。
たしかに基本的な統計量ぐらいだったら簡単ですが、pandas profilingはデフォルトでピアソンの相関係数など、思ったより多くのことを計算してくれています。
そのためデータが大きいとメモリエラーが出たり、エラーは出なくても1時間とか時間がかかることがあります。
さすがにメモリエラーや計算に1時間とかかかると困るので、どうしたらいいものかと思っていたらいいオプションがありました!
今回はそちらを紹介したいと思います。
-
データサイエンティストとして3年間で3社経験した僕の転職体験談まとめ
こんにちわ、サトシです。33歳です。 今回は、データサイエンティストの3年間に3社で働いた僕が、データサイエンティストとしての転職活動についてまとめて書きたいと思います。 これまでSE→博士研究員→ポ ...
-
データサイエンティスト経験3年の僕がフリーランスとして独立するまでの体験談
こんにちわ、サトシです。 今回は、企業でデータサイエンティストとして働いていた僕が、フリーランスとしてどのような手順で独立していったかについて書いていきたいと思います。 僕はSIer SE→博士過程→ ...
minimal=True を設定しよう
結論から言うと、pandas profilingでメモリエラーを解消したり、計算時間を短縮したいという場合は、オプションとして"minimal=True"の設定をしましょう。
こんな感じです。
[/] pandas profiling
import pandas_profiling as pdp
pdp.ProfileReport(df, minimal=True)
この設定をすると相関係数の計算はスキップし、基本的な統計量や欠損、分布などの計算のみを実施してくれるので、メモリエラーは回避できる可能性が高くなりますし、計算時間も短くなります。
なので、エラーや計算時間で困っている人はぜひminimal=True設定をしてやってみてください!