『書籍のエラー対策』 Pythonのpandasライブラリでピボットテーブルメソッドpivot_table()を実行する際、「FutureWarning: The provided callable <built-in function max> is currently …」が表示される

インプレスの「スッキリわかる Pythonによる機械学習入門」のエラー対策記事です。

書籍に記述されているコードを間違いなく入力しても警告(Warning)が発生した箇所があったので対策方法を掲載します。

エラーではなく警告なので処理結果は得られるのですが、気持ちの良いものではありませんので、対策します。

警告内容

P.258 第Ⅱ部 第7章 「分類2:客船沈没事故での生存予測」 – 7.4.4 モデルの評価 / ピボットテーブルによる集計の引数aggfuncを使って平均値以外の統計量を求めるコード7-16 pivot_tableメソッドで

pd.pivot_table(df2, index='Survived', columns='Pclass', values='Age', aggfunc=max)

を実行すると

FutureWarning: The provided callable <built-in function max> is currently using DataFrameGroupBy.max. In a future version of pandas, the provided callable will be used directly. To keep current behavior pass the string "max" instead.
  pd.pivot_table(df2, index='Survived', columns='Pclass', values='Age', aggfunc=max)

と警告が表示されます。

実行環境

エラーは、下記の環境で発生を確認しています。

  • Anaconda3-2024.10-1-Windows-x86_64
  • JupyterLab 4.2.5
  • Python 3.12.7
  • pandas 2.2.3

警告の原因

pivot_tableメソッドに対するaggfunc引数の設定が文字列になっていない為です。

解決方法

aggfunc引数に対する関数名を文字列として指定します。

pd.pivot_table(df2, index='Survived', columns='Pclass', values='Age', aggfunc='max')

コメント

タイトルとURLをコピーしました