Pandas appiattito multiindex

Pandas appiattito multiindex
Multiindex è un insieme di metodi di indicizzazione sofisticati per i gesti di dati. Permette agli indici di avere numerosi livelli. Può anche essere definito un indice multilivello o un indice gerarchico. L'oggetto multiindex fornisce una rappresentazione gerarchica dell'oggetto indice standard, che spesso contiene le etichette degli assi negli oggetti dei Pandas. Il multiindex può essere confrontato con una matrice di tuple, ognuna delle quali è distinta. Non hai quasi mai bisogno di una colonna con un indice gerarchico nei panda. Il più delle volte, si desidera utilizzare solo un nome di colonna singola per identificare una colonna. In questo tutorial, appiattiremo il frame dati multiindex usando alcune funzioni di panda.

Come il multiindex può essere appiattito nei panda

Le funzioni come reset_index e to_records () possono essere utilizzate per appiattire il multiindex. Ti insegneremo come appiattire il multiindex nei seguenti esempi.

Esempio 1: appiattire la funzione multiindex di tutti i livelli usando reset_index ()

Utilizzando la funzione reset_index (), in questo esempio appiattiremo tutti i livelli del frame dati. L'elenco delle tuple viene convertito in multiindex usando il metodo from_tuples (). Possiamo creare un multiindex in vari modi, e questo è il più comune.

Innanzitutto, creiamo il nostro multiindex "Mi" passando le più tuple - ("inglese", "1201", 800), ("matematica", "1202", 900), ("bio", "1203", 1050) , ("Fisica", "1204", 1050) e ("chimica", "1205", 1100) all'interno del PD.Multiindex.Funzione da_tuples (). I nomi delle colonne delle tuple sono specificati come "soggetto", "soggetto_id" e "tassa". Dopo aver creato il "MI" multiindex, creiamo anche un frame dati Pandas utilizzando il PD.Funzione dataframe (). Passiamo un dizionario con i nomi degli studenti come chiavi e segni degli studenti come valori all'interno del nostro telaio di dati "DF".

Abbiamo 3 colonne - "Mike", "Jack" e "Eva" - con i valori dei dati (49, 43, 39, 41, 37), (36, 35, 41, 36, 42) e (46, 44, 39, 46, 48), rispettivamente. Potresti notare che specificando il "Mi" multiindex come parametro "indice" all'interno del PD.Funzione DataFrame (), le colonne di tuple fungono da indici a più livelli. Ora, utilizziamo la funzione reset_index () per modificare i multi indici in colonne di dati di dati. L'indice a più livelli può essere aggiunto come nuova colonna di dati di dati utilizzando reset_index (). L'argomento Drop può essere utilizzato nella funzione reset_index () se non vogliamo modificare l'indice come colonna. Invece di fare una nuova copia, possiamo reimpostare l'indice del frame dati corrente utilizzando l'argomento in atto.

Si può notare che tutti e tre i livelli di indici vengono cambiati nella colonna del nostro telaio di dati "DF". L'indice viene anche ripristinato all'indice intero predefinito di Panda.

Esempio 2: appiattire i livelli multiindex specifici usando la funzione reset_index ()

L'approccio per appiattire tutti i livelli di multiindex in colonne del telaio di dati è stato dimostrato nell'esempio precedente. Ora impareremo come appiattire i livelli specifici dell'indice in colonne del frame dati utilizzando la funzione reset_index (). Un frame di dati può essere creato in vari modi con Pandas Multiindex. Abbiamo già visto quello che utilizza il metodo da Tuples. Creiamo un multiindex usando la funzione da_array ().

Passiamo tre array e specifichiamo i loro nomi come "L1" con i valori dell'indice numerico (11, 22, 33, 44, 55). Specifichiamo "L2" con valori di stringa ("i", "ii", "iii", "iv", "v") e "l3" con valori di indice intero (1, 2, 3, 4, 5). Ora usiamo questo "Mi" multiindex all'interno del PD.Funzione DataFrame () per creare un dataframe multiindex.

