首页 > 解决方案 > python计算包含列表的字典中元素的重复次数

问题描述

我正在尝试将每个项目都是列表的字典有效地转换为一个数据框,该数据框计算所有键中列表元素的出现:

mydict = {1:[1,3,5], 2:[1,4,6], 3:[5,6,7]}

## code to go from mydict to df

df = pd.DataFrame({"id":[1,3,4,5,6,7], "count":[2,1,1,2,2,1]})

    df
   id  count
0   1      2
1   3      1
2   4      1
3   5      2
4   6      2
5   7      1

实际数据在字典中有 1000-2000 个元素,每个列表有 5k-150 万个元素。您可以假设所有列表中元素的最大值是有界的(比如 1000 万)。

标签: pythondictionary

解决方案


您可以Countercollections模块中使用。类似于下面的代码:

from collections import Counter

c = Counter()
for l in mydict.values():
    c.update(l)

df = pd.DataFrame({'id':c.keys(), 'count':c.values()})

推荐阅读