いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【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の解説が入っている)

⑥欠損値

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

 

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

 

おわり