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設定をしてやってみてください!

おすすめ記事

1

お疲れさまです! 久しぶりの更新になってしまいましたが、僕が未経験からデータサイエンティストになるまでの転職活動の全記録を書き残しておきたいと思います。 僕は博士号を取得後に研究員として仕事をしていま ...

2

こんにちわ、さとしです! 気がつけばこのデータサイエンティスト転職から、1年が経とうとしています。 今はご時世的に外にも出られず、変化があまりない生活を送ったせいもあってか、なんかあっという間に1年が ...

3

データサイエンティストに転職して1年が経ち、いろいろな業務を経験させてもらいつつ、自分でもある程度本を読んできました。 仕事の話は下記の記事で書きましたが、自分で読んだ本については書いていないのでこの ...

-Python

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