Release Notes

Py4Stats v0.5.1 2026-02-21

概要(Summary)

eda_tools 内部のディレクトリ構造を再構築するリファクタリングを実施しました。

🛠 修正と改善(Fixes /Improvements)

  • eda_tools モジュール内部のディレクトリ構造を再構築するリファクタリングを実施し、eda_tools/_nw.py を以下のサブモジュールに分割しました。
    • _utils.py
    • operation.py
    • visualize.py
    • reviewing.py
  • 公開APIの変更はなく、引き続き import py4statseda_tools モジュールの関数を使用できます。
  • 今回の変更によって、以下のようなサブモジュール単位でのインポートが可能になりました。
from py4stats.eda_tools import operation
from py4stats.eda_tools import visualize
from py4stats.eda_tools import reviewing
  • 既存のテストは全て通過おり、実装済みの関数の動作変更はありません。
  • eda_tools を含む Py4Stats ライブラリ全体のディレクトリ構造の詳細については Project Guide を参照してください。

Py4Stats v0.5.0 2026-02-16

概要(Summary)

このリリースでは4つの関数 group_split(), group_map(), group_modify() および、bind_rows() を追加し、既存関数のリファクタリングとバグ修正を行いました。

✨ 主な新機能 (New Features)

  • group_split(), group_map(), group_modify() の追加
    • データフレームに対して、変数を基準としたグループへの分割・関数適用・結果の統合を行います。
  • bind_rows() 関数の追加
    • 複数のデータフレームを行方向に結合(縦方向に連結)し、必要に応じて出所情報を付与します。
  • info_gain() 関数の追加
    • 複数の目的変数と特徴量の組み合わせに対して情報利得などの情報理論に基づく指標を計算します。

🛠 修正と改善(Fixes /Improvements)

  • eda_tools モジュールの関数全体について、エラーメッセージを改善を行いました。
    • diagnose() 関数の data など、narwhals が受け入れ可能な DataFrame 互換オブジェクトもしくは Series 互換オブジェクトが代入されることを想定した引数に、list, dict, int などの非互換オブジェクトが代入された場合のエラーメッセージを改善しました。
  • Pareto_plot() 関数のリファクタリングを実施し、型ヒントを改善しました。
  • assert_character() 関数や assert_numeric() で、引数の最小要素数を指定する len_min の設定が正常に反映されない問題を修正しました。

Py4Stats v0.4.0 2026-01-27

概要(Summary)

このリリースでは review_wrangling() 関数を追加し、既存関数のリファクタリングとバグ修正を行いました。

✨ 主な新機能 (New Features)

  • review_wrangling() 関数の追加
    • データ前処理(wrangling)による変更点をレビュー形式で要約して、文字列として出力する関数です。

🛠 修正と改善(Fixes /Improvements)

  • relocate(): *args 引数が未指定であった場合のエラーメッセージを改善しました。
  • is_dummy(): data 引数に list を代入した場合でも dropna = True が正しく機能するように修正しました。
  • mean_qi(), median_qi(), mean_ci(), scale(), min_max()
    • 関数のリファクタリングを実施し、メソッドが未実装のオブジェクトを代入したときのエラーメッセージを改善しました。
  • set_miss(): pd.DataFram に使用した場合、欠測率が prop で指定した値より高くなる現象を修正しました。

Py4Stats v0.3.0 2026-01-23

概要(Summary)

このリリースでは Pyt4Stats に幾つかの関数の追加を行いました。 関数のリファクタリングとバグ修正を行いました。今回のリリースでは機能の追加や変更はありません。

✨ 主な新機能 (New Features)

  • diagnose_category() 関数の追加
    • データフレームのカテゴリー変数の要約を提供する関数です。
  • set_miss() 関数の追加
    • Series の非欠測要素のうち、指定された個数または割合を欠測値に置き換えます。

🛠 修正と改善(Fixes /Improvements)

  • compare_group_means(), compare_group_median(), compare_df_cols(), compare_df_stats(): コードをリファクタリングし、引数と同じクラスのデータフレームを出力できるようにしました。この変更により、返り値が pd.DataFrame である場合でも、index が自動では設定されなくなりました。

  • diagnose(): dtype 列が、polars や pyarrow における列のクラスの表記に対してより忠実になるように修正しました。

  • relocate() 関数に、指定した列を最後列に配置する機能を追加し、エラーメッセージを改善しました。

  • assert_character() および assert_numeric() 系関数のエラーメッセージを改善しました。

  • その他、いくつかの関数のエラーメッセージを改善しました。

