如何高效创建值为对应键出现次数的Python dict?
频次统计优化方案
以下是不同场景下的更优实现:
1. pandas场景最优解(最高效)
你当前操作的是pandas数据框,直接使用pandas内置的value_counts()方法即可,底层为C实现,性能远高于自行遍历Python循环,仅需一行代码:
return data_frame["cars"].value_counts().to_dict()
2. Python通用场景最优解
如果是对任意Python可迭代对象做频次统计,使用标准库collections.Counter即可,无需自行实现计数逻辑:
from collections import Counter # Counter本身是dict子类,绝大多数场景可直接当字典使用 return Counter(data_frame["cars"]) # 如果需要严格的dict类型,在外层包裹dict()即可 # return dict(Counter(data_frame["cars"]))
3. 无依赖原生Python简化写法
如果不想引入额外导入,也可以简化你原有循环逻辑,去掉if分支和低效的update调用:
dict_map = {} for car in data_frame["cars"]: dict_map[car] = dict_map.get(car, 0) + 1 return dict_map
内容的提问来源于stack exchange,提问作者jimmy
相关产品推荐
相关产品推荐

