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

Python3如何按字典指定key分组并统计另一key各取值的数量?

实现方案

原生Python实现(无第三方依赖)

适合小数据量场景,不需要额外安装库:

from collections import defaultdict

# 整理所有待处理数据到列表(原代码第四个字典重名,此处修正命名避免覆盖)
x = {'id': 1, 'addressed_to': 2, 'status': 'open'}
y = {'id': 2, 'addressed_to': 2, 'status': 'open'}
z1 = {'id': 3, 'addressed_to': 2, 'status': 'closed'}
z2 = {'id': 4, 'addressed_to': 3, 'status': 'open'}
data = [x, y, z1, z2]

# 初始化统计容器
count_map = defaultdict(lambda: {"open": 0, "closed": 0})

for item in data:
    addr = item["addressed_to"]
    status = item["status"]
    count_map[addr][status] += 1

# 转换为要求的输出格式
result = [{"addressed_to": k, "open": v["open"], "closed": v["closed"]} for k, v in count_map.items()]

运行后得到的result完全匹配你要求的格式。

pandas实现(适合大数据量场景)

如果处理的数据量较大,用pandas实现代码更简洁,后续拓展统计维度也更方便:

import pandas as pd

df = pd.DataFrame(data)
result = (
    df.groupby(["addressed_to", "status"])
    .size()
    .unstack(fill_value=0)
    .reset_index()
    .to_dict("records")
)

内容的提问来源于stack exchange,提问作者E.Keeya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 12:06:04