Jupyter Notebook中DataFrame.groupby函数无法正常工作求助
解决方法
针对你遇到的groupby().mean()报错问题,以下两种方案可以实现按Type 1分组后计算数值列均值的需求:
方案一:明确指定要计算的数值列
手动选择需要统计的数值列,避免无关列(如序号#、布尔列Legendary)的干扰:
# 定义需要计算均值的数值列列表 target_cols = ['HP', 'Attack', 'Defense', 'Sp. Atk', 'Sp. Def', 'Speed', 'Generation'] # 分组计算均值 a = df.groupby(['Type 1'])[target_cols].mean() display(a)
方案二:使用numeric_only=True参数自动筛选数值列
利用pandas的numeric_only参数,让mean()仅对数值类型列(int64、float64等)计算均值,同时可以后续移除不需要的列:
# 分组计算所有数值列均值,自动排除非数值列(如Name、Type 2) a = df.groupby(['Type 1']).mean(numeric_only=True) # 移除不需要的列(如序号#、布尔列Legendary) a = a.drop(columns=['#', 'Legendary']) display(a)
说明
报错的常见原因是旧版pandas中mean()默认尝试处理所有列(包括布尔列Legendary),或存在隐式类型转换问题。上述两种方案都能规避这类问题,精准得到你需要的分组均值结果。
内容的提问来源于stack exchange,提问作者Uttiya
相关产品推荐
相关产品推荐

