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

Python Pandas求和与去重计数问题:DataFrame调用aggregate报错

搞定你的DataFrame聚合报错问题

嘿,我瞅了下你的问题,核心bug其实是列名大小写不匹配!你给的DataFrame列名是ID和Value,但写代码的时候却用了'Id'和'value'——pandas对列名大小写可是认死理的,找不到对应的列自然就报错了(虽然报错信息显示没有aggregate方法,但大概率是列名错误引发的异常被误报,或者你可能用了超老版本的pandas?不过先解决最可能的问题)。

正确的代码实现

先确认列名,然后用正确的列名执行聚合:

import pandas as pd

# 先构造你的DataFrame
data = {'ID': [1, 1, 2, 3, 4], 'Value': [100, 300, 200, 300, 400]}
df = pd.DataFrame(data)

# 用正确列名做聚合
result = df.agg({'ID': lambda x: x.nunique(), 'Value': 'sum'})
print(result)

运行后会输出你想要的结果:

ID        4
Value    1300
dtype: int64

补充小技巧

  • 如果你的pandas版本真的特别旧(低于0.20.0),agg/aggregate可能有兼容性问题,直接升级就行:
    pip install --upgrade pandas
    
  • 也可以分开计算,更直观还不容易踩列名的坑:
    unique_ids = df['ID'].nunique()
    total_val = df['Value'].sum()
    print(f"ID去重计数为{unique_ids},总价值为{total_val}")
    

这样就能完美解决你的问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:44:55