Como criar uma tabela de pivô em Pandas Python

Como criar uma tabela de pivô em Pandas Python
No Python de Panda, a tabela de articulação compreende somas, contagens ou funções de agregações derivadas de uma tabela de dados. Funções de agregação podem ser usadas em diferentes recursos ou valores. Uma tabela dinâmica nos permite resumir os dados da tabela, agrupados por diferentes valores, incluindo valores categóricos da coluna.

Antes de usar a tabela pivô do Panda, certifique -se de entender seus dados e perguntas que você está tentando resolver através da tabela dinâmica. Ao usar este método, você pode produzir resultados poderosos. Vamos elaborar neste artigo, como criar uma tabela de articulação em Pandas Python.

Leia dados do arquivo Excel

Baixamos um banco de dados do Excel de vendas de alimentos. Antes de iniciar a implementação, você precisa instalar alguns pacotes necessários para ler e escrever os arquivos de banco de dados do Excel. Digite o seguinte comando na seção de terminal do seu editor de Pycharm:

pip install xlwt OpenPyxl xlsxwriter xlrd

Agora, leia os dados da folha do Excel. Importe as bibliotecas do panda necessárias e mude o caminho do seu banco de dados. Então, executando o código a seguir, os dados podem ser recuperados do arquivo.

importar pandas como PD
importar numpy como np
dtfrm = pd.read_excel ('c:/usuários/dell/desktop/alimentossalesdata.xlsx ')
Imprimir (dtfrm)

Aqui, os dados são lidos no banco de dados do Excel de vendas de alimentos e passados ​​para a variável DataFrame.

Crie a tabela Pivot usando Pandas Python

Abaixo, criamos uma tabela de articulação simples usando o banco de dados de vendas de alimentos. Dois parâmetros são necessários para criar uma tabela dinâmica. O primeiro são os dados que passamos para o DataFrame, e o outro é um índice.

Dados de pivô em um índice

O índice é o recurso de uma tabela dinâmica que permite agrupar seus dados com base nos requisitos. Aqui, tomamos 'produto' como índice para criar uma tabela de articulação básica.

importar pandas como PD
importar numpy como np
dataframe = pd.read_excel ('c:/usuários/dell/desktop/alimentossalesdata.xlsx ')
pivot_tble = pd.Pivot_table (DataFrame, index = ["Product"]))
Imprimir (Pivot_tble)

O resultado a seguir mostra após a execução do código -fonte acima:

Definir explicitamente colunas

Para obter mais análise de seus dados, defina explicitamente os nomes de colunas com o índice. Por exemplo, queremos exibir o único preço unitário de cada produto no resultado. Para esse fim, adicione o parâmetro de valores em sua tabela pivô. O código a seguir fornece o mesmo resultado:

importar pandas como PD
importar numpy como np
dataframe = pd.read_excel ('c:/usuários/dell/desktop/alimentossalesdata.xlsx ')
pivot_tble = pd.pivot_table (DataFrame, index = 'Product', valores = 'UnitPrice')
Imprimir (Pivot_tble)

Dados de pivô com múltiplas índices

Os dados podem ser agrupados com base em mais de um recurso como um índice. Ao usar a abordagem de vários índices, você pode obter resultados mais específicos para análise de dados. Por exemplo, os produtos estão em diferentes categorias. Portanto, você pode exibir o 'Produto' e 'Categoria' Índice com 'Quantidade' e 'UnitPrice' disponível da seguinte forma:

