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

Python字典中如何按key A分组统计key B对应值的唯一计数

Python字典分组统计实现方案

方法1:纯Python原生实现(无第三方依赖)

实现逻辑:先将A、B数组的元素按位置配对,按A的取值分组存储对应B的取值(用集合自动去重),最后统计每组集合长度整理为目标格式。

dict_1 = {'A': ['a','b','b','c','c','c'], 'B':['1','2','2','1','2','3']}

group_map = {}
for a_val, b_val in zip(dict_1['A'], dict_1['B']):
    if a_val not in group_map:
        group_map[a_val] = set()
    group_map[a_val].add(b_val)

result = {
    'A': list(group_map.keys()),
    'unique_count_B': [str(len(v)) for v in group_map.values()]
}

print(result)
# 输出:{'A': ['a', 'b', 'c'], 'unique_count_B': ['1', '1', '3']}

注意:Python 3.7及以上版本原生字典默认保留插入顺序,可直接得到和原数据A元素首次出现顺序一致的结果;3.7以下版本可使用collections.OrderedDict替代普通字典存储group_map保证顺序。

方法2:pandas实现(适合大数据量场景)

如果已经安装pandas库,可直接调用分组统计接口,代码更简洁:

import pandas as pd

dict_1 = {'A': ['a','b','b','c','c','c'], 'B':['1','2','2','1','2','3']}
df = pd.DataFrame(dict_1)
grouped = df.groupby('A')['B'].nunique().reset_index()

result = {
    'A': grouped['A'].tolist(),
    'unique_count_B': grouped['B'].astype(str).tolist()
}

print(result)
# 输出:{'A': ['a', 'b', 'c'], 'unique_count_B': ['1', '1', '3']}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:15:03