按百分位排名python词典

时间:2016-10-17 22:45:25

标签: python numpy dictionary

如果我有一个字典记录随机对象的计数频率:

dict = {'oranges': 4 , 'apple': 3 , 'banana': 3 , 'pear' :1, 'strawberry' : 1....}

而且我只想要按频率排在前25%的键,我该怎么做?特别是如果它是一个非常长的尾部列表并且许多记录具有相同的计数。

1 个答案:

答案 0 :(得分:3)

使用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']

请注意,具有相同频率的百分位数中的潜在元素将被选择任意