KNIMEとか倉庫

KNIMEやEXCELなどの備忘録です。

【Python】データを一気に眺めたい

・お題:データを眺めるのに、グラフを一つ一つ作成するのが面倒なので、一気に作成したい。

 

・データを扱うすごい人は、データを入手した際に、データの特徴を把握するためにいろいろな角度から眺めるらしい。これは探索的データ分析(EDA)と呼ばれ、とても大事なステップらしい。

・グラフ一つを描くのに時間がかかっていては、いつまで経ってもEDAできないので、簡単にEDAできるパッケージがないか調べてみたところ、いくつか見つかった。

・Pandas-profiling、dtale、sweetviz、Autovizなどが人気らしい。全部試してみても良いけれど、とりあえず扱いやすいっぽいPandas-profilingとAutovizを触ってみた(インストールは割愛)。

・とりあえずデータセットを作成。

import pandas as pd
import numpy as np

V=np.random.normal(0,10,100)
W=[np.random.normal(0,5) + i*1.3 for i in V]
X=[np.random.normal(0,10) + i*(-0.8) for i in V]
Y=[abs(i+10)*10 + 1 for i in V]
Z=np.random.normal(10,10,100)

df=pd.DataFrame(zip(V,W,X,Y,Z),columns=["V","W","X","Y","Z"])

 

・Autovizを試してみる。

from autoviz.AutoViz_Class import AutoViz_Class

%matplotlib inline
autoviz = AutoViz_Class().AutoViz("",dfte=df)#本来はファイルを読み込ませて解析するが、今回はpandasのDataFrameを使ったので、読み込ませるファイル名は空欄で、dfteでデータを指定した。

・たったこれだけのコマンドで、以下のグラフを得た。

①それぞれの変数ペアの散布図

②それぞれの変数ごとの分布に関するグラフ

③バイオリンプロット

④変数同士の相関のヒートマップ

・ぽちぽち自分で作るべきグラフを一気に作成できてしまった。ただし、数値情報はあまりない。

・次に、Pandas-profilingを試してみる。

import pandas_profiling as pdp
pdp.ProfileReport(df)

・たったこれだけのコマンドで、以下の結果を得た。

①データセットの概要

ちなみに、Alertsには「相関高すぎ」などの注意が詰まっている。

②欠損地、ゼロ値などの概略

③基本統計量、ヒストグラム、出現頻度、外れ値(Toggle detailsの中にあった)

④それぞれの変数ペアの散布図

⑤それぞれの変数の相関係数のヒートマップ(Toggle correlation descriptionsの中にcorrelationの解説が入っている)

⑥欠損値

⑦データの頭とお尻(割愛)

 

簡単にグラフがずらっと描けて楽しいが、大切なのはツールではなく解釈する能力なんだな、と改めて感じた。

 

おわり