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!
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!
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.
: )