1
resposta

Aula (Extra): Criando faixas de valor

Após utilizar o pd.value_counts(quartos), ele me gerou o seguinte relatório:

De 1 à 2 Quartos 11074

De 2 à 3 Quartos 8094

De 3 à 4 Quartos 470

De 0 Quartos 157

De 5 à 6 Quartos 18

De 7 ou mais Quartos 18

Name: Quartos, dtype: int64

É possível mudar a ordem dele? deixar o De 0 Quartos 157 em cima da lista, seguindo a ordem dos quartos?

1 resposta

Boas Otávio! Tudo bem?

É possível sim!

o resultado da função value_counts() é sempre uma Série do pandas, dessa forma, podemos ordená-lo de diversas formas, tanto usando as funções sort_index() como sort_values().

Nesse caso, para ordenar como você deseja, basta salvar o resultado da value_counts() numa variável e realizar um sort_index() nela. Demonstro abaixo.

Obs: os valores estão diferentes pois não tenho acesso a mesma base que você usou, então criei uma.

resultado = df['Número de Quartos'].value_counts()

se observarmos essa variável ela é:

De 5 à 6 Quartos    106
De 3 à 4 Quartos    105
0 Quartos           103
De 1 à 2 Quartos    101
De 2 à 3 Quartos     85

e agora podemos usar o sort_index()

resultado.sort_index()

que resulta:

0 Quartos           103
De 1 à 2 Quartos    101
De 2 à 3 Quartos     85
De 3 à 4 Quartos    105
De 5 à 6 Quartos    106

Se preferir, pode fazer ambas operações na mesma linha, dessa forma:

resultado = df['Número de Quartos'].value_counts().sort_index()

que obtém o mesmo resultado desejado:

0 Quartos           103
De 1 à 2 Quartos    101
De 2 à 3 Quartos     85
De 3 à 4 Quartos    105
De 5 à 6 Quartos    106

Espero ter ajudado e bons estudos!!