Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Uso do groupby()

Quando o professor insere

bairros = ['Barra da Tijuca', 'Copacabana', 'Ipanema', 'Leblon', 'Botafogo', 'Flamengo', 'Tijuca']
selecao = dados.Bairro.isin(bairros)
dados = dados[selecao]
grupo_bairro = dados.groupby('Bairro')

Eu não consegui entender realmente o motivo do comando groupsby nesse código e nem o tipo que grupo_bairro recebe

type(grupo_bairro)

pandas.core.groupby.DataFrameGroupBy

3 respostas

Vou tentar explicar, so pra não ficar um gap. Qualquer coisa alguém corrige.

Quando ele passa a variável bairros pro método .isin(bairros), basicamente escolhe apenas as observações iguais. O método em questão espera como parâmetro Iteráveis, Series, DataFrame ou Dict, e no final retorna uma matriz booleana. Depois disso, ele atualiza o dataframe dados para conter apenas os bairros selecionados. Após, ele agrupa em formato de GroupBy(seriam as repetições) de cada um dos bairros. No final ele chega a plotar os preços por bairros, se não me engano.

solução!

Olá Luiz e Gustavo,

A resposta do Gustavo já explica o código completo, só complementando mais a fundo sobre o groupby, ele vai agrupar os dados para permitir que você execute operações para cada grupo criado. Por exemplo executando: dados['Valor'].mean() o resultado vai ser a média geral de todos os imóveis, agora agrupando por bairro e então aplicando a média: dados.groupby('Bairro')['Valor'].mean() o resultado vai ser as médias do valor para cada bairro. Com esse código simples o pandas já divide todos os imóveis baseado no bairro e calcula a média para cada bairro separadamente.

Resumindo o groupby é uma grande ajuda para agrupamento de dados com a intenção de aplicar uma função para cada grupo. No exemplo foi usado a média, mas existe muitas outras funções que podem ser aplicadas.

Nesse link (em inglês) tem um guia mostrando várias possibilidades do uso do groupby com exemplos.


Sobre o tipo retornado pelo groupby, é um tipo diferente porque o resultado não é apenas um DataFrame, o resultado é um DataFrame modificado chamado de DataFrameGroupBy. Uma comparação válida é olhar os tipos str e int do python, cada um serve para representar um tipo diferente de dado.

Muito obrigado Lucas e Gustavo, com certeza absorvi a informação com clareza agora.