Olá, Eduardo. Como vai?
Parabéns pela excelente resolução do desafio! O seu código demonstra um ótimo domínio das funções essenciais da biblioteca Pandas para análise exploratória de dados.
Você seguiu perfeitamente os passos necessários, desde a importação do arquivo delimitado por ponto e vírgula (sep=';') até a geração do gráfico de barras horizontais utilizando boas práticas de visualização.
Para agregar ainda mais valor ao seu projeto e aprofundar os seus conhecimentos em Pandas, vamos analisar os pontos fortes do seu código e trazer algumas sugestões de melhorias técnicas e de negócios.
Pontos Fortes do seu Código
- Uso correto do
nunique(): No item 2, utilizar o nunique() é a forma mais performática e direta de descobrir a quantidade de registros únicos em uma coluna do DataFrame, evitando a necessidade de extrair uma lista com unique() e depois medir o seu tamanho. - Agrupamento com Ordenação: No item 3, encadear as funções
.groupby(), .mean() e .sort_values(ascending=False) demonstra uma excelente compreensão de como o Pandas funciona por baixo dos panos (mecanismo de Dividir-Aplicar-Combinar). - Escolha do Gráfico: No item 4, utilizar o gráfico de barras horizontais (
kind='barh') para exibir nomes de bairros é uma excelente prática de design de dados. Barras horizontais evitam que os nomes dos bairros fiquem sobrepostos ou na diagonal, tornando a leitura imediata.
Sugestões de Melhoria e Boas Práticas
Se você quiser elevar ainda mais o nível técnico dessa análise, aqui estão duas sugestões práticas:
1. Tratamento de Valores Nulos antes do Agrupamento
Ao calcular a média de aluguel por bairro, o Pandas ignora os valores nulos por padrão. No entanto, se houver imóveis cujo valor do aluguel está em branco (NaN), a contagem pode gerar distorções se o seu objetivo for analisar a base completa. Uma boa prática é verificar e tratar esses valores nulos antes:
# Verificando se existem valores nulos na coluna Valor
print(df['Valor'].isnull().sum())
# Removendo linhas onde o Valor do aluguel é nulo antes de tirar a média
df_limpo = df.dropna(subset=['Valor'])
2. Refinando o Gráfico para Apresentações Executivas
Embora o seu código para o gráfico funcione perfeitamente, quando geramos relatórios para tomadas de decisão, adicionar títulos aos eixos e inverter a ordem das barras facilita a interpretação. No gráfico de barras horizontais (barh), o Pandas costuma colocar o maior valor no topo, mas a ordenação de leitura humana funciona melhor de cima para baixo.
Veja como deixar o seu gráfico ainda mais profissional:
# Selecionando o top 5 e invertendo a ordem para o maior aparecer primeiro no topo do gráfico
top5_bairros = media_aluguel_bairro.head(5).sort_values(ascending=True)
ax = top5_bairros.plot(
kind='barh',
figsize=(10, 6),
color='green'
)
# Adicionando elementos informativos
ax.set_title('Top 5 Bairros com Maiores Médias de Valor de Aluguel', fontsize=14, fontweight='bold')
ax.set_xlabel('Valor Médio (R$)', fontsize=12)
ax.set_ylabel('Bairro', fontsize=12)
Continue praticando com esse ótimo rigor lógico e compartilhando suas soluções aqui no fórum!
Espero que possa ter lhe ajudado!