1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

zarque_profiling: 日本語も扱えるPython EDAパッケージ ydata_profiling(旧pandas_profiling)のPolars版

Last updated at Posted at 2024-11-24

目次

  1. zarque_profilingの概要
    1. zarque_profilingとは
    2. Polarsってなに?
    3. zarque_profilingのGitHubリポジトリリンク
  2. pandas_profilingとの比較
    1. ydata_profilingへの変更点
    2. 日本語データでの課題
    3. zarque_profilingの特徴とメリット
  3. zarque_profilingの実践
    1. 日本語対応
    2. 実際のコード例
  4. まとめ

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上で行っています。)
image.png

以下はydata_profilingで日本語カラム名を含むデータを扱った場合のサンプル出力です:

from ydata_profiling import ProfileReport
# pandas-profilingレポートの作成
profile = ProfileReport(df, title="Pandas Profiling Report")

# レポートの表示
profile.to_notebook_iframe()

image.png

image.png

ヒートマップの「年収」が文字化けしています。

この問題は、zarque_profilingではフォントファミリーを指定することで回避できます。また、Polarsのパフォーマンスを活用することで、日本語データでもスムーズに分析が可能です。

2.3 zarque_profilingの特徴とメリット

  1. Polarsベース: Pandasの代わりにPolarsを採用することで、大規模データの処理速度が向上。
  2. 日本語対応が容易: font_familyオプションで日本語フォントを設定するだけで、豆腐化を回避可能。
  3. 同様の機能: pandas_profilingと同じレポートや分析機能を提供。
  4. プロファイリングモード:
    • 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()

以下はサンプル出力です:
image.png
image.png

文字化けせずにできました。

4. まとめ

zarque_profilingは、大規模データセットのプロファイリングを高速かつ簡単に実現するツールです。日本語データ対応やPolarsの高速性を活かし、これまでpandas_profilingでは扱いづらかったデータもスムーズに分析可能です。以下を活用してください:

  • 日本語対応でストレスフリーなEDA。
  • 大規模データでも迅速にレポート生成。

リンク: zarque_profiling GitHub

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?