如果我有一个字典记录随机对象的计数频率:
dict = {'oranges': 4 , 'apple': 3 , 'banana': 3 , 'pear' :1, 'strawberry' : 1....}
我只想要频率位于前 25% 的键,我该怎么做?特别是如果它是一个非常长的尾部列表并且很多记录将具有相同的计数。
最佳答案
使用 collections.Counter
对象并利用其 most_common
方法返回频率最高的键,达到所需的百分位数。
对于第 25 个百分位数,将字典的长度除以 4 并将该值传递给 most_common
:
>>> from collections import Counter
>>> dct = {'oranges': 4 , 'apple': 3 , 'banana': 3 , 'pear' :1, 'strawberry' : 1}
>>> c = Counter(dct)
>>> [tup[0] for tup in c.most_common(len(dct)//4)]
['oranges']
请注意,该百分位数中具有相同频率的潜在元素将被任意选择。
关于python - 按百分位数对 python 字典进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40096826/