python - 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 万)。
解决方案
您可以Counter
从collections
模块中使用。类似于下面的代码:
from collections import Counter
c = Counter()
for l in mydict.values():
c.update(l)
df = pd.DataFrame({'id':c.keys(), 'count':c.values()})
推荐阅读
- c++ - C++ 无法使用嵌套循环索引数组的元素
- sql - 尽管获得了 GRANT EXECUTE,但我在函数调用中得到“ORA-00904:无效标识符”
- javascript - 需要将客户价值传递回 React 中的 POST 操作
- c++ - gtest 单元测试目标配置文件路径
- xamarin - 无法从“Xamarin.Forms.Entry”转换为“Tweetinvi.Models.IUserIdentifier”
- java - RestTemplate JSON 反序列化
- bash - 从 jenkins 调用的 Minicom 脚本在退出 '! killall -9 minicom'
- hibernate - 强制不在杰克逊中序列化未获取的惰性对象
- isabelle - 在 Isabelle 中探索已完成的理论
- android - 使用 android:drawableLeft 和 png 时添加圆角