目次
-
zarque_profilingの概要
- zarque_profilingとは
- Polarsってなに?
- zarque_profilingのGitHubリポジトリリンク
-
pandas_profilingとの比較
- ydata_profilingへの変更点
- 日本語データでの課題
- zarque_profilingの特徴とメリット
-
zarque_profilingの実践
- 日本語対応
- 実際のコード例
- まとめ
1. zarque_profilingの概要
1.1 zarque_profilingとは
zarque_profiling
は、ydata_profiling
(旧pandas_profiling)の高速版で、Polarsを基盤としてデータプロファイリングを行うPythonライブラリです。
従来のpandasベースのydata_profilingに比べ、以下の特徴があります:
- 3倍以上の速度でプロファイリングが可能。(ベンチマーク上)
- 大規模データへの対応。ydata_profilingでメモリに乗らなかったものも扱える。
- Polarsを活用した効率的なデータ処理。
1.2 Polarsってなに?
PolarsはRustで実装された列指向データフレームライブラリです。その性能は非常に高く、大規模データ分析に適しています。
Polarsの特徴:
- 高速
- メモリ効率がいい。
- 遅延評価が出来る。
Polarsについては他の記事で多くの方がまとめてくださっているので、詳しくはそちらをご参照ください。
1.3 zarque_profilingのGitHubリポジトリ
公式リポジトリはこちら:https://github.com/crescendo-medix/zarque-profiling
2. pandas_profilingとの比較
2.1 ydata_profilingへの変更点
pandas_profilingは、EDA(Exploratory Data Analysis)のツールとして人気がありましたが、現在はydata_profiling
という名前に変更されました。
このツールはpythonコード1行でデータのEDAが出来るため、とても便利なツールでした。
こちらについても、説明されている方のリンクを添付させていただきます。
https://datatechlog.com/how-to-use-pandas-profiling/
公式の説明はこちら:https://docs.profiling.ydata.ai/latest/
2.2 日本語データでの課題
ydata_profiling
では、以下のような日本語データ特有の問題が報告されています:
- カラム名やデータが豆腐化(文字化け)する: 日本語がHTMLレポート内で適切に表示されないケースがあります。
この記事では下記データを扱います。(vscode上で行っています。)
以下はydata_profiling
で日本語カラム名を含むデータを扱った場合のサンプル出力です:
from ydata_profiling import ProfileReport
# pandas-profilingレポートの作成
profile = ProfileReport(df, title="Pandas Profiling Report")
# レポートの表示
profile.to_notebook_iframe()
ヒートマップの「年収」が文字化けしています。
この問題は、zarque_profiling
ではフォントファミリーを指定することで回避できます。また、Polarsのパフォーマンスを活用することで、日本語データでもスムーズに分析が可能です。
2.3 zarque_profilingの特徴とメリット
- Polarsベース: Pandasの代わりにPolarsを採用することで、大規模データの処理速度が向上。
-
日本語対応が容易:
font_family
オプションで日本語フォントを設定するだけで、豆腐化を回避可能。 - 同様の機能: pandas_profilingと同じレポートや分析機能を提供。
-
プロファイリングモード:
- minimal=True (デフォルト): 必要最低限の分析。
- minimal=False: 最大限の詳細分析(大規模データには非推奨)。
3. zarque_profilingの実践
3.1 日本語対応
zarque_profiling
では、日本語を含むデータセットを適切に表示するため、font_family
オプションを使用します。以下の設定例では、IPAexGothicフォントを指定しています。
ProfileReport(
df,
minimal=True,
font_family="IPAexGothic" # 日本語フォントの指定
)
3.2 実際のコード例
# ライブラリのインポート
import polars as pl
from zarque_profiling import ProfileReport
# プロファイリングレポートを生成
profile = ProfileReport(df, minimal=False,title="Polars Profiling Report",font_family="IPAexGothic")
# レポートの表示
profile.to_notebook_iframe()
文字化けせずにできました。
4. まとめ
zarque_profiling
は、大規模データセットのプロファイリングを高速かつ簡単に実現するツールです。日本語データ対応やPolarsの高速性を活かし、これまでpandas_profiling
では扱いづらかったデータもスムーズに分析可能です。以下を活用してください:
- 日本語対応でストレスフリーなEDA。
- 大規模データでも迅速にレポート生成。