Aprenda como criar tabelas dinâmicas estilo Excel em Python com 5 linhas de código
Vá além do Microsoft Excel e aprenda como criar tablets dinâmicos com Python e apenas algumas linhas de código.
As tabelas dinâmicas continuam a estar entre as ferramentas mais reverenciadas e amplamente utilizadas no MS Excel. Quer você seja um analista de dados, engenheiro de dados ou simplesmente um usuário comum, é provável que você já tenha uma queda pelo MS Excel.
No entanto, há um escopo cada vez maior para replicar as ferramentas e utilitários do MS Excel, especialmente em Python. Você sabia que pode criar tabelas dinâmicas extensas em DataFrames do Python com apenas algumas linhas de código?
Sim esta correto; se você está intrigado, veja como você pode fazer isso.
Pré-requisitos para criação de tabelas dinâmicas
Como qualquer outra linguagem de programação, até mesmo o Python precisa que você cumpra alguns pré-requisitos antes de começar a codificar.
Para obter a experiência mais otimizada ao criar sua primeira tabela dinâmica em Python, aqui está o que você precisa:
- IDE Python: a maioria dos códigos Python tem um ambiente de desenvolvimento integrado (IDE) pré-instalado em seu sistema. Existem vários IDEs compatíveis com Python no mercado, incluindo Jupyter Notebook, Spyder, PyCharm e muitos outros.
- Dados de amostra: Para ilustração, aqui está um conjunto de dados de amostra para você trabalhar. Alternativamente, sinta-se à vontade para ajustar esses códigos diretamente em seus dados ativos.
Link de amostra de dados: Exemplo de Superloja
Importando as bibliotecas essenciais
Como o Python trabalha com o conceito de bibliotecas de terceiros, você precisa importar a biblioteca Pandas para criar pivôs.
Você pode usar o Pandas para importar um arquivo Excel para Python e armazenar os dados em um DataFrame. Para importar Pandas, use o comando import da seguinte maneira:
import pandas as pd
Como criar pivôs em Python
Como a biblioteca já está disponível, você precisa importar o arquivo Excel para Python, que é a base para criar e testar pivôs em Python. Armazene os dados importados em um DataFrame com o seguinte código:
# Create a new DataFrame
# replace with your own path here
path = "C://Users//user/OneDrive//Desktop//"
# you can define the filename here
file = "Sample - Superstore.xls"
df = pd.read_excel(path + file)
df.head()
Onde:
- df: Nome da variável para armazenar os dados do DataFrame
- pd: Alias para biblioteca Pandas
- read_excel(): função Pandas para ler um arquivo Excel em Python
- caminho: o local onde o arquivo Excel está armazenado (Sample Superstore)
- arquivo: Nome do arquivo a ser importado
- head(): Exibe as primeiras cinco linhas do DataFrame, por padrão
O código acima importa o arquivo Excel para Python e armazena os dados em um DataFrame. Finalmente, a função head exibe as primeiras cinco linhas de dados.
Esta função é útil para garantir que os dados sejam importados corretamente para Python.
Quais campos da tabela dinâmica existem em Python?
Assim como sua contraparte do Excel, uma tabela dinâmica possui um conjunto semelhante de campos em Python. Aqui estão alguns campos que você precisa conhecer:
- Dados: O campo de dados refere-se aos dados armazenados em um DataFrame Python
- Valores: dados colunares usados em um pivô
- Índice: uma(s) coluna(s) de índice para agrupar os dados
- Colunas: as colunas ajudam a agregar os dados existentes em um DataFrame
Objetivo por trás do uso da função de índice
Como a função de índice é o elemento principal de uma tabela dinâmica, ela retorna o layout básico dos dados. Em outras palavras, você pode agrupar seus dados com a função índice .
Suponha que você queira ver alguns valores agregados para os produtos listados na coluna Segmento . Você pode calcular uma agregação predefinida (valor médio) em Python definindo a coluna designada como um valor de índice.
df.pivot_table(index = "Segment")
Onde:
- df: DataFrame contendo os dados
- pivot_table: função de tabela dinâmica em Python
- índice: função integrada para definir uma coluna como um índice
- Segmento: coluna a ser usada como valor de índice
Os nomes de variáveis do Python diferenciam maiúsculas de minúsculas, portanto, evite sair dos nomes de variáveis predefinidos listados neste guia.
Como usar valores de vários índices
Quando quiser usar múltiplas colunas de índice, você pode definir os nomes das colunas em uma lista dentro da função de índice. Tudo o que você precisa fazer é especificar os nomes das colunas dentro de um conjunto de colchetes ([ ]), conforme mostrado abaixo:
df.pivot_table(index = ["Category", "Sub-Category"])
A função pivot recua a coluna do índice na saída. Python exibe a média de todos os valores numéricos em relação a cada valor do índice.
Aprenda a restringir os valores na saída
Como o Python escolhe todas as colunas numéricas por padrão, você pode restringir os valores para ajustar os resultados mostrados na saída final. Use a função valores para definir as colunas que deseja ver.
df.pivot_table(index = ["Region", "Category", "Sub-Category"], values = "Sales")
Na saída final, haverá três colunas de índice e os valores médios da coluna Vendas comparados a cada elemento.
Definição de funções agregadas na tabela dinâmica
O que acontece quando você não deseja calcular os valores médios por padrão? A tabela dinâmica possui muitas outras funcionalidades, que vão além do cálculo de uma simples média.
Veja como escrever o código:
df.pivot_table(index = ["Category"], values = "Sales", aggfunc = [sum, max, min, len])
Onde:
- soma: Calcula a soma dos valores
- max: Calcula o valor máximo
- min: Calcula o valor máximo
- len: Calcula a contagem de valores
Você também pode definir cada uma dessas funções em linhas de código separadas.
Como adicionar totais gerais à tabela dinâmica
Nenhum ativo de dados está completo sem os totais gerais. Para calcular e exibir os totais gerais por coluna de dados, use as funções margens e nome_margens.
df.pivot_table(index = ["Category"], values = "Sales", aggfunc = [sum, max, min, len], margins=True, margins_name='Grand Totals')
Onde:
- margens: Função para calcular o total geral
- margins_name: especifique o nome da categoria na coluna do índice (por exemplo, Totais Gerais)
Modifique e use o código final
Aqui está o resumo final do código:
import pandas as pd
# replace with your own path here
path = "C://Users//user/OneDrive//Desktop//"
# you can define the filename here
file = "Sample - Superstore.xls"
df = pd.read_excel(path + file)
df.pivot_table(index = ["Region", "Category", "Sub-Category"], values = "Sales",
aggfunc = [sum, max, min, len],
margins=True,
margins_name='Grand Totals')
Criando tabelas dinâmicas em Python
Quando você usa tabelas dinâmicas, as opções são simplesmente infinitas. Python permite que você lide facilmente com grandes matrizes de dados sem se preocupar com discrepâncias de dados e atrasos do sistema.
Como as funcionalidades do Python não se restringem apenas à condensação de dados em pivôs, você pode combinar várias pastas de trabalho e planilhas do Excel, enquanto executa uma série de funções relacionadas com o Python.
Com Python, sempre há algo novo no horizonte.