Olá Paulo,
Seu raciocínio está certo. Entretanto, o que o método .mode() retorna é uma série com os valores mais frequêntes do seu conjunto de dados. (veja em pandas.DataFrame.mode)
Quando o conjunto é bímodal, multimodal ou amodal, ocorre 'empate' na contabilização dos elementos amostrais e, neste caso, o método te devolve os termos que empataram.
Como em seu conjunto de dados, houve empate de todos os elementos, ele retornou todos os elementos.
Para ter a resposta esperada, você pode usar o seguinte código:
import pandas as pd
conjunto = [4, 5, 6, 7]
s = pd.Series(conjunto)
def retorna_moda(dados):
contagem_dos_elementos = dados.value_counts()
if max(contagem_dos_elementos) == 1:
return 'Conjunto Amodal'
else:
moda = list(dados.mode())
return 'Moda: ' + str(moda)
retorna_moda(s)
Abs