Выберите первое значение, индексировав 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