Python&R: データの様子を簡単に確認, dataexplorer, fakir, inspectdf, pandas_profiling ver. 3

以前に、データの基本情報を分析するライブラリとしてPythonのpandas_profioingとRのinspectdfを紹介しました。

 

Python&R:データの様子をみる(EDA), pandas_profiling, inspectdf

 

別のRのライブラリDataExplorerが次に紹介されていました。

 

How to Automate EDA with DataExplorer in R

 

この書き込みでは、まず、DattaExplorerの使用法を紹介し、inspectdfとpandas_profilingと比較します。

また、学習用の架空のデータを作成するRのfakirと作成したデータをCSV形式で保存するreadrを紹介します。

 

I.データの作成

 

Rのライブラリfakirを用いて架空のデータを作成します。

 

fakir

 

次のように、fakirをインストールして、簡単にデータを作成できました。

 

# githubを使用するため
library(devtools)
# fakirをインストール
devtools::install_github("ThinkR-open/fakir")
# ライブラリの呼び出し
library(fakir) # フェイクデータ作成
library(tidyverse)
library(DataExplorer)
# サイトのアクセス・データの作成
web <- fakir::fake_visits() # データの作成
web
 

 

解説

 

 

II.RのDataExplorerの使用法

 

yearとmonthとday列が数値として読まれているので、facterに変更します。

 

スクリプト

 

# 次の列をfactor(discrete)に
web$year <- as.factor(web$year) # 数値をfactorに
web$month <- as.factor(web$month) # 数値をfactorに
web$day <- as.factor(web$day) # 数値をfacotrに
 

 

1.離散数の列と連続数の列の割合、欠損値の割合

 

plot_intro(web) 

 

 

2.列ごとの欠損値の割合

 

plot_missing(web) 

 

 

3.連続数の列のヒストグラムと密度

 

plot_histogram(web)でもよいかもしれませんが、他のライブラリの関数と混同される可能性がある場合は、DataExplorer::でDataExplorerの関数であることをはっきりさせます。

 

DataExplorer::plot_histogram(web) 

 

 

密度をグラフにします。ヒストグラムをなぞった形になります。

 

DataExplorer::plot_density(web) 

 

 

4.相関係数

 

相関係数の一覧

 

plot_correlation(web, cor_args=list('use'='complete.obs')) 

 

 

相関係数のヒートマップ

 

type=’C’として、continuousの列のみの相関を表示します。

 

plot_correlation(web, type='c', cor_args=list('use'='complete.obs'))
 

 

 

III.RでCSVに書き出す

 

Iで作成したデータをCSVに書き出します。tidyverseにはreadrが含まれていますので、次の式で書き出すことができます。

 

write_csv(web, path = "wev1.csv") 

 

IV.Pythonのpandas_profilingの使用法

 

MicrosoftのAzurre Notebooksを使用します。クラウドですのでPythonのインストールは必要ありません。登録すれば、だれでも無料で利用できます。

 

1.データのアップロード

 

projectを作成し、さらに、pythonのファイルを作成します。File>UploadでIIIで作成したデータファイルseb1.csvを選び、アップローします。途中に開いたウィンドウでprojectを選びます。これで、Working Directoryにデータファイルがアップされます。

 

 

2.profilingの実行

 

pandas_profilingをimportしますが、先にインストールしておかないと次のエラーがです。

 

 

そこで、次の式を実行して、pandas_profilingをインストールします。面倒ですが、毎回インストールが必要です。

はじめの!はターミナルを使用することを示す記号です。ターミナルを表示して実行することもできたと思いますが、今回は!を使いました。

pipはPythonのパッケージ・マネージャー、つまり、ライブラリを管理するものです。通常のダウンロード版Pythonには同梱されていますが、Azure Notebooksでもあらかじめインストールしてあるので大変便利です。

 

!pip install pandas-profiling 

 

再度pandas_profilingをインポートし、データファイルを読み込みこんで、デーだを表示しました。

 

 

pandas_frofilingのすごいところは次の1行のスクリプトで基本情報から相関係数のヒートマップしかもピアソンだけではなく、スピアマンもケンドールも表示されるということです。

ただし、環境によってダウンロード版やクラウドのGoogle Colaboratoryでは一部表示されない場合があります。

Azure Notebooksでは次のように完全に表示されます。下の画像では一部のグラフを省略しました。また、Toggleもタブも機能しています。素晴らしいの一言に尽きます。

 

pandas_profiling.ProfileReport(web) 

 

 

 

 

 

 

 

V.Rのinspectdfの使用法

 

ライブラリをインストールして、コンピュータ上のデータをwebの名でインストールします。

ライブライがインストールされていなければ、先にインストールしておく必要があります。

 

library(inspectdf)
library(tidyverse)
web <- read_csv("web1.csv")
 

 

1.数的データと他の割合

 

inspect_types(web, show_plot = T) 

 

 

2.欠損値の割合

 

inspect_na(web, show_plot=T) 

 

 

 

3.頻度のbar plots

 

ヒストグラムに代わるグラフです。

 

inspect_num(web, show_plot=T ) 

 

 

4.相関係数

 

inspect_cor(web, show_plot=T) 

 

 

V.Conclusion

 

Pythonのpandas_profilingがもっとも簡単に、もっともわかりやすく、多用なグラフを描けることがわかります。

Rでは、DataExplorerがヒストグラムや相関係数のヒートマップなど見慣れたグラフを描くことができるので、使いやすいでしょう。

Rの場合はtidyverseを使うので、データのだいたい情報は簡単に得られます。ですから、実際の問題としては、列ごとの欠損値、ヒストグラム、相関係数、ただし、ピアソンだけではなく、順位相関係数もグラフにするものが欲しいです。

 

Please follow and like us:
error

About shibatau

I was born and grown up in Kyoto. I studied western philosophy at the University and specialized in analytic philosophy, especially Ludwig Wittgenstein at the postgraduate school. I'm interested in new technology, especially machine learning and have been learning R language for two years and began to learn Python last summer. Listening toParamore, Sia, Amazarashi and MIyuki Nakajima. Favorite movies I've recently seen: "FREEHELD". Favorite actors and actresses: Anthony Hopkins, Denzel Washington, Ellen Page, Meryl Streep, Mia Wasikowska and Robert DeNiro. Favorite books: Fyodor Mikhailovich Dostoyevsky, "The Karamazov Brothers", Shinran, "Lamentations of Divergences". Favorite phrase: Salvation by Faith. Twitter: @shibatau

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.