Pandas Stack

Pandas Stack

A pilha de pandas é usada para empilhar os dados da sequência das colunas para a maneira do índice. Ele retorna vários níveis de índice exibidos em um novo DataFrame. Implementaremos como podemos usar a função Pandas Stack ().

Sintaxe

Pandas.Dataframe_object.pilha (nível = -1, Dropna = true)

Parâmetros

  1. Nível - É preciso um parâmetro inteiro que especificará o nível de empilhamento.
    1. Podemos definir níveis como nível - 0,1, etc.
  2. Dropna - Este outro parâmetro, "Dropna", é usado para soltar linhas no quadro de dados empilhados com valores de nan.

Cenário 1: coluna de nível único

Crie um DataFrame com 3 colunas e 5 linhas. Aqui, os nomes das colunas são - ["Tipo de exame", "marcas", "resultado"].

Agora, vamos empilhar o DataFrame:

Importar pandas
Resultados = pandas.Dataframe ([["interno", 98, "pass"],
["Interno", 45, "Fail"],
["Externo", 89, "Pass"],
["Externo", 67, "passa"],
["Externo", 18, "Fail"]],
colunas = ["tipo de exame", "marcas", "resultado"],
índice = ['ram', 'sravan', 'govind', 'anup', 'jab']
)
Imprimir (resultados, "\ n")
# Aplique pilha () na coluna de nível único
impressão (resultados.pilha())

Saída

Resultado do tipo de exame Resultado
Ram interno 98 Pass
Sravan interno 45 falhou
Govind Externo 89 Pass
ANUP External 67 Pass
Falha externa 18 de jab
Tipo de exame de RAM interno
Marcas 98
Resultado passante
Tipo de exame Sravan interno
Marcas 45
Resultado falha
Tipo de exame Govind externo
Marcas 89
Resultado passante
Tipo de exame anup externo
Marcas 67
Resultado passante
Tipo de exame jab externo
Marcas 18
Resultado falha
dtype: objeto

Explicação

Agora, o quadro de dados empilhados é exibido. Vamos discutir isso em detalhes para uma linha.

RAM - o tipo de exame é 'interno', RAM - Marks é 98 e RAM - o resultado é 'falha'. Da mesma forma, para todas as linhas restantes, você pode ver que os valores são empilhados.

Cenário 2: coluna de vários níveis com nível - 0

Uma das seguintes maneiras em Python para criar um MultiIndex é usando o MultiIndex.Método From_Tuples (). Levará nomes de colunas na lista de tuplas como um parâmetro. Finalmente, passaremos isso para o parâmetro "colunas" no quadro de dados de pandas.

Sintaxe

MultiIndex.de_tuples ([('colunas,…),…]

Exemplo 1

Crie um DataFrame com linhas que possuem multiindex. Empilhe o quadro de dados com o nível 0.

Importar pandas
Resultados = pandas.Dataframe ([["interno", 98, "pass"],
["Interno", 45, "Fail"],
["Externo", 89, "Pass"],
["Externo", 89, "Pass"],
["Externo", 45, "Fail"]],
índice = ['ram', 'sravan', 'govind', 'anup', 'jab'],
colunas = pandas.MultiIndex.From_tuples ([('Exames', 'Exame Type'), ('Marcas garantidas', 'Total'), ('Status', 'resultado')]]
))
Imprimir (resultados, "\ n")
# Aplicar pilha () com o nível 0 na coluna de vários níveis
impressão (resultados.pilha (nível = 0))

Saída

Marcas de exames Status garantidos
Tipo de exame Resultado total
Ram interno 98 Pass
Sravan interno 45 falhou
Govind Externo 89 Pass
ANUP Externo 89 Pass
Falha externa de jab 45
Tipo de exame TOTAL TOTAL
Exames de RAM Interna Nan Nan
Marcas garantidas Nan Nan 98.0
Status nan passa nan
Sravan Exames internos NAN NAN
Marcas garantidas Nan Nan 45.0
Status nan falha nan
Govind Exames Nan externo NAN
Marcas garantidas Nan Nan 89.0
Status nan passa nan
Anup Exams Externo Nan Nan
Marcas garantidas Nan Nan 89.0
Status nan passa nan
Exames de jab nan externo nan
Marcas garantidas Nan Nan 45.0
Status nan falha nan

Explicação

Você pode ver os vários índices. Para a linha:

  1. RAM - para índice 'exames' e 'tipo de exame' - o valor é .interno.
  2. RAM - para índice 'exames' e 'resultado' - o valor é NAN (não um número).
  3. RAM - para índice 'Exames' e 'Total' - o valor é NAN.
  4. RAM - para índice 'Marcas garantidas' e 'Tipo de exame' - o valor é NAN.
  5. RAM - para índice 'Marcas garantidas' e 'resultado' - o valor é NAN.
  6. RAM - para índice 'Marcas garantidas' e 'Total' - o valor é 98.0.
  7. RAM - para índice 'status' e 'tipo de exame' - o valor é nan.
  8. RAM - para índice 'status' e 'resultado' - o valor é "passe".
  9. RAM - para índice 'status' e 'total' - o valor é NAN

Da mesma forma, para todas as linhas empilhando no formato anterior. Para valores perdidos, a NAN é substituída.

Exemplo 2

Crie um DataFrame com linhas que possuem multiindex. Empilhe o quadro de dados com o nível 2.

Importar pandas
Resultados = pandas.Dataframe ([["interno", 98, "pass"],
["Interno", 45, "Fail"],
["Externo", 89, "Pass"],
["Externo", 67, "passa"],
["Externo", 18, "Fail"]],
índice = ['ram', 'sravan', 'govind', 'anup', 'jab'],
colunas = pandas.MultiIndex.From_tuples ([('Exames', 'Exame Type'), ('Marcas garantidas', 'Total'), ('Status', 'resultado')]]
))
# Aplique pilha () com nível 1 na coluna de vários níveis
impressão (resultados.pilha (nível = 1))

Saída

Marcas de exames Status garantidos
Tipo de RAM Nan interno nan nan
Resultado Nan Nan Pass
Nan Nan 98.0 nan
SRAVAN TIPO DE EXAME NAN NAN NAN NAN
Resultado nan nan falha
Nan Nan 45.0 nan
Govind Tipo de exame Nan externo NAN
Resultado Nan Nan Pass
Nan Total 89.0 nan
ANUP TIPO DE EXAME NAN NAN NAN NAN
Resultado Nan Nan Pass
Nan 67 total.0 nan
JAB TIPO DE EXAME NAN NAN NAN NAN
Resultado nan nan falha
Nan total 18.0 nan

Conclusão

Pandas "Stack" é uma técnica extravagante para empilhar as colunas de nível em linhas (índice). Nas áreas em que os trabalhadores precisam trabalhar nas linhas em vez das colunas ou podem querer ter os dados da maneira que a fila, mas eles fizeram isso em colunas, esse método é para eles. Ele economizará seu tempo precioso simplesmente usando o método de pandas pilha. Fizemos várias maneiras pelas quais a pilha de pandas funciona de acordo com a situação. Cada situação tem sua maneira de resolver o problema para fornecer os resultados desejados no quadro de dados.