Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Resposta

Todas as respostas estão no meu notebook: https://colab.research.google.com/drive/1D3yiKEuwdtA-gzqHQL_wiCpW9j_nPLMq?usp=sharing

Desafio 3: Eu fiz de duas formas:

#groupby('Bairro') Agrupa os dados por bairro
media_aluguel_bairro = df.groupby('Bairro')['Valor'].mean()
print(media_aluguel_bairro)
media_aluguel_bairro = df.groupby('Bairro')['Valor'].mean().sort_values(ascending=False)
print(media_aluguel_bairro)

Desafio 4:

import matplotlib.pyplot as plt

# Calcula a média do aluguel por bairro
media_aluguel_bairro = df.groupby('Bairro')['Valor'].mean()

top_5_bairros = media_aluguel_bairro.sort_values(ascending=False).head(5)

#Cria um gráfico de barras verticais
top_5_bairros.plot(kind='bar')

plt.title('Top 5 bairros com maior média de aluguel')
plt.xlabel('Bairro')
plt.ylabel('Aluguel Médio')

plt.show()
1 resposta

Olá, Maria. Como vai?

Parabéns pela resolução do desafio! O seu código ficou excelente, muito limpo e direto ao ponto. É ótimo ver que você compartilhou o link do seu notebook do Google Colab e explorou caminhos diferentes para o mesmo problema.

Analisando as suas soluções, vale destacar ótimas práticas que você aplicou:

  • Uso inteligente do sort_values: No Desafio 3, a sua segunda forma utilizando o .sort_values(ascending=False) é a melhor escolha para análise de dados. Agrupar os dados e ordená-los do maior para o menor facilita muito a leitura do relatório, permitindo que qualquer pessoa identifique instantaneamente os bairros mais caros.
  • Encadeamento de métodos (Method Chaining): No Desafio 4, você fez uma construção fantástica ao juntar .sort_values(ascending=False).head(5). Essa capacidade de ordenar e já filtrar os 5 primeiros registros em uma única linha é um dos grandes poderes da biblioteca Pandas.
  • Customização do Gráfico: Seu gráfico ficou super completo com a inclusão de título (plt.title) e a identificação correta dos eixos X e Y (plt.xlabel e plt.ylabel). Isso demonstra cuidado com a comunicação visual dos dados.

Para enriquecer ainda mais o seu aprendizado e o seu notebook, deixo duas sugestões rápidas de boas práticas e melhorias no código:

1. Rotacionar os rótulos do eixo X

Como os nomes dos bairros podem ser longos, em gráficos de barras verticais (kind='bar') eles costumam ficar na horizontal e podem se sobrepor ou cortar. Você pode garantir que eles fiquem legíveis adicionando o argumento de rotação dentro do método plot ou usando o plt.xticks:

# Rotaciona os nomes dos bairros em 45 graus para melhorar a leitura
top_5_bairros.plot(kind='bar', rot=45)

2. Formatar os valores do eixo Y (Opcional)

Como estamos lidando com valores de aluguel (moeda), uma boa prática em visualização de dados é fazer com que o gráfico exiba os números de forma amigável. Uma alternativa elegante ao gráfico de barras verticais para rankings é o gráfico de barras horizontais (kind='barh'), pois ele dá mais espaço para ler o nome dos bairros de forma natural (da esquerda para a direita). Veja como testar:

# Gráfico de barras horizontais (barh) do menor para o maior para o topo ficar no topo
top_5_bairros.sort_values(ascending=True).plot(kind='barh')
plt.title('Top 5 bairros com maior média de aluguel')
plt.xlabel('Aluguel Médio (R$)')
plt.ylabel('Bairro')
plt.show()

O seu domínio inicial sobre as funções de agregação (groupby) e visualização com o Pandas está fantástico. Continue com essa dedicação e explorando o potencial das bibliotecas de Data Science!

Espero que possa ter lhe ajudado!