Python

Desvendando o Poder da Pivot Table no Pandas

Escrito por Erick Faria · 6 min. >
pivot table no pandas

Pivot table no Pandas, ou em excel tabela dinâmica, é uma ferramenta poderosa para resumir e reorganizar dados. É extremamente útil em pandas, uma biblioteca Python para análise de dados, pois permite transformar, agregar e agrupar dados de um DataFrame de maneiras complexas. Isso facilita a extração de informações e insights a partir de grandes conjuntos de dados.

O que é Pivot Table?

A pivot table no Pandas, também conhecida como tabela dinâmica, é um recurso fundamental em análise de dados que permite resumir, agrupar e reorganizar dados de maneiras altamente flexíveis. Muito popularizada por programas de planilha como o Microsoft Excel, essa ferramenta ganhou grande aderência na comunidade de ciência de dados, estendendo sua aplicação a linguagens de programação, como Python através da biblioteca pandas.

Para começar, vamos entender o que significa pivotar. A palavra “pivotar”, na verdade, significa girar ou rodar. Na computação, a pivotagem permite que você gire os dados de uma maneira que faça sentido para sua análise. Ao fazer isso, você está, na verdade, transformando os dados para ver as informações sob uma nova perspectiva. O ato de pivotar, portanto, permite explorar relações e padrões nos dados que podem não ser imediatamente aparentes.

A pivot table em si é uma tabela derivada de um conjunto maior de dados, que agrega informações de acordo com certos critérios. O objetivo é resumir os dados em uma tabela que permita análises e insights aprofundados. Uma pivot table tipicamente leva dados simples em coluna-largura e os agrupa em uma tabela de duas dimensões. Isto é, permite que você transfira dados de uma coluna em seu DataFrame para se tornar o cabeçalho da tabela final, enquanto os outros valores são resumidos em células correspondentes.

Vamos dar um exemplo simples. Imagine que você tem um conjunto de dados de vendas de um negócio de varejo. Seus dados incluem colunas para a data da venda, a localização da loja, o tipo de produto e o valor da venda. Se você quisesse ver o total de vendas por loja, poderia usar uma pivot table no Pandas para resumir essas informações. O resultado seria uma tabela com cada loja como uma linha e o total de vendas de cada loja em uma coluna ao lado.

No entanto, as pivot tables vão além de simples somas e médias. Por exemplo, você pode querer entender como as vendas variam de mês para mês ou por tipo de produto. Com a pivot table, você pode alterar facilmente o foco de sua análise, permitindo uma exploração mais profunda e granular de seus dados.

A pivot table no Pandas é uma função que realiza essa transformação de dados com apenas alguns comandos. Ela permite ao usuário extrair informações úteis e insights que seriam difíceis de ver em um conjunto de dados não processado. Além disso, ela oferece uma maneira conveniente de manipular e reformular seus dados para análises mais complexas.

Quando usar a Pivot Table?

A pivot table é uma ferramenta indispensável quando você precisa resumir, explorar e analisar dados complexos. Ela é especialmente útil quando você tem grandes conjuntos de dados e deseja extrair insights relevantes. Vamos ilustrar isso com alguns exemplos.

Suponha que você trabalhe em uma empresa de comércio eletrônico e tenha um grande conjunto de dados de transações, com colunas para data da compra, ID do cliente, produto comprado e valor da venda. Agora, imagine que você quer entender os padrões de compra ao longo do tempo, talvez para identificar tendências sazonais ou o impacto de campanhas de marketing. Uma pivot table pode facilmente transformar esses dados brutos em uma análise de vendas por mês, permitindo uma visualização clara desses padrões.

Outro exemplo poderia ser uma escola que deseja analisar o desempenho acadêmico de seus alunos. Dados brutos poderiam incluir colunas para nome do aluno, disciplina, professor e nota. Uma pivot table poderia reorganizar esses dados para mostrar a média das notas por disciplina ou professor, revelando quais disciplinas ou professores têm os melhores resultados.

As pivot tables são igualmente úteis no setor de saúde. Por exemplo, um hospital pode usar tabelas dinâmicas para analisar os dados dos pacientes, como idade, sexo, condição médica e tratamentos realizados. A pivot table pode ajudar a revelar padrões importantes, como as condições médicas mais comuns por faixa etária ou sexo, ou a eficácia de diferentes tratamentos.

Pivot Table no Pandas

# Código de execução do Pivot Table no Pandas
# Importar a biblioteca pandas
import pandas as pd

# Criar um DataFrame de exemplo
dados = {
    'Loja': ['Loja A', 'Loja B', 'Loja A', 'Loja B', 'Loja A', 'Loja B'],
    'Produto': ['Produto 1', 'Produto 1', 'Produto 2', 'Produto 2', 'Produto 1', 'Produto 2'],
    'Vendas': [10, 20, 15, 25, 20, 30]
}

df = pd.DataFrame(dados)

