Python

大規模データのPandas-profilingでメモリエラーが出たり計算時間が長い時は "minimal=True" を設定しよう

データの調査をするときにPandas profiingはかなり有用ですよね。

僕も最初のデータ調査のときにはPandas profilingを使って、データの統計量や欠損、分布などなど調べることにしています。

なにせ1コマンドで簡単にこれらができるので、ありがたいったらありゃしないのです。

ところがこの前、このpandas profilingをしたらメモリエラーが出てしまいました。

このときのデータはエクセルだと読み込みもできないような容量のデータで、pandas profilingの限界を越えてしまったようです。

たしかに基本的な統計量ぐらいだったら簡単ですが、pandas profilingはデフォルトでピアソンの相関係数など、思ったより多くのことを計算してくれています。

そのためデータが大きいとメモリエラーが出たり、エラーは出なくても1時間とか時間がかかることがあります。

さすがにメモリエラーや計算に1時間とかかかると困るので、どうしたらいいものかと思っていたらいいオプションがありました!

今回はそちらを紹介したいと思います。

 

minimal=True を設定しよう

結論から言うと、pandas profilingでメモリエラーを解消したり、計算時間を短縮したいという場合は、オプションとして"minimal=True"の設定をしましょう。

こんな感じです。

 

[/] pandas profiling
import pandas_profiling as pdp
pdp.ProfileReport(df, minimal=True)

 

この設定をすると相関係数の計算はスキップし、基本的な統計量や欠損、分布などの計算のみを実施してくれるので、メモリエラーは回避できる可能性が高くなりますし、計算時間も短くなります。

なので、エラーや計算時間で困っている人はぜひminimal=True設定をしてやってみてください!

-Python

Copyright© さとぶろぐ , 2021 All Rights Reserved Powered by AFFINGER5.