Python 3.11中Pandas pivot_table求和出现FutureWarning的解决方法
解决pivot_table的FutureWarning问题
针对你遇到的警告,有两种直接的修改方式,核心都是明确指定只对数字列执行求和操作:
方案1:在aggfunc中显式指定numeric_only参数
通过给sum方法绑定numeric_only=True参数,让聚合操作只处理数字列:
from functools import partial df = df.pivot_table(df2, index=['My_text_Column'], aggfunc=partial(sum, numeric_only=True)).reset_index()
或者用lambda函数快速实现:
df = df.pivot_table(df2, index=['My_text_Column'], aggfunc=lambda col: col.sum(numeric_only=True)).reset_index()
方案2:先筛选数字列再生成透视表
提前过滤出分组列和所有数字类型的列,避免sum尝试处理文本列:
# 提取分组列 + 所有数字类型列 target_cols = ['My_text_Column'] + df2.select_dtypes(include=['int', 'float', 'int64', 'float64']).columns.tolist() filtered_df = df2[target_cols] # 基于筛选后的DataFrame生成透视表 df = filtered_df.pivot_table(index=['My_text_Column'], aggfunc='sum').reset_index()
两种方案都能消除警告,同时确保求和操作只作用在有效数字列上,避免后续版本的兼容性问题。
内容的提问来源于stack exchange,提问作者Arthur D. Howland
相关产品推荐
相关产品推荐

