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

如何计算DataFrame指定列均值并排除特定异常值

排除特定异常值计算DataFrame列均值的实现方法

场景说明

需要计算DataFrame df_cleaned 中trans_quantity列的均值,但要排除异常值10,000,且不能修改原DataFrame中的数据。当前直接调用.mean()的代码会包含该异常值,需要调整实现逻辑。

解决方案

以下几种方法都能实现需求,且不会改动原数据:

  • 布尔索引过滤法
    先通过布尔条件筛选出不等于异常值的行,再计算均值:

    # 注意:如果trans_quantity是数值类型,异常值应为10000(无逗号),去掉引号即可
    avg_num_items = df_cleaned[df_cleaned['trans_quantity'] != '10,000']['trans_quantity'].mean()
    
  • loc索引筛选法
    使用loc同时指定行条件和列名,逻辑更清晰:

    avg_num_items = df_cleaned.loc[df_cleaned['trans_quantity'] != '10,000', 'trans_quantity'].mean()
    
  • query方法过滤法
    适合更复杂的过滤条件,语法更接近自然语言:

    avg_num_items = df_cleaned.query("trans_quantity != '10,000'")['trans_quantity'].mean()
    

注意事项

如果trans_quantity列是数值类型,异常值10,000通常会存储为10000(无逗号格式),此时需要把代码中的'10,000'改为10000(去掉引号)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:20:31