Pandas Stack

Pandas Stack

Lo stack Panda viene utilizzato per impilare i dati dalla sequenza delle colonne al modo indice. Restituisce più livelli di indice che visualizzano in un nuovo frame dati. Implementeremo come possiamo usare la funzione Pandas stack ().

Sintassi

panda.DataFrame_Object.stack (livello = -1, dropna = true)

Parametri

  1. Livello - Richiede un parametro intero che specificherà il livello di stacking.
    1. Possiamo impostare livelli come il livello - 0,1, ecc.
  2. Dropna - Questo altro parametro, "Dropna", viene utilizzato per eliminare le righe nel telaio di dati con valori NAN.

Scenario 1: colonna a livello singolo

Crea un frame dati con 3 colonne e 5 righe. Qui, i nomi delle colonne sono - ["Tipo di esame", "marchi", "risultato"].

Ora impileremo il frame dati:

Panda di importazione
Risultati = panda.DataFrame ([["Internal", 98, "Pass"],
["Internal", 45, "Fail"],
["Esterno", 89, "pass"],
["Esterno", 67, "pass"],
["Esterno", 18, "fail"],
colonne = ["tipo di esame", "segni", "risultato"],
Index = ['Ram', 'Sravan', 'Govind', 'Anup', 'Jab'
)
stampa (risultati ", \ n")
# Applica stack () sulla colonna a livello singolo
Stampa (risultati.pila())

Produzione

Il risultato del tipo di esame segna il risultato
RAM Internal 98 Pass
Sravan interno 45 fallimento
GOVIND ESTERNO 89 PASS
Anup External 67 Pass
Jab esterno 18 fallimento
Tipo di esame RAM interno
Segna 98
Pass di risultato
Tipo di esame Sravan interno
Segna 45
Fallimento del risultato
Tipo di esame Govind esterno
Marks 89
Pass di risultato
Tipo di esame anup esterno
Segna 67
Pass di risultato
Tipo di esame jab esterno
Marchi 18
Fallimento del risultato
dType: oggetto

Spiegazione

Ora, viene visualizzato il telaio di dati impilato. Discutiamo in dettaglio questo per una riga.

RAM - Il tipo di esame è "interno", RAM - Marks è 98 e RAM - il risultato è "Fail". Allo stesso modo, per tutte le righe rimanenti, è possibile vedere i valori impilati.

Scenario 2: colonna multilivello con livello - 0

Uno dei seguenti modi in Python per creare un multiindex è usando il multiindex.Metodo da_tuples (). Prenderà i nomi delle colonne nell'elenco delle tuple come parametro. Infine, lo passeremo al parametro "colonne" nel frame dati Pandas.

Sintassi

Multiindex.da_tuples ([('colonne, ...), ...]

Esempio 1

Crea un frame dati con righe con multiindex. Imposta il telaio di dati con Livello-0.

Panda di importazione
Risultati = panda.DataFrame ([["Internal", 98, "Pass"],
["Internal", 45, "Fail"],
["Esterno", 89, "pass"],
["Esterno", 89, "pass"],
["Esterno", 45, "fail"],
Index = ['Ram', 'Sravan', 'Govind', 'Anup', 'Jab',
colonne = panda.Multiindex.da_tuples ([("esami", "tipo di esame"), ("marchi protetti", "totale"), ("stato", "risultato")]
)
stampa (risultati ", \ n")
# Applica Stack () con Livello 0 sulla colonna a più livelli
Stampa (risultati.stack (livello = 0))

Produzione

Marchi di esame Stato garantito
Risultato totale del tipo di esame
RAM Internal 98 Pass
Sravan interno 45 fallimento
GOVIND ESTERNO 89 PASS
Anup esterno 89 pass
Jab esterno 45 fallimento
TIPO DEL TIPO DI ESAME totale
Esami RAM NAN NAN
Marchi assicurati Nan Nan 98.0
Status nan pass nan
Esami sravan nan nan
Marchi assicurati Nan Nan 45.0
Status nan fail nan
Esami Govind Nan nan esterni
Marchi assicurati Nan Nan 89.0
Status nan pass nan
Esame anup esterno nan nan
Marchi assicurati Nan Nan 89.0
Status nan pass nan
Esami jab esterni nan nan
Marchi assicurati Nan Nan 45.0
Status nan fail nan

Spiegazione

Puoi vedere i multi indici. Per la riga:

  1. RAM - per "esami" e "tipo di esame" - il valore è .Interno.
  2. RAM - per indice 'esami' e 'risultato' - Il valore è nan (non un numero).
  3. RAM - per "esami" e "totale" - il valore è nan.
  4. RAM - Per indice "segni protetti" e "tipo di esame" - Il valore è nan.
  5. RAM - per indice 'marchi protetti' e 'risultato' - il valore è nan.
  6. RAM - per indice 'marchi protetti' e 'totale' - il valore è 98.0.
  7. RAM - per indice "stato" e "tipo di esame" - Il valore è nan.
  8. RAM - per indice "stato" e "risultato" - il valore è "pass".
  9. RAM - per indice "stato" e "totale" - il valore è nan

Allo stesso modo, per tutte le righe che lo stack sono avvenuti nel formato precedente. Per i valori mancati, NAN viene sostituito.

Esempio 2

Crea un frame dati con righe con multiindex. Immergi il telaio di dati con il livello 2.

Panda di importazione
Risultati = panda.DataFrame ([["Internal", 98, "Pass"],
["Internal", 45, "Fail"],
["Esterno", 89, "pass"],
["Esterno", 67, "pass"],
["Esterno", 18, "fail"],
Index = ['Ram', 'Sravan', 'Govind', 'Anup', 'Jab',
colonne = panda.Multiindex.da_tuples ([("esami", "tipo di esame"), ("marchi protetti", "totale"), ("stato", "risultato")]
)
# Applica Stack () con livello 1 sulla colonna a più livelli
Stampa (risultati.stack (livello = 1))

Produzione

Marchi di esame Stato garantito
Tipo di esame RAM NAN NAN NAN
Risultato Nan Nan Pass
NAN totale 98.0 nan
Tipo di esame Sravan NAN NAN NAN
Risultato nan nan fallimento
Totale NAN 45.0 nan
Tipo di esame Govind Nan nan esterno
Risultato Nan Nan Pass
Totale NAN 89.0 nan
Tipo di esame anup nan nan esterno
Risultato Nan Nan Pass
NAN totale 67.0 nan
Tipo di esame jab nan nan esterno
Risultato nan nan fallimento
NAN totale 18.0 nan

Conclusione

Pandas "Stack" è una tecnica stravagante per impilare le colonne di livello in righe (indice). Nelle aree in cui i lavoratori devono lavorare sulle righe anziché sulle colonne o potrebbero voler avere i dati nel modo di riga, ma li hanno fatti in colonne, questo metodo è per loro. Risparmierà il loro tempo prezioso semplicemente usando il metodo di Pandas Stack. Abbiamo fatto vari modi in cui la pila di panda funziona in base alla situazione. Ogni situazione ha il suo modo di risolvere il problema per dare i risultati desiderati nel frame dati.