Per creare il nostro Frame Data, creiamo prima un "dati" di Python Dizionario con coppia di valori chiave. Quindi, i "dati" del dizionario vengono passati all'interno del PD.DataFrame () funzione come input. Il parametro "colonne" è specificato come ["dipartimento", "spesa"] per modificare le chiavi e i valori del dizionario in etichette e i dati delle colonne del Frame dati Panda. L'indice dei parametri è specificato come "MI" per impostare i livelli multiindex nel frame dati "DF". Ora, utilizziamo la funzione reset_index () per appiattire uno o più livelli del multiindex in colonne.

Sintassi per appiattire il livello specifico usando reset_index ():

DataFrame.reset_index (inplace = true, level = ['nome di livello'])

Il nome del livello dell'indice che vogliamo appiattire è specificato nel parametro "Livello".

Supponiamo che dobbiamo appiattire l'indice "L1" nella colonna del frame dati.

Si può notare che specificando il parametro "Livello" come "L1" all'interno della funzione reset_index (), l'indice "L1" viene appiattito correttamente a una colonna. Utilizzando l'elenco dei livelli dell'indice nel parametro "Livello", possiamo appiattire i più indici alle colonne di dati di dati. Utilizziamo un elenco di indici "L2" e "L3" nel parametro "Livello" all'interno della funzione reset_index ().

Come si può vedere, specificando il parametro "livello" come elenco dei livelli di indice, i.e. ['L2', 'L3'], il livello degli indici “L2” e “L3” sono ora convertiti anche in colonne.

Esempio 3: appiattire i livelli multiindex usando la funzione To_records ()

In questo esempio, appiattiremo i livelli dell'indice del Frame dati utilizzando la funzione To_Records (). Per trasformare le tuple in multiindex, useremo ancora una volta la funzione form_tuples (). Importiamo prima i moduli Pandas, quindi creiamo il multiindex e il frame dati.

Il "Mi" multiindex viene creato usando le tuple multiple, i.e. ('1001', 'C11', 80), ('1002', 'C12', 75), ('1003', 'C13', 90), ('1004', 'C14', 95) e ( '1005', 'C15', 70). I nomi per i livelli di indici nel multiindex sono specificati come "id", "codice" e "difficoltà". Ora, creiamo il nostro frame dati in cui possiamo usare questo multiindex.

Il nostro frame dati viene creato utilizzando il PD.Funzione dataframe (). Il nostro telaio di dati è composto da tre colonne. La colonna "Soggetto" memorizza i nomi dei soggetti ("Bio", "Chemistry", "C ++", "Stats", "Python"). La colonna "Field" stringe i valori della stringa che rappresentano il campo di ciascuna materia ("Science", "Science", "Programming", "Maths", "Programming"). Mentre la colonna "Passing_marks" memorizza i segni di passaggio meno di ciascun soggetto (45, 45, 50, 40, 50). C'è un indice a tre livelli nel nostro telaio di dati come puoi vedere sul lato sinistro del nostro telaio di dati "DF".

Poiché il nostro frame dati con multiindex viene ora creato, utilizziamo la funzione To_record () per appiattire i multi indici nelle colonne del frame dati. Un frame di dati può essere trasformato in un array numpy utilizzando la funzione to_records (). Se richiesto, l'indice viene messo come primo campo dell'array record. Se impostato, includere l'indice nell'array di record risultante utilizzando l'etichetta dell'indice o l'indice memorizzato nell'etichetta di campo. Tuttavia, in questo esempio, utilizzeremo semplicemente la funzione TO_RECORD () per modificare gli indici multilivello del frame dati multiindex in semplici colonne di dati di dati.

Come si può vedere nell'output, tutti i livelli di indici vengono convertiti correttamente nella colonna DataFrame. A differenza della funzione reset_index (), non possiamo appiattire un indice specifico alla colonna. Quando viene applicato a DataFrame, appiattisce tutti i multi indici alle colonne di dati di dati.

Conclusione

In questo tutorial, abbiamo visto che il multiindex è un insieme di sofisticati metodi di indicizzazione per i gesti di dati. Permette agli indici di avere numerosi livelli. Abbiamo imparato come creare un multiindex con tuple e array usando le funzioni da from_tuples () e from_array (), rispettivamente. Abbiamo implementato gli esempi per insegnarti come appiattire il multiindex di tutti i livelli e livelli specifici usando la funzione reset_index () e to_records ().