Python の EDA 用フレームワークとして有名な pandas-profiling は ydata-profiling に名前が変更された。 まだ意外と知られていないようなので、今回はそれについて書いてみる。
使った環境は次のとおり。
$ sw_vers ProductName: macOS ProductVersion: 13.4 BuildVersion: 22F66 $ python -V Python 3.10.12 $ pip list | egrep ".*-profiling" pandas-profiling 3.6.6 ydata-profiling 4.2.0
もくじ
下準備
動作を確認するために、リネームされる前の名前を使って pandas-profiling
をインストールしておこう。
$ pip install pandas-profiling
そして Python のインタプリタを起動する。
$ python
パッケージ名の変更について
試しにリネームされる前のパッケージ名である pandas_profiling
をインポートしてみよう。
すると DeprecationWarning が表示される。
どうやら pandas_profiling
は 2023-04-01 に非推奨となっており、代わりに ydata_profiling
を使ってほしいようだ。
>>> import pandas_profiling <stdin>:1: DeprecationWarning: `import pandas_profiling` is going to be deprecated by April 1st. Please use `import ydata_profiling` instead.
この状況で ydata_profiling
をインポートしてみよう。
たしかに警告なしで実行できる。
>>> import ydata_profiling
どういう状況なのか調べるために pipdeptree で pandas-profiling の依存関係を確認してみる。
すると pandas-profiling 3.6.6
は ydata-profiling
だけに依存していることが分かる。
$ pip install pipdeptree $ pipdeptree -p pandas-profiling | head -n 5 pandas-profiling==3.6.6 └── ydata-profiling [required: Any, installed: 4.2.0] ├── dacite [required: >=1.8, installed: 1.8.1] ├── htmlmin [required: ==0.1.12, installed: 0.1.12] ├── imagehash [required: ==4.3.1, installed: 4.3.1]
つまり、今は pandas-profiling をインストールするとリネームされた最新の ydata-profiling が依存関係として入るようになっている。
もちろん、最初からリネーム後の ydata-profiling
をインストールしても構わない。
$ pip install ydata-profiling
変更点について
パッケージ名が変わっても、使い方は特に変わっていない。
たとえば Pandas のデータフレームがあれば、次のようにしてレポートを出力できる。
以下は df
という名前でデータフレームがある場合のスニペットになっている。
>>> import ydata_profiling >>> profile_report = ydata_profiling.ProfileReport(df) >>> profile_report.to_file("report.html")
変更点として大きいのは機能追加だろう。 たとえば ydata-profiling では PySpark のデータフレームを受け取ることができるようになっている。 Pandas のデータフレームを使った場合は、サイズが大きいと処理に長い時間がかかっていた。 PySpark のデータフレームが使えると、この点が改善できる可能性がある 1。
いじょう。
- 分散処理に利用する計算クラスタの能力にも依存する↩