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

使用np.sum触发ValueError:需生成聚合值,求修复建议

问题分析与修复方案

错误原因

  1. 列名不匹配:数据中的列是rating和comment,但代码里写的是Ratings和Comments,大小写不一致导致pivot_table找不到对应列,触发聚合值缺失的错误。
  2. 字符串列不能用np.sum聚合:rating(strong/weak)和comment都是字符串类型,np.sum无法对这类数据生成有效的标量聚合值,当列中存在空值时,更会直接导致聚合失败。
  3. np.unique返回非标量:np.unique返回的是数组而非单个值,虽然你的数据中每个self_id对应唯一id,但pivot_table要求聚合函数返回标量值,这也可能是潜在触发错误的原因。

修复代码

# 修正列名,替换无效聚合函数
ndf1 = pd.pivot_table(data=df1, index=['self_id'], 
                     aggfunc={
                         'id': lambda x: x.iloc[0],  # 每个self_id对应唯一id,直接取第一个值
                         'rating': lambda x: x.dropna().iloc[0] if not x.dropna().empty else np.nan,  # 保留非空rating
                         'comment': lambda x: x.dropna().iloc[0] if not x.dropna().empty else np.nan  # 保留非空comment
                     })

可选优化

如果后续数据中一个self_id对应多条评论,需要拼接内容的话,可以把comment的聚合函数改成:

'comment': lambda x: ','.join(x.dropna().astype(str))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 08:45:59