You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用df.groupby('Attrition').agg('mean')时遭遇NotImplementedError求助

解决df.groupby('Attrition').agg('mean')触发NotImplementedError的方法

以下是针对你遇到问题的具体排查和解决步骤:

  • 先排查数据类型冲突
    报错核心是数据集中存在非数值型列(比如字符串、类别型列),agg('mean')默认会尝试对所有列计算均值,这类非数值列无法执行均值运算,进而触发错误。讲师的操作可能隐含过滤了数值列,或是使用的pandas版本会自动跳过非数值列。

    先运行以下代码查看所有列的数据类型:

    print(df.dtypes)
    
  • 针对性解决方法

    1. 指定仅对数值列计算均值
      在agg中添加numeric_only=True参数,明确只处理数值型列,这是最直接的修复方式:

      df.groupby('Attrition').agg('mean', numeric_only=True)
      

      或者先筛选出数值列再分组计算:

      numeric_cols = df.select_dtypes(include=['int64', 'float64'])
      numeric_cols.groupby(df['Attrition']).mean()
      
    2. 检查数据集版本差异
      确认你下载的数据集和讲师使用的是否一致:比如某些列的类型是否被误修改(比如Attrition列被转为数值型,或是新增了非数值列)。可以重新导入原始数据集再测试。

    3. 兼容pandas版本行为差异
      不同pandas版本对agg('mean')的默认处理逻辑有变化:旧版本会自动跳过非数值列,而新版本(如pandas 2.0+)默认numeric_only=False,会尝试对所有列计算导致报错。上述添加numeric_only=True的方法可以兼容新老版本。

内容的提问来源于stack exchange,提问作者Blank IsMissing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 08:17:07