EDAでpandas_profilingを使う
pandas_profiling
がめっちゃ便利だった。
特徴量のEDAにおいて、一般的にはinfo()
を使ってデータ量や型を見たり、describe()
を使って統計量を見たり、isnull().sum()
を使ってNull数を見たり、関係性や分布などを自分で可視化したりする。
pandas_profiling
を使うとそれらが一括で行えるし、なんならhtmlとして出力できる。
導入
pip install pandas_profiling
pandas_profilingを実際に動かしたときに自分の環境だと、no module named 'visions' pandas_profiling
と出てしまい visions
モジュールも入れないと動かなかったのでついでに入れた。
pip install visions
実践
とりあえずirisデータを使う。
from sklearn.datasets import load_iris import pandas as pd iris = load_iris() iris = pd.DataFrame(iris.data, columns=iris.feature_names) iris.head()
pandas_profiling
で色々と見る。
from pandas_profiling import ProfileReport profile = ProfileReport(iris, title='Pandas Profiling Report') profile
全体像
特徴量毎の情報
変数毎の関係
欠損値
サンプルデータ
ちなみに、この結果はhtmlで出力できる。
profile.to_file(iris = 'reports.html')
注意点
データ量が多いとProfileReport()
が結構時間かかるので注意。
また、データフレーム名をdf
にして動かしたら、pandas_profiling
の内部コード(__init__.py)でdf
という変数名が使われているからか実行ができなかったので、データフレーム名は注意。