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

Coursera课程Pandas数据分析问题求助:销量统计结果不符

排查Pandas DataFrame产品销量/销售额Top10统计问题

请提供以下关键信息

  • 数据集结构:执行df.info()和df.head()的输出结果
  • 参考统计结果:平台给出的正确Top10产品标题列表
  • 你的代码:分别对应两个问题的完整代码片段
  • 错误提示:平台返回的具体报错信息,或你的结果与参考结果的差异点

常见问题排查方向

问题1:按销量降序统计Top10产品标题(top_num_sales)

  • 分组逻辑错误:若单条记录是单份订单的销量,必须按产品标题分组后对销量列求和,不能直接取单条记录排序。正确示例:
    # 分组求和销量,降序排序后取前10的标题
    sales_summary = df.groupby('产品标题')['销量'].sum().sort_values(ascending=False)
    top_num_sales = sales_summary.head(10).index.tolist()
    
  • 产品标题重复:检查标题是否存在格式差异(如大小写、首尾空格、特殊字符),需先统一格式:
    df['产品标题'] = df['产品标题'].str.strip().str.lower()
    
  • 空值/无效值干扰:过滤销量为空或非正的无效记录:
    df = df[df['销量'].notna() & (df['销量'] > 0)]
    

问题2:按销售额降序统计Top10产品标题(top_tot_sales)

  • 销售额计算错误:若数据集无直接销售额列,需用「销量 × 单价」计算,同时确保数据类型为数值型:
    # 转换单价为数值类型,处理异常值
    df['单价'] = pd.to_numeric(df['单价'], errors='coerce')
    # 计算单条记录销售额
    df['销售额'] = df['销量'] * df['单价']
    # 分组求和总销售额,排序取Top10
    revenue_summary = df.groupby('产品标题')['销售额'].sum().sort_values(ascending=False)
    top_tot_sales = revenue_summary.head(10).index.tolist()
    
  • 未分组求和直接排序:若直接对单条记录的销售额排序,会导致同一产品多次出现在Top10中,必须先分组求和总销售额。
  • 异常值过滤:排除单价、销售额为空或非正的记录:
    df = df[(df['单价'].notna() & (df['单价'] > 0)) & (df['销售额'].notna() & (df['销售额'] > 0))]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:22:42