Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida ordenação em gráfico

Olá tudo bem? Fiz um exemplo de por em um gráfico de barras no eixo X os idiomas, e no eixo Y a soma das médias que cada idioma teve.Porém, gostaria de ordenar da maior soma para a menor nesse gráfico. Os dados utilizados para gerar o gráfico não estão em ordem crescente ou decrescente conforme foi mostrado em uma aula utilizando value_counts de cada idioma. No meu exemplo, os idiomas estão apenas em ordem alfabética, mas a maior soma não está nem na primeira nem na última linha. Dessa forma, não sei o que por em "order" no meu caso ;( Queria testar com sns barplot. Aguardo ;D

1 resposta
solução!

Olá Flávia tudo bem com você??

Vamos começar falando sobre o value_counts do pandas. Ele retorna uma série contendo contagens de valores exclusivos. O objeto resultante estará em ordem decrescente para que o primeiro elemento seja o elemento que ocorre com mais frequência. Exclui valores de NA por padrão.

Agora vou colocar um exemplo de DataFrame e então mostrar duas opções de ordenação para que você escolha qual melhor te atende =)

Exemplo de DataFrame

df = pd.DataFrame({
    'col1': ['A', 'A', 'B', np.nan, 'D', 'C'],
    'col2': [2, 1, 9, 8, 7, 4],
    'col3': [0, 1, 9, 4, 2, 3],
})
df
    col1 col2 col3
0   A    2    0
1   A    1    1
2   B    9    9
3   NaN  8    4
4   D    7    2
5   C    4    3

Aqui ordenando escolhendo a coluna e colocando ordem crescente

df.sort_values(by=['col1'])
    col1 col2 col3
0   A    2    0
1   A    1    1
2   B    9    9
5   C    4    3
4   D    7    2
3   NaN  8    4

E nesse exemplo ordenando decrescente

df.sort_values(by='col1', ascending=False)
    col1 col2 col3
4   D    7    2
5   C    4    3
2   B    9    9
0   A    2    0
1   A    1    1
3   NaN  8    4

Agora se precisar ordenar mais do que uma coluna

df.sort_values(by=['col1', 'col2'])
    col1 col2 col3
1   A    1    1
0   A    2    0
2   B    9    9
5   C    4    3
4   D    7    2
3   NaN  8    4

Espero ter te ajudado e se ainda ficou dúvida é só voltar aqui!