Python

Como Agrupar Dados no Pandas

Escrito por Erick Faria · 2 min. >
Agrupar Dados no Pandas

Neste post, vamos explorar como agrupar dados no Pandas, uma biblioteca Python amplamente utilizada para análise de dados. Vamos criar um DataFrame de exemplo e, em seguida, abordar várias técnicas para agrupar dados utilizando o método groupby do Pandas.

Conhecendo o Pandas

Pandas é uma biblioteca poderosa e versátil, fundamental para manipulação e análise de dados em Python. Desde a sua criação em 2008, ela se tornou uma das ferramentas mais populares para cientistas de dados e analistas. O nome “Pandas” é uma referência ao termo “Panel Data”, utilizado em econometria.

Para quem está começando, o Pandas oferece duas principais estruturas de dados: as Series (unidimensionais) e os DataFrames (bidimensionais). Ambas são essenciais para manipulação de dados e permitem operações rápidas e eficientes.

Se você deseja uma introdução mais detalhada ao Pandas, confira o guia completo na documentação oficial do Pandas. Agora, vamos nos concentrar em como agrupar dados usando o Pandas.

Agrupar Dados no Pandas

Criando um DataFrame

Antes de agrupar dados, precisamos de um DataFrame de exemplo. Vamos criar um DataFrame simples para ilustrar as técnicas de agrupamento:

# Agrupar Dados no Pandas

import pandas as pd

data = {
    'Nome': ['João', 'Ana', 'Carlos', 'Marta', 'João', 'Ana'],
    'Idade': [23, 45, 36, 41, 23, 45],
    'Cidade': ['São Paulo', 'Rio de Janeiro', 'Belo Horizonte', 'Salvador', 'São Paulo', 'Rio de Janeiro'],
    'Salário': [5000, 7000, 8000, 6000, 5000, 7000]
}

df = pd.DataFrame(data)

Agrupando Dados com groupby

O método groupby é uma ferramenta poderosa no Pandas para agrupar dados com base em uma ou mais colunas. Por exemplo, para agrupar dados pelo nome e calcular a média dos salários, você faria:

# Agrupar Dados no Pandas
df.groupby('Nome')['Salário'].mean()

Isso retorna a média dos salários para cada nome único no DataFrame.

Agrupando por Múltiplas Colunas

Você também pode agrupar dados por múltiplas colunas. Por exemplo, para agrupar por nome e cidade, e calcular a soma dos salários:

# Agrupar Dados no Pandas
df.groupby(['Nome', 'Cidade'])['Salário'].sum()

Isso retorna a soma dos salários para cada combinação única de nome e cidade.

Aplicando Funções de Agregação

O método groupby permite aplicar diversas funções de agregação, como mean, sum, count, min, max, etc. Por exemplo, para contar o número de registros para cada cidade:

# Agrupar Dados no Pandas
df.groupby('Cidade')['Nome'].count()

Usando agg para Agregações Múltiplas

O método agg permite aplicar múltiplas funções de agregação simultaneamente. Por exemplo, para calcular a média e a soma dos salários por cidade:

df.groupby('Cidade')['Salário'].agg(['mean', 'sum'])

Filtrando Grupos

Você pode filtrar grupos com base em condições específicas usando o método filter. Por exemplo, para filtrar cidades com uma média de salário maior que 6000:

# Agrupar Dados no Pandas
df.groupby('Cidade').filter(lambda x: x['Salário'].mean() > 6000)

Para mais informações sobre como utilizar o Pandas para análise de dados, confira outros conteúdos no meu blog:

Considerações Finais

Espero que este guia tenha sido útil para aprender como agrupar dados no Pandas. A prática é essencial para dominar essas técnicas, então encorajo você a experimentar e aplicar esses métodos em seus próprios projetos de análise de dados.

Para aprimorar suas habilidades com o Pandas e se tornar mais eficiente na manipulação de dados, é importante também fortalecer sua compreensão em Python. Recomendamos o livro “Fundamentos em Python: Para Iniciantes em Programação e Computação”, disponível na Amazon, que oferece uma introdução abrangente ao Python.

Junte-se à nossa comunidade no Twitter e inscreva-se no nosso canal do YouTube para acessar mais tutoriais, dicas e recursos. Continue praticando e explorando novas maneiras de manipular dados com o Pandas, e fique atento para mais guias e tutoriais que compartilharemos.

Escrito por Erick Faria
Engenheiro de Dados com Ph.D. em Geografia e experiência em análise espacial e geoprocessamento. Expertise em processamento de grandes volumes de dados geoespaciais, imagens de satélite e dados de mercado, utilizando ferramentas como Spark, Databricks e Google Earth Engine. Experiência em projetos de mercado de carbono, modelos preditivos para investimentos agrícolas e liderança de projetos de dados em saúde pública. Habilidades em Python, R, SQL e diversas ferramentas de engenharia de dados. Profile