Py4Stats v0.2.2 2026-01-19

概要(Summary)

型ヒントに関する若干の修正と、バグ修正を行いました。今回のリリースでは機能の追加や変更はありません。

🛠 修正と改善(Fixes /Improvements)

  • building_block.assert_numeric 系関数のリファクタリングを行いました。この変更でメインモジュールの関数の動作に変更はありません。
  • compare_group_means(), compare_group_median() のテストコードを実装しました。
  • tabyl(): 第一引数 data と同じオブジェクト型をもつ DataFrame を出力できるように実装を修正しました。
  • check_that(), check_viorate() : 第一引数 data と同じオブジェクト型をもつ DataFrame を出力できるように実装を修正しました。引き続きロジックのコア部分には pd.DataFrame.eval() を使用しており、使用方法に大きな変更はありません。
  • is_number() 関数を修正し、pyarrow.lib.ChunkedArray オブジェクトを代入すると生じるエラーを解消しました。

Py4Stats v0.2.1 2026-01-16

概要(Summary)

このリリースでは Pyt4Stats の各モジュールに幾つかの関数の追加を行いました。

✨ 主な新機能 (New Features)

  • plot_category() 関数の追加
    • カテゴリ変数の回答分布を 100% 積み上げ横棒グラフとして描画する関数です。
  • plot_miss_var() 関数の追加
    • データフレームの各変数について欠測値の量を横棒グラフとして可視化します。
  • relocate() 関数の追加
    • データフレームの列を、削除することなく並べ替えます。
  • weighted_mean(), scale(), min_max() 関数の追加
    • それぞれ Series オブジェクトの加重平均の計算と、標準化を行う関数です。

🛠 修正と改善(Fixes /Improvements)

  • eda_tools の Pandas ベース実装 eda_tools/_pands.py に、FutureWarning を実装しました。
  • ユーザビリティ向上のため、freq_table() 関数に sort_by 引数を導入しました。
    • sort_by = 'frequency' なら度数分布表を頻度に応じてソートし(従来の sort = True に相当)、sort_by = 'values' なら subset で指定した列の値に応じてソートします(従来の sort = False に相当)。
    • この変更に合わせて、sort 引数は非推奨扱いに変更されています。
  • Pareto_plot()aggfunc 引数に、np.mean など values 列を1次元配列として受け取って単一の数値を返す任意の関数を使用できるように改良を行いました。
  • その他、py4stats ライブラリ全体のエラーメッセージ改善
  • building_block.assert_* 系関数の改良を行い、与えられた引数の要素数に関するアサーションと、None やリストを拒否する機能を追加しました。
  • cmpare_ols() および cmpare_mfx() に stars 引数を追加し、有意性のアスタリスクの表示形式を変更できる機能を追加しました。また、その他エラーメッセージの改善を行なっています。

⚠️ 既知の制限・注意点(Notes)

  • pyarrow.Table を使用する場合、plot_category() 関数の一部機能が制限されます。

Py4Stats v0.1.0 2026-01-11

概要(Summary)

このリリースでは EDA モジュールの narwhals ベース実装を統合し、パフォーマンスと互換性を大幅に改善しました。いくつかの既知の挙動も修正されています。

✨ 主な新機能 (New Features)

  • py4stats.eda_tools が Pandas ベースの実装から narwhals ベース実装へ移行しました。
    • この変更により、複数バックエンド(pandas / polars / pyarrow)をサポートしました。
  • Pandas ベースの実装は、当面 py4stats ライブラリのサブモジュール eda_tools._pandas として維持されますが、将来的に廃止される予定です。

🛠 修正と改善(Fixes /Improvements)

  • bilding_block モジュールの名称を building_block に修正
  • Py4Stats.building_block モジュールの assert_* 系関数の出力を AssertionError から ValueError に変更しました。
  • Py4Stats.eda_tools モジュールの関数の bool 値の引数を中心に、型の不一致があった場合のエラーメッセージを改善しました。

⚠️ 既知の制限・注意点(Notes)

  • バックエンドの変更に伴い、py4st.freq_table()py4st.diagnose()py4st.tabyl() など、従来はインデックス(Index)付きの pandas.DataFrame データフレームが出力されていた関数で、インデックスのない pandas.DataFrame が出力されるように変更されました。
  • polars / pyarrow のサポートは experimental であり、一部のエッジケースで動作に違いが出る可能性があります。詳細は Technical Notes および eda_tools開発状況 を参照してください。