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

[Dúvida] Como groupby do Pandas agrupa os dados ? de que forma exatamente?

Num curso de visualização de dados aqui da Alura, o professor explicou que o método groupby serve pra agrupar os dados de um DataFrame. Mais eu ainda não consegui entender muito bem o que o groupby realmente faz com o dataset.

Num pequeno teste que fiz do método groupby parece que não teve um efeito visual Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Aqui está o código usado: Insira aqui a descrição dessa imagem para ajudar na acessibilidadeComparando visualmente, parece que o resultado antes do group by foi exatamente o mesmo de depois de usar o groupby

Por isso eu fico na duvida, tentando imaginar como que esse agrupamento é feito?

Por isso tenha essa duvida: Como funciona o método groupby do Pandas por baixo dos panos ? o que ele realmente faz ? de que maneira ele agrupa os dados?

2 respostas
solução!

Olá William, tudo bem com você?

O método groupby é utilizado para agrupar dados com base em uma ou mais colunas. O que ele faz é dividir o DataFrame em grupos, baseado nos valores únicos da coluna especificada, e então permite a aplicação de funções de agregação a cada grupo separadamente.

Quando utilizamos, df.groupby('Genero'), indica que o DataFrame será agrupado com base na coluna Genero. No entanto, apenas usar groupby não altera visualmente o DataFrame original porque ele cria um objeto DataFrameGroupBy, que é uma espécie de contêiner intermediário para os grupos, e não um DataFrame pronto para visualização.

Para exibirmos o efeito do groupby, precisamos aplicar uma função de agregação aos grupos. Funções de agregação comuns incluem sum(), mean(), max(), min(), entre outras. Por exemplo, se quisermos a média das idades por gênero, podemos utilizar o seguinte código:

df_agrupado = df.groupby('Genero')['Idade'].mean()
print(df_agrupado)

Isso retornaria um novo DataFrame com a média de idade para cada gênero. Exemplo:

GeneroIdade
Homem21.0
Mulher19.0

Se você apenas quer ver os grupos sem aplicar uma função de agregação, você pode iterar sobre o objeto DataFrameGroupBy:

for nome, grupo in df.groupby('Genero'):
    print(nome)
    print(grupo )

Isso imprimirá o nome de cada grupo (os valores únicos da coluna 'Genero') e o DataFrame correspondente a cada grupo, exemplo:

Imagem exibindo uma tabela com o resultado do código com o laço for listado anterior a essa imagem.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Obrigado Rafael por explicar mais sobre esse comando