1
resposta

Duvida ordenar por ordem decrescente

Boa noite galera,

Uma dúvida, como o professor deixou de exercício fazer a distribuição de frequência com as demais variáveis qualitativas, estou tentando fazer com a coluna 'Anos de Estudo' e tentado colocar o index em ordem decrescente, ou seja, o que mais aparece primeiro seguido dos demais. Estou tentando utilizar o sort_values() do curso de pandas porém, está dando erro. segue o código:

dist_freq_Anos_Estudo = pd.DataFrame({'Frenquencia:': frequencia2, 'Porcentagem (%)': percentual2})
dist_freq_Anos_Estudo
dist_freq_Anos_Estudo.rename_axis('Anos de Estudo', axis = 'columns', inplace = True)
dist_freq_Anos_Estudo.sort_values(by = 'Anos de Estudo', ascending= False)
dist_freq_Anos_Estudo
1 resposta

Oii Danyllo, tudo bem contigo?

Nesse caso, o erro está ocorrendo porque você está tentando aplicar o método sort_values() na sua coluna de index.

Quando você utilizou o código dist_freq_Anos_Estudo.rename_axis('Anos de Estudo', axis = 'columns', inplace = True) o que você fez foi nomear a coluna de index para o nome "Anos de Estudo". Sendo assim, quando você faz dist_freq_Anos_Estudo.sort_values(by = 'Anos de Estudo', ascending= False) você está tentando aplicar o método sort_values na coluna de índices, algo que não é possível de ser realizado.

Nesse caso o que você pode fazer é, primeiramente, utilizar os métodos reset_index e drop para organizar os índices do seu DataFrame, da seguinte forma:

dist_freq_Anos_Estudo = dist_freq_Anos_Estudo.reset_index()
dist_freq_Anos_Estudo.drop('index', axis = 1, inplace = True)
dist_freq_Anos_Estudo.head()

Assim, você vai ter o seguinte resultado:

FrequenciaPorcentagem (%)
0208480.271317
1107950.140487
279800.103852
367290.0875716
458490.0761192

Com a coluna de índices ordenada.

Analisando o DataFrame acima, podemos perceber que ele já nos trouxe a coluna "Frequencia" organizada em ordem decrescente. Mas podemos aplicar o sort_values para garantir que essa coluna apresente os valores na ordem que queremos:

# ordenando a coluna "Frequencia" em ordem decrescente
dist_freq_Anos_Estudo.sort_values(by = 'Frequencia', ascending = True, inplace = True)
dist_freq_Anos_Estudo.head()

Resultado:

FrequenciaPorcentagem (%)
0208480.271317
1107950.140487
279800.103852
367290.0875716
458490.0761192

Podemos perceber que temos a mesma tabela como resultado, pois ela já estava na ordem decrescente :)

Espero que isso ajude. Qualquer dúvida estou à disposição ^^

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software