Olá Pietro, tudo bem com você?
Segue a transcrição solicitada:
Na aula anterior criamos grupo_bairro, e agora geraremos algumas estatísticas descritivas e as múltiplas formas de obter esses resultados.
Chamaremos grupo_bairro, a variável Valor, e em seguida acionaremos o describre(). Para arredondar os valores obtidos também usaremos o round(2).
grupo_bairro['Valor'].describe().round(2)
Teremos como resultado um DataFrame com as colunas count a frequência; mean a média; std o desvio padrão; mino valor mínimo; 25% o primeiro quartio, 50% a mediana, 75% o terceiro quartio e max, o valor máximo.
Lembrando que a tabela e os títulos são gerados automaticamente através do comando .describe() quando utilizado na nossa base de dados
Títulos da tabela: Bairro count mean std min 25% 50% 75% max
Tabela
Bairro count mean std min 25% 50% 75% max
Barra da Tijuca 3863.0 7069.55 11874.15 800.0 2500.0 4500.0 8500.0 60000.0
Botafogo 873.0 8791.83 152202.41 700.0 2200.0 3000.0 4350.0 450000.0
Copacabana 2644.0 4126.68 3611.41 100.0 2000.0 3000.0 4800.0 35000.0
Flamengo 714.0 4113.53 3838.13 800.0 1900.0 2900.0 4975.0 35000.0
Ipanema 1764.0 9352.00 8219.72 12000.0 4500.0 7000.0 11000.0 9000.0
Leblon 1258.0 8746.34 70004.04 100.0 4500.0 7000.0 10500.0 1000.0
Tijuca 1100.0 2043.52 1664.34 750.0 1500.0 1800.0 2300.0 45000.0
Rapidamente perceberemos alguns problemas: percebemos que o desvio padrão(std) apresenta uma variação muito grande no caso de Botafogo, o mesmo ocorre para Barra da Tijuca. No caso de valor máximo, perceberemos valores estranhos também; segundo a tabela, existem imóveis disponíveis em em Botafogo com a locação de 4500000.0.
Essas informações estão errôneas, muito provavelmente esses valores correspondem à venda e não à locação. Para solucionar essa questão. Coletaremos a variável Valor, e em seguida utilizaremos o método aggregate() que receberá como parâmetro o conjunto de estatísticas que nos interessam.
grupo_bairro['Valor'].aggregate(['min', 'max', 'sum'])
Serão executadas apenas as estatística que destacamos. Podemos, ainda, organizar melhor as nomenclaturas via rename():
grupo_bairro['Valor'].aggregate(['min', 'max', 'sum']).rename(columns = {'min': 'Mínimo', 'max': 'Máximo'})
Conseguimos visualizar os problemas de ultra variação em alguns pontos do DataFrame porque temos poucas informações, mas caso tenhamos uma quantidade imensa de dados será difícil identificar falhas manualmente.
Utilizaremos um pacote do Python, conhecido por Matplot lib, criado para gerar visualizações gráficas. Primeiramente, realizaremos a importação e configuraremos o tamanho da representação visual via figsize().
%matplotlib inline
import matplotlib.pyplot as plt
plt.rc('figure', figsize = (20,10))
Construiremos nosso primeiro plot com grupo_bairro, e atribuiremos essa representação à variável fig.
fig = grupo_bairro['Valor'].std().plot.bar(color = 'blue')
Teremos um gráfico em barra, em que podemos identificar a variação atípica no bairro "Botafogo". Com o gráfico temos uma pista de onde devemos fazer ajustes no banco de dados. Faremos algumas configurações em nosso gráfico: coletaremos a média mean() e utilizaremos o set_ylabel() para nomear o eixo Y de Valor do Aluguel. Por fim, daremos o título fig.set_title() de Valor Médio do Aluguel Por Bairro. Como configuração adicional, aumentaremos as fontes do gráfico via fontsize.
fig = grupo_bairro['Valor'].mean().plot.bar(color = 'blue')
fig.set_ylabel('Valor do Aluguel')
fig.set_title('Valor Médio do Aluguel por Bairro', {'fontsize': 22})
Podemos gerar gráficos para outras estatísticas, como valor máximo, mínimo e assim por diante. Nas próximas aulas aprenderemos a como corrigir as variações atípicas que encontramos no DataFrame.
Qualquer dúvida é só retornar aqui! Bons estudos!