我有一个这样的数据框
name
a
s
d
a
s
d
f
a
s
a
s
我最终需要根据价值计数获得前3个值。我确实获得了价值计数。我曾经使用过data2['name'].value_counts(sort=True,ascending=False)
。
但是,除了值计数之外,我还需要前3个名称值。即,
[a,s,d]
答案 0 :(得分:1)
函数Series.value_counts
具有默认参数sort=True
和ascending=False
,因此应省略。然后通过索引过滤index
值并转换为list
:
L = data2['name'].value_counts().index[:3].tolist()
print (L)
['a', 's', 'd']
另一种解决方案:
from collections import Counter
L = [i for i, j in Counter(data2['name']).most_common(3)]
print (L)
['a', 's', 'd']
答案 1 :(得分:1)
您还可以使用Series.nlargest
,因此排序参数无关紧要:
data2['name'].value_counts().nlargest(3).index