Muitas vezes eu precisava contar a frequencia de certo valor em uma coluna, como tinha a ideia do select na cabeça, acabava executando um comando mais complexo que o necessário.
df.groupby(['coluna'])['valor'].count()
Estava fazendo alguns cursos na Alura, e nos primeiros cursos me foi apresentado a função value_counts, isso me ajudou muito em analises iniciais.
df.value_counts('coluna')
existe também a opção normalize ela traz a porcentagem da frequência, muito util também.
df.value_counts('coluna', normalize=True)
Você pode gerar um novo dataframe com a frequência por quantidade e porcentagem
frequencia_quantidade = df.value_counts('coluna')
frequencia_porcentagem = df.value_counts('coluna', normalize=True)
pd.DataFrame({'Frequência':frequencia_quantidade,'Frequência (%)':frequencia_porcentagem})