CUBE SUGAR CONTAINER

技術系のこと書きます。

Python: pandas-profiling は ydata-profiling にリネームされた

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.6ydata-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

いじょう。


  1. 分散処理に利用する計算クラスタの能力にも依存する