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

如何对哈希数组元素按payer字段分组并对points值求和

分组统计实现方案

方法1:Python标准库实现(无第三方依赖)

使用collections.defaultdict遍历累加,适合轻量、无数据分析依赖的场景:

from collections import defaultdict

a = [
  {"payer": "UNILEVER", "points": 200, "timestamp": "2020-10-31T11:00:00Z"},
  {"payer": "DANNON", "points": -200, "timestamp": "2020-10-31T15:00:00Z"},
  {"payer": "MILLER COORS", "points": 10000, "timestamp": "2020-11-01T14:00:00Z"},
  {"payer": "DANNON", "points": 300, "timestamp": "2020-10-31T10:00:00Z"}
]

sum_result = defaultdict(int)
for entry in a:
    sum_result[entry["payer"]] += entry["points"]

# 可选转换为普通字典格式
sum_result = dict(sum_result)
print(sum_result)

运行输出:
{'UNILEVER': 200, 'DANNON': 100, 'MILLER COORS': 10000}

方法2:Pandas实现(数据分析场景推荐)

如果是在数据分析流程中处理该数据,用pandas的分组聚合语法更简洁,大数据量下效率更高:

import pandas as pd

a = [
  {"payer": "UNILEVER", "points": 200, "timestamp": "2020-10-31T11:00:00Z"},
  {"payer": "DANNON", "points": -200, "timestamp": "2020-10-31T15:00:00Z"},
  {"payer": "MILLER COORS", "points": 10000, "timestamp": "2020-11-01T14:00:00Z"},
  {"payer": "DANNON", "points": 300, "timestamp": "2020-10-31T10:00:00Z"}
]

df = pd.DataFrame(a)
sum_result = df.groupby("payer")["points"].sum().to_dict()
print(sum_result)

运行输出和方法1完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:57:03