Ciência de Dados

Como criar uma tabela dinâmica no Pandas Python

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

Antes de usar a tabela dinâmica do panda, certifique-se de entender seus dados e questões que você está tentando resolver por meio da tabela dinâmica. Usando este método, você pode produzir resultados poderosos. Iremos elaborar neste artigo, como criar uma tabela dinâmica no pandas python.

Ler dados do arquivo do Excel

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

pip install xlwt openpyxl xlsxwriter xlrd

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

importar pandas como pd
importar numpy como np
dtfrm = pd.read_excel ('C: / Usuários / DELL / Desktop / foodsalesdata.xlsx ')
imprimir (dtfrm)

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

Crie uma tabela dinâmica usando Pandas Python

Abaixo, criamos uma tabela dinâmica 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 dinâmicos 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 o índice para criar uma tabela dinâmica básica.

importar pandas como pd
importar numpy como np
dataframe = pd.read_excel ('C: / Usuários / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ["Product"])
imprimir (tabela dinâmica)

O seguinte resultado é mostrado após a execução do código-fonte acima:

Definir colunas explicitamente

Para obter mais análises de seus dados, defina explicitamente os nomes das colunas com o índice. Por exemplo, queremos exibir o único PreçoUnitário de cada produto no resultado. Para isso, adicione o parâmetro de valores em sua tabela dinâmica. 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 / foodsalesdata.xlsx ')
pivot_tble = pd.tabela dinâmica (dataframe, índice = 'Produto', valores = 'PreçoUnitário')
imprimir (tabela dinâmica)

Dados dinâmicos com índice múltiplo

Os dados podem ser agrupados com base em mais de um recurso como um índice. Usando a abordagem de múltiplos índices, você pode obter resultados mais específicos para análise de dados. Por exemplo, os produtos vêm em diferentes categorias. Portanto, você pode exibir o índice de 'Produto' e 'Categoria' com 'Quantidade' e 'Preço Unitário' disponíveis de cada produto da seguinte forma:

importar pandas como pd
importar numpy como np
dataframe = pd.read_excel ('C: / Usuários / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.tabela dinâmica (dataframe, índice = ["Categoria", "Produto"], valores = ["PreçoUnitário", "Quantidade"])
imprimir (tabela dinâmica)

Aplicação da função de agregação na tabela dinâmica

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

Exemplo:

Aplicamos funções de agregação neste exemplo. O np.A função sum () é usada para o recurso 'Quantidade' e np.função mean () para o recurso 'PreçoUnitário'.

importar pandas como pd
importar numpy como np
dataframe = pd.read_excel ('C: / Usuários / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.pivot_table (dataframe, index = ["Categoria", "Produto"], aggfunc = 'Quantidade': np.soma, 'PreçoUnitário': np.mau)
imprimir (tabela dinâmica)

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 de agregação para um recurso específico. Se você não especificar o valor do recurso, ele agregará os recursos numéricos do seu banco de dados. Seguindo o código-fonte fornecido, você pode aplicar a função de agregação para um recurso específico:

importar pandas como pd
importar numpy como np
dataframe = pd.read_excel ('C: / Usuários / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.tabela dinâmica (dataframe, índice = ['Produto'], valores = ['PreçoUnitário'], aggfunc = np.mau)
imprimir (tabela dinâmica)

Diferente entre valores vs. Colunas na Tabela Dinâmica

Os valores e colunas são o principal ponto de confusão na tabela dinâmica. É importante notar 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 de valores que você lista.

importar pandas como pd
importar numpy como np
dataframe = pd.read_excel ('C: / Usuários / DELL / Desktop / foodsalesdata.xlsx ')
pivot_tble = pd.tabela dinâmica (dataframe, índice = ['Categoria', 'Produto', 'Cidade'], valores = ['PreçoUnitário', 'Quantidade'],
colunas = ['Região'], aggfunc = [np.soma])
imprimir (tabela dinâmica)

Tratamento de dados ausentes na tabela dinâmica

Você também pode lidar com os valores ausentes na tabela dinâmica usando o 'fill_value' Parâmetro. Isso permite que você substitua os valores 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 substituindo os valores 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 / foodsalesdata.xlsx ')
pivot_tble = pd.tabela dinâmica (dataframe, índice = ['Categoria', 'Produto', 'Cidade'], valores = ['PreçoUnitário', 'Quantidade'],
colunas = ['Região'], aggfunc = [np.soma], fill_value = 0)
imprimir (tabela dinâmica)

Filtrando em Tabela Dinâmica

Assim que o resultado for gerado, você pode aplicar o filtro usando a função de dataframe padrão. Vamos dar um exemplo. Filtre os produtos cujo PreçoUnitário seja inferior a 60. Ele exibe os produtos cujo preço é inferior a 60.

importar pandas como pd
importar numpy como np
dataframe = pd.read_excel ('C: / Usuários / DELL / Desktop / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.tabela dinâmica (dataframe, índice = 'Produto', valores = 'PreçoUnitário', aggfunc = 'soma')
low_price = pivot_tble [pivot_tble ['UnitPrice'] < 60]
imprimir (low_price)

Usando 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 / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.pivot_table (dataframe, index = ["Category", "City", "Region"], values ​​= ["UnitPrice", "Quantity"], aggfunc = np.soma)
pt = pivot_tble.consulta ('Categoria == ["Cookies"]')
imprimir (pt)

Resultado:

Visualize os dados da tabela dinâmica

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 / foodsalesdata.xlsx ', index_col = 0)
pivot_tble = pd.tabela dinâmica (dataframe, índice = ["Categoria", "Produto"], valores = ["PreçoUnitário"])
pivot_tble.plot (tipo = 'bar');
plt.mostrar()

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

Conclusão

Exploramos como você pode gerar uma tabela dinâmica a partir do dataframe usando Pandas python. Uma tabela dinâmica permite gerar insights profundos sobre seus conjuntos de dados. Vimos como gerar uma tabela dinâmica simples usando vários índices e aplicar os filtros nas tabelas dinâmicas. Além disso, também mostramos traçar os dados da tabela dinâmica e preencher os dados ausentes.

Top jogos do Oculus App Lab
Se você é proprietário de um fone de ouvido Oculus, deve estar informado sobre o carregamento lateral. Sideload é o processo de instalação de conteúdo...
Os 10 melhores jogos para jogar no Ubuntu
A plataforma Windows tem sido uma das plataformas dominantes para jogos devido à grande porcentagem de jogos que estão sendo desenvolvidos hoje para o...
5 melhores jogos de arcade para Linux
Hoje em dia, os computadores são máquinas sérias usadas para jogos. Se você não pode obter a nova pontuação máxima, você saberá o que quero dizer. Nes...