Как составить список значений, основанный на количестве значений в пандах

1

У меня есть dataframe, как это

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

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

[a,s,d]
Теги:
pandas
dataframe
count

2 ответа

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

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

data2['name'].value_counts().nlargest(3).index
  • 0
    value_counts() по умолчанию, поэтому nlargest больше не нужно

Ещё вопросы

Сообщество Overcoder
Наверх
Меню