1
resposta

Sort_values(by = 'mean) - Erro

Olá,

Quero ordenar o df da renda por estado pelo valor da média; achei na documentação o comando df.sort_values(by=index_da_coluna), mas não funciona.

Achei o post do Ramon Silva Basilio onde o João Vitor de Miranda recomenda mudar o comando

 renda_estatistica_por_uf = renda_estatistica_por_uf.rename(index = uf)

por

 renda_estatistica_por_uf = renda_estatistica_por_uf.columns.droplevel(0)

mas não funcionou e, de quebra, perdi o dataframe, virou um objeto só com os índices... Além disso, pelo método do João, as linhas não seria renomeadas de acordo com o nome de cada estado...

Tem como ordenar a tabela de renda por UF pela média?

Agradecido, Gustavo Serra

1 resposta

Olá, Gustavo! Tudo bem com você?

Tente utilizar o código abaixo:

renda_UF = dados.groupby(['UF']).agg({'Renda': ['mean', 'median', 'max', 'std']})
renda_UF.rename(index = uf, inplace = True)
renda_UF.columns = renda_UF.columns.droplevel(0)
renda_UF.sort_values(by = 'mean', ascending = False, inplace = True)
renda_UF

Saída:

UFmeanmedianmaxstd
Distrito Federal4241.9520001000005550.46
São Paulo2638.11600800003503.78
Rio de Janeiro2496.414002000005214.58
Paraná2493.8715002000004302.94
Santa Catarina2470.851800800003137.65
Rio Grande do Sul2315.161500350002913.34
Mato Grosso do Sul2262.61500420003031.42
Mato Grosso2130.651500350002542.63
Minas Gerais2056.4312001000003584.72
Espírito Santo2026.3812741000003513.85
Goiás1994.581500300002221.93
Amapá1861.351200155802020.69
Rondônia1789.761200500002406.16
Roraima1783.591000200002079.66
Tocantins1771.091000600002934.59
Pernambuco1527.08900500002389.62
Acre1506.09900300002276.23
Amazonas1445.13900220001757.94
Bahia1429.658002000003507.92
Pará1399.08850500002053.78
Rio Grande do Norte1344.72800155001651.81
Paraíba1293.37788300001950.27
Ceará1255.4789250001821.96
...

Na primeira linha, estamos agrupando o DataFrame por UF e pegando algumas informações de renda como média, mediana, valor máximo e desvio padrão.

Na segunda linha de código estamos alterando os nomes dos estados, ao invés de termos números teremos os nomes de cada estado referentes aos números.

Na terceira linha estamos dropando o nível 0 de colunas, para conseguir realizar o .sort_values() pela coluna mean de forma mais simples.

A última linha estamos ordenando o DataFrame pela coluna mean em ordem decrescente.

Verifique se essa solução te ajuda com seu problema. Caso apresente algum problema, solicito que envie o print do erro apresentado e seu código para sermos mais assertivos na resposta. Você pode upar em um drive e nos encaminhar o link, por exemplo.

Espero ter ajudado, mas se ainda persistir alguma dúvida estou sempre à disposição.

:)

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