Como agrupar dados no Pandas no Python e gerar um gráfico?

Aprenda como agrupar dados no Pandas no Python e transformar sua análise em gráficos visuais de maneira simples e eficiente.

Se você está começando a trabalhar com análise de dados no Python, aprender a agrupar dados no Pandas é uma das habilidades mais importantes que você pode adquirir. O método groupby permite organizar seus dados de forma eficiente, extraindo informações valiosas com apenas algumas linhas de código. E o melhor: com ferramentas como o Matplotlib ou o Seaborn, você pode transformar esses agrupamentos em gráficos visuais.

Neste tutorial, vamos fazer um estudo de caso prático: como agrupar vendas por cidade e gerar um gráfico para visualizar os resultados.

Antes de começar:

Se você chegou até aqui, mas não tem conhecimento em Python, fique tranquilo! Este artigo é para iniciantes. Antes de tudo, você só precisa ter o Python instalado na sua máquina. Caso ainda não tenha, clique aqui para conferir um artigo onde explico de forma simples como fazer isso.

Instalando o Pandas e dependências

É possível que você ainda não tem a biblioteca Pandas instalada, é necessário adicioná-la ao seu ambiente Python. Para isso, você pode usar o seguinte comando no terminal ou prompt de comando:

pip install pandas

Como vamos trabalhar com arquivos Excel neste tutorial, também é importante instalar a biblioteca openpyxl:

pip install openpyxl

E, para criar os gráficos, recomendo instalar a biblioteca Matplotlib:

pip install matplotlib

Crie uma pasta em sua máquina para armazenar todos os arquivos que usaremos neste tutorial. No meu caso, nomeei a pasta como “agrupar dados no pandas”.

Após criar a pasta, clique aqui para baixar a planilha que utilizaremos neste estudo de caso e crie o arquivo “gerar-grafico.py”, onde escreveremos nosso script em Python.

Pronto jovem padawan! Agora você está preparado para seguir este tutorial. 😉

O que é o método groupby no Pandas

O groupby é um dos recursos mais utilizados do Pandas. Ele permite dividir os dados em grupos baseados em uma ou mais colunas, aplicar funções de agregação e combinar os resultados. Isso é ideal para sumarizar grandes volumes de dados e obter insights como somas, médias e contagens.

Por exemplo, se você tiver uma tabela de vendas contendo informações sobre cidades, produtos e valores, o groupby pode responder rapidamente perguntas como: Qual foi o total de vendas por cidade?

Agora, vamos colocar isso em prática.

Agrupando dados no Pandas

Antes de tudo, precisamos de uma base de dados. Vamos abrir a nossa planilha controlde_de_vendas.xlsx e teremos a seguinte imagem na aba Vendas.

Nosso objetivo é agrupar as vendas por cidade e somar o total de cada uma. Para isso, siga os passos abaixo:

Passo 1: Importar o Pandas e carregar os dados

import pandas as pd

# Carregar a tabela de vendas
dados = pd.read_excel('controle_de_vendas.xlsx', sheet_name='Vendas')

Passo 2: Agrupar dados no Pandas

Agora vamos agrupar os dados por cidade e calcular o total das vendas:

# Agrupar as vendas por cidade
vendas_por_cidade = dados.groupby('Cidade')['Valor Total'].sum()

# Exibir os resultados
print(vendas_por_cidade)

Isso irá retornar uma série com os totais de vendas para cada cidade.

Curso Intensivo de Python: uma Introdução Prática e Baseada em Projetos à Programação

Quer aprender Python de forma prática e eficiente? Com este guia best-seller, você dominará a programação criando jogos, visualizações de dados e aplicações web. Explore ferramentas como Django, Plotly e Pygame, teste seu código e programe com confiança.

🔹 Comece agora e transforme seu futuro! 🚀
👉 Garanta o seu aqui!

Passo 3: Converter para um DataFrame

Um DataFrame é a estrutura de dados principal do Pandas, semelhante a uma tabela de banco de dados ou uma planilha do Excel. Ele é composto por colunas e linhas, permitindo armazenar, manipular e analisar dados de forma eficiente. No contexto do Pandas, uma Série representa uma única coluna de dados, enquanto um DataFrame contém múltiplas colunas.

Se você quiser trabalhar com um DataFrame em vez de uma série, pode usar o método reset_index:

vendas_por_cidade_df = vendas_por_cidade.reset_index()
print(vendas_por_cidade_df)

Isso cria uma tabela mais organizada, com as colunas “Cidade” e “Valor Total”.

Gerando um gráfico com os dados agrupados

Para visualizar esses dados, podemos usar a biblioteca Matplotlib. Vamos criar um gráfico de barras mostrando as vendas por cidade.

Passo 4: Importar Matplotlib e criar o gráfico

import matplotlib.pyplot as plt

# Criar o gráfico de barras
plt.bar(vendas_por_cidade_df['Cidade'], vendas_por_cidade_df['Valor Total'])

# Adicionar título e rótulos
plt.title('Vendas por Cidade')
plt.xlabel('Cidade')
plt.ylabel('Valor Total (R$)')

# Exibir o gráfico
plt.show()

Esse código gera um gráfico simples e claro, mostrando o total de vendas para cada cidade de forma visual.

Se tudo ocorreu conforme os planos, você deve visualizar um gráfico semelhante ao da imagem abaixo:

Passo 5: Refinamento

Para evitar que as legendas fiquem amontoadas no gráfico, vamos ajustar os rótulos do eixo x usando plt.xticks para rotacioná-los. Aqui está o ajuste no código:

import pandas as pd
import matplotlib.pyplot as plt

# Carregar a tabela de vendas
dados = pd.read_excel('controle_de_vendas.xlsx', sheet_name='Vendas')

# Agrupar as vendas por cidade
vendas_por_cidade = dados.groupby('Cidade')['Valor Total'].sum()

# Converter dados para um DataFrame
vendas_por_cidade_df = vendas_por_cidade.reset_index()

# Criar um gráfico com barras
plt.bar(vendas_por_cidade_df['Cidade'], vendas_por_cidade_df['Valor Total'])

# Adicionar título e rótulo
plt.title('Vendas por Cidade')
plt.xlabel('Cidade')
plt.ylabel('Valor Total R$')

# Rotacionar Rótulos
plt.xticks(rotation = 45, ha='right')

# Ajustar layout para evitar cortes
plt.tight_layout()

# Exibir Gráfico
plt.show()

O que foi feito:

  • plt.xticks(rotation=45, ha=’right’): Rotaciona os rótulos do eixo X em 45 graus e os alinha à direita, deixando o gráfico mais legível.
  • plt.tight_layout(): Garante que todos os elementos do gráfico, incluindo rótulos, sejam exibidos corretamente..
  • Todo o resto do código permanece igual.

Esse ajuste garantr que os rótulos não fiquem sobrepostos, melhorando a visualização.

Bônus: Gerar PDF do Gráfico

Acredito que a ideia principal de gerar gráficos é criar um arquivo PDF para posteriormente enviar para alguém e isso é bem simples de se fazer no Python. Basta adicionar uma linha de comando antes do comando plt.show().

# Salvar o gráfico como PDF
plt.savefig("vendas_por_cidade.pdf", format="pdf")

Agora, além de visualizar o gráfico na tela, ele também será salvo no mesmo diretório do seu código como um arquivo PDF.

Conclusão

Agrupar dados no Pandas é uma técnica essencial para quem trabalha com análise de dados no Python. Como vimos neste tutorial, com apenas algumas linhas de código é possível organizar, sumarizar e transformar os dados em informações valiosas. E ao combinar isso com bibliotecas como Matplotlib, você pode criar gráficos que facilitam a visualização e a comunicação dos resultados.

Agora é sua vez! Experimente com seus próprios dados e veja como o Pandas pode revolucionar sua análise de dados. 😎

Comentários

0 0 votos
Classificação do artigo
Inscrever-se
Notificar de
guest
0 Comentários
mais antigos
mais recentes Mais votado
Feedbacks embutidos
Ver todos os comentários

Outros Artigos e Tutoriais

Sobre o Autor

Desenvolvedor por formação, solucionador de problemas por profissão e apaixonado por compartilhar conhecimento.

Sigam-me os Bons!

Siga-me nas redes sociais e participe da nossa comunidade de aprendizado!

newsletter

Aprenda no seu ritmo. Inscreva-se e receba materiais que fazem diferença.

0
Adoraria saber sua opinião, comente.x

Obrigado por essa dose de cafeína para o blog! 🍵

Com um café, você ajuda a manter as ideias quentes, os códigos rodando e o conteúdo fresquinho no ar.