# Imprimir o DataFrame original
print("DataFrame original:")
print(df)

# Criar a pivot table no Pandas
pivot_table = df.pivot_table(values='Vendas', index='Loja', columns='Produto', aggfunc='sum')

# Imprimir a pivot table no Pandas
print("\nPivot Table:")
print(pivot_table)

Veja abaixo a tabela que vamos usar de exemplo para aplicar a função de Pivot Table no Pandas. Ao executar o código acima essa tabela será automaticamente criada.

LojaProdutoVendas
0Loja AProduto 110
1Loja BProduto 120
2Loja AProduto 215
3Loja BProduto 225
4Loja AProduto 120
5Loja BProduto 230
Tabela original antes do Pivot Table

Após aplicar a função Pivot Table do pandas no DataFrame original, conseguimos uma nova tabela que nos fornece um resumo mais acessível dos dados. Esta tabela pivotada é organizada de maneira que cada linha representa uma loja e cada coluna representa um produto. As células da tabela são preenchidas com a soma total das vendas de cada produto em cada loja.

A tabela pivotada ficaria assim:

ProdutoLojaProduto 1Produto 2
LojaLoja A3015
Loja B2055

Na primeira linha, correspondendo à “Loja A”, temos a soma total das vendas do “Produto 1” e do “Produto 2”. O valor 30 na coluna “Produto 1” indica que a “Loja A” vendeu um total de 30 unidades do “Produto 1”. De forma semelhante, o valor 15 na coluna “Produto 2” indica que a “Loja A” vendeu um total de 15 unidades do “Produto 2”.

A segunda linha da tabela fornece a mesma informação, mas para a “Loja B”. Assim, o valor 20 na coluna “Produto 1” indica que a “Loja B” vendeu um total de 20 unidades do “Produto 1”, e o valor 55 na coluna “Produto 2” indica que a “Loja B” vendeu um total de 55 unidades do “Produto 2”.

Essa reestruturação dos dados nos permite rapidamente comparar as vendas de diferentes produtos entre as lojas e identificar tendências ou padrões importantes nos dados. Por exemplo, pode-se ver de relance que a “Loja B” vendeu mais do “Produto 2” do que qualquer outra combinação de loja e produto. Da mesma forma, a “Loja A” vendeu mais do “Produto 1” do que do “Produto 2”. Estes insights podem ser extremamente úteis para a tomada de decisões em um ambiente de negócios.

Aprendendo mais sobre o Pivot Table

Ao longo deste post, apresentamos os fundamentos e o poder das pivot table no Pandas. No entanto, este é apenas o começo. Se você quer aprofundar seus conhecimentos e dominar essa ferramenta poderosa, eu fortemente aconselho que você visite a documentação oficial do pandas.

A documentação do pandas é um recurso completo e bem organizado que fornece informações detalhadas não apenas sobre a função Pivot Table no Pandas, mas também sobre todas as outras funcionalidades da biblioteca. A página da função Pivot Table no Pandas, em particular, fornece uma descrição completa dos parâmetros que podem ser usados, além de exemplos de código práticos.

Explorar a documentação oficial (pandas.pivot_table) permitirá que você aprenda sobre recursos avançados da pivot table no pandas que não cobrimos neste post, permitindo que você tire o máximo proveito desta função em suas próprias análises de dados. Com o tempo e a prática, você se tornará um especialista no uso das pivot table no pandas, aumentando significativamente sua eficiência na análise de dados.

Enquanto você continua sua jornada para dominar o pandas e suas poderosas pivot tables, quero lembrar que há muito mais a ser descoberto aqui no Balaio Científico. Escrevo regularmente sobre uma variedade de tópicos relacionados a Python e pandas, sempre buscando tornar a programação e a análise de dados acessíveis e empolgantes para todos, independente do nível de experiência.

Um dos meus posts mais recentes, O que é Pandas, fornece uma visão geral completa desta biblioteca indispensável. Se você é novo no pandas ou se quer reforçar seu conhecimento sobre suas funcionalidades básicas, este post é um excelente ponto de partida. Você encontrará explicações claras e exemplos práticos que o ajudarão a compreender e utilizar o pandas em suas próprias análises de dados.

E a jornada de aprendizado não para por aí. Se você está realmente interessado em se aprofundar em Python e se tornar um profissional de dados proficientes, tenho algo especial para você. Convido-o a conhecer o meu livro de Python. Com uma abordagem prática e voltada para a resolução de problemas, meu livro vai além dos posts do blog e proporciona uma compreensão aprofundada de Python e suas bibliotecas relacionadas, incluindo pandas.

Investir na sua educação é um dos investimentos mais valiosos que você pode fazer. Então, não hesite! Dê o próximo passo na sua jornada de aprendizado de Python e pandas. Explore os posts do blog, leia o meu livro, e não se esqueça de visitar a documentação oficial do pandas para aprender ainda mais sobre as pivot table no Pandas.

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