Как составить список значений, основанный на количестве значений в пандах - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть такой фрейм данных

   name
    a
    s
    d
    a
    s
    d
    f
    a
    s
    a
    s

Мне нужно, наконец, получить 3 верхних значения на основе подсчета значений. Я получил значения счетчиков.Я использовал, data2['name'].value_counts(sort=True,ascending=False).Но вместо количества значений мне нужны эти три верхних значения имени.т.е.

[a,s,d]

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Вы также можете использовать Series.nlargest, поэтому сортировка аргументов не имеет значения:

data2['name'].value_counts().nlargest(3).index
0 голосов
/ 21 сентября 2018

Функция 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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...