importar pandas como PD
importar numpy como np
dataframe = pd.read_excel ('c:/usuários/dell/desktop/alimentossalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ["categoria", "produto"], valores = ["UnitPrice", "Quantity"])))
Imprimir (Pivot_tble)

Aplicando a função de agregação na tabela Pivot

Em uma tabela dinâmica, o Aggfunc pode ser aplicado para diferentes valores de recurso. A tabela resultante é o resumo dos dados dos recursos. A função agregada se aplica aos dados do seu grupo em pivot_table. Por padrão, a função agregada é NP.significar(). Porém, com base nos requisitos do usuário, diferentes funções agregadas podem se aplicar a diferentes recursos de dados.

Exemplo:

Aplicamos funções agregadas neste exemplo. O np.A função SUM () é usada para 'quantidade' de recurso e NP.Média () Função para o recurso 'UnitPrice'.

importar pandas como PD
importar numpy como np
dataframe = pd.read_excel ('c:/usuários/dell/desktop/alimentossalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ["categoria", "produto"], aggfunc = 'quantidade': np.Soma, 'UnitPrice': NP.significar)
Imprimir (Pivot_tble)

Depois de aplicar a função de agregação para diferentes recursos, você obterá a seguinte saída:

Usando o parâmetro de valor, você também pode aplicar a função agregada para um recurso específico. Se você não especificar o valor do recurso, ele agrega os recursos numéricos do seu banco de dados. Seguindo o código -fonte fornecido, você pode aplicar a função agregada para um recurso específico:

importar pandas como PD
importar numpy como np
dataframe = pd.read_excel ('c:/usuários/dell/desktop/alimentossalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['produto'], valores = ['unitprice'], aggfunc = np.significar)
Imprimir (Pivot_tble)

Diferente entre valores vs. Colunas na tabela de articulação

Os valores e colunas são o principal ponto confuso no pivot_table. É importante observar que as colunas são campos opcionais, exibindo os valores da tabela resultante horizontalmente no topo. A função de agregação aggfunc se aplica ao campo dos valores que você liste.

importar pandas como PD
importar numpy como np
dataframe = pd.read_excel ('c:/usuários/dell/desktop/alimentossalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['categoria', 'produto', 'cidade'], valores = ['unitprice', 'quantidade'],
colunas = ['região'], aggfunc = [np.soma])
Imprimir (Pivot_tble)

Manuseio de dados ausentes na tabela de articulação

Você também pode lidar com os valores ausentes na tabela de articulação usando o 'Fill_value' Parâmetro. Isso permite que você substitua os valores da NAN por algum novo valor que você fornece para preencher.

Por exemplo, removemos todos os valores nulos da tabela resultante acima, executando o seguinte código e substitui os valores da NAN por 0 em toda a tabela resultante.

importar pandas como PD
importar numpy como np
dataframe = pd.read_excel ('c:/usuários/dell/desktop/alimentossalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ['categoria', 'produto', 'cidade'], valores = ['unitprice', 'quantidade'],
colunas = ['região'], aggfunc = [np.soma], Fill_value = 0)
Imprimir (Pivot_tble)

Filtragem na tabela de articulação

Depois que o resultado for gerado, você pode aplicar o filtro usando a função de quadro de dados padrão. Vamos dar um exemplo. Filtrar aqueles produtos cujo price de unidade é inferior a 60. Ele exibe aqueles produtos cujo preço é inferior a 60.

importar pandas como PD
importar numpy como np
dataframe = pd.read_excel ('c:/usuários/dell/desktop/alimentossalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (dataframe, index = 'produto', valores = 'unitprice', aggfunc = 'sum')
low_price = pivot_tble [pivot_tble ['unitprice'] < 60]
Imprimir (Low_price)

Ao usar outro método de consulta, você pode filtrar os resultados. Por exemplo, por exemplo, filtramos a categoria de cookies com base nos seguintes recursos:

importar pandas como PD
importar numpy como np
dataframe = pd.read_excel ('c:/usuários/dell/desktop/alimentossalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (dataframe, index = ["categoria", "cidade", "região"], valores = ["unitprice", "quantidade"], aggfunc = np.soma)
pt = pivot_tble.consulta ('categoria == ["cookies"]')
Impressão (PT)

Saída:

Visualize os dados da tabela pivô

Para visualizar os dados da tabela dinâmica, siga o seguinte método:

importar pandas como PD
importar numpy como np
importar matplotlib.pyplot como plt
dataframe = pd.read_excel ('c:/usuários/dell/desktop/alimentossalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (DataFrame, index = ["categoria", "Product"], valores = ["UnitPrice"])))
pivot_tble.plot (tipo = 'bar');
plt.mostrar()

Na visualização acima, mostramos o preço unitário dos diferentes produtos, juntamente com as categorias.

Conclusão

Exploramos como você pode gerar uma tabela dinâmica do quadro de dados usando o Pandas Python. Uma tabela dinâmica permite gerar insights profundos sobre seus conjuntos de dados. Vimos como gerar uma tabela de pivô simples usando multi-índex e aplicar os filtros em tabelas dinâmicas. Além disso, também mostramos plotar dados da tabela de pivô e preencher dados ausentes.