Найти распределение частот первого символа имени в таблице в Python 3 - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть таблица типа

key Name
 1   snake
 2   panda
 3   parrot
 4   catipie
 5   cattie

Теперь я хочу найти количество вхождений первого символа каждой строки и отсортировать по убыванию, и если есть связь, она должна сортироваться в лексическом порядкетак что мой вывод выглядит так:

c 2
p 2
s 1

1 Ответ

0 голосов
/ 14 ноября 2018

Выберите первое значение, индексировав str[0] и сосчитав value_counts:

s = df['Name'].str[0].value_counts()
print (s)
p    2
c    2
s    1
Name: Name, dtype: int64

И для DataFrame добавьте rename_axis с помощью reset_index:

df = df['Name'].str[0].value_counts().rename_axis('first').reset_index(name='count')
print (df)
  first  count
0     p      2
1     c      2
2     s      1

При необходимости сортируя одинаковое количество по буквам, добавьте sort_values:

df = df.sort_values(['first','count'], ascending=[True, False])
print (df)
  first  count
1     c      2
0     p      2
2     s      1

И для серии:

s = df.set_index('first')['count']
print (s)
first
c    2
p    2
s    1
Name: count, dtype: int64

Последнее использование to_string:

print (s.to_string(header=None))
c    2
p    2
s    1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...