St_Hakky’s blog

Data Science / Human Resources / Web Applicationについて書きます

【Python】 Pandas-Profilingを使ってみた

こんにちは。

最近Kaggleとかやっていて、EDAやるのめんどくさいとか思ったりしちゃったりした時に、ざくっと簡単に分析することができないかなぁと思って調べていたら「Pandas-Profiling」というものがあったので、実際に使ってみました。

本家のサイトなど

Githubで公開されています。

Demoを見る感じでは、データを準備したらあとは1行コードを書くだけ、って感じみたいですね。。。すごすぎる。。。

Dependencies

  • インターネットのコネクションが必要:Pandas-Profilingは、BootstrapとかjQueryを使うので(これは注意)
  • python (>= 2.7)
  • pandas (>=0.19)
  • matplotlib (>=1.4)
  • six (>=1.9)

Install

インストールは他のやつと同じです。

pip
$ pip install pandas-profiling
conda
$ conda install pandas-profiling

使い方

基本的にPandas-Profilingが吐き出すレポートはHTMLとCSSをベースにしているので、基本Jupyter Notebookを使うといいのかなと思います(もちろんhtmlとして吐き出すことも可能です)。可視化とかしてぼーっと眺めて分析してとかやるので、基本Jupyterでいいのかなとは思いますが。

以下のNotebookがやってみた例です。簡単すぎて禿げますね。。。

なんか表示が崩れているので、画像でもあげます。

f:id:St_Hakky:20180524090934p:plain

画像をみてもらえればわかりますが、以下のコード一発でいけちゃうという衝撃。

# df に pandasのDataFrameを入れる
pandas_profiling.ProfileReport(df)

こんな感じで可視化してくれます。

f:id:St_Hakky:20180524090821p:plain

また、詳細を表示することもできて、「Toggle details」っていう部分をクリックすると、以下のように表示されます。

f:id:St_Hakky:20180524091029p:plain

基本的にJupyter Notebook以外でも、KaggleのカーネルやGoogleColabでも使えるみたいですので、コンペとか出た時はEDAするときとかは積極的に使っていきたいです。GoogleColabでは、若干手間は必要みたいですが、そんなに難しくないのでいけますね。

それでは。