1
resposta

Duvida no sort index da video aula

Boa noite, Quando o sort_index(ascending=False) é executado, porque os índices são ordenados em ordem alfabética crescente e não decrescente, já que o parâmetro ascending está como false ?

Aguardo atenciosamente!

1 resposta

Olá Flávia, Tudo bem ? Espero que sim.

Desculpa pela demora em uma resposta.

Que ótima pergunta, tive que dissecar a documentação e fazer alguns testes para entender o que estava acontecendo.

O motivo disso é porque a nossa coluna de index não é uma simples Series, na verdade é do tipo CategoricalIndex, e esse tipo sabe "responder" sozinho qual é a ordem do seus elementos:

dist_freq_quantitativas_personalizadas.index

Veja, se imprimimos essa variável vamos descobrir, que para ela a ordem 'E', 'D', 'C', 'B', 'A' é a ordenada, crescente ou ascending = True:

CategoricalIndex(['E', 'D', 'C', 'B', 'A'], categories=['E', 'D', 'C', 'B', 'A'], ordered=True, dtype='category')

Dessa maneira ela vai se comportar de maneira diferente do que uma Series com strings.

Criei um DataFrame com o dados antigos mais uma nova coluna contendo uma Series com as mesmas letras:

novo_data_frame = pd.concat([dist_freq_quantitativas_personalizadas,
           pd.DataFrame(data=['D', 'C', 'E', 'A', 'B'], columns=['Letras'],
                         index=dist_freq_quantitativas_personalizadas.index)
          ], axis='columns')

Veja que se ordenarmos pela coluna Letras:

novo_data_frame.sort_values(by='Letras', ascending = True)

Teremos a ordenação alfabética que estávamos esperando.

Então resumindo a nossa coluna de Index, por ser do tipo CategoricalIndex, sabe dizer sozinha o que ela considera ordenado e por isso não temos o resultado "normal".

Espero ter ajudado, bons estudos.

: )