もた日記

くだらないことを真面目にやる

Pythonメモ : pandas-profilingでDataFrameのプロファイリング

pandas-profiling

github.com

pandas-profilingというpandasのDataFrameのプロファイリング結果を出力するライブラリがあったので試してみる。取得したデータの概要を知りたいときに使えそう。
プロファイリング結果として表示されるデータについてはJupyter Notebookでのデモ(隕石落下データ)で確認できる。

f:id:wonder-wall:20180212170036p:plain


インストール

pipcondaでインストールできる。

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


使い方

Jupyter Notebookで使用するのが簡単。 流れとしてはデータを読み込んで、

import pandas as pd
import pandas_profiling

df=pd.read_csv("/myfilepath/myfile.csv", parse_dates=True, encoding='UTF-8')

下記コマンドを実行するだけ。

pandas_profiling.ProfileReport(df)

結果をHTMLで出力したい場合は以下のようにする。

profile = pandas_profiling.ProfileReport(df)
profile.to_file(outputfile="/tmp/myoutputfile.html")

その他、profile_csv.pyというスクリプトが用意されており、CSVファイルを入力として実行する方法もある。

$ python profile_csv.py input.csv -o out.html


プロファイリング結果

Irisデータセットで試してみる。

import pandas as pd
import pandas_profiling
from sklearn import datasets

iris = datasets.load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
pandas_profiling.ProfileReport(df)

プロファイリング結果は下記4つのパートで構成されている。
詳細を知りたい場合はJupyter Notebookでのデモ(隕石落下データ)を参照。


Overview(概要)

f:id:wonder-wall:20180212161950p:plain


Variables(各変数の結果)

f:id:wonder-wall:20180212162003p:plain


Correlations(相関)

f:id:wonder-wall:20180212162011p:plain


Sample(実データ)

f:id:wonder-wall:20180212162021p:plain