インプレスの「スッキリわかる 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')
コメント