Prima di utilizzare la tabella pivot di panda, assicurati di aver compreso i tuoi dati e le domande che stai cercando di risolvere attraverso la tabella pivot. Usando questo metodo, puoi produrre risultati potenti. Elaboreremo in questo articolo come creare una tabella pivot in pandas python.
Leggi dati da file Excel
Abbiamo scaricato un database excel delle vendite alimentari food. Prima di iniziare l'implementazione, è necessario installare alcuni pacchetti necessari per leggere e scrivere i file del database excel. Digita il seguente comando nella sezione terminale del tuo editor pycharm:
pip install xlwt openpyxl xlsxwriter xlrd
Ora leggi i dati dal foglio excel. Importa le librerie del panda richieste e cambia il percorso del tuo database. Quindi eseguendo il codice seguente, i dati possono essere recuperati dal file.
importa panda come pdimporta numpy come np
dtfrm = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
stampa (dtfrm)
Qui, i dati vengono letti dal database excel delle vendite alimentari e passati alla variabile dataframe.
Crea una tabella pivot usando Pandas Python
Di seguito abbiamo creato una semplice tabella pivot utilizzando il database delle vendite alimentari food. Sono necessari due parametri per creare una tabella pivot. Il primo sono i dati che abbiamo passato nel dataframe e l'altro è un indice.
Dati pivot su un indice
L'indice è la caratteristica di una tabella pivot che consente di raggruppare i dati in base ai requisiti. Qui, abbiamo preso "Prodotto" come indice per creare una tabella pivot di base.
importa panda come pdimporta numpy come np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=["Prodotto"])
print(pivot_tble)
Il seguente risultato viene mostrato dopo aver eseguito il codice sorgente sopra:
Definire esplicitamente le colonne
Per ulteriori analisi dei tuoi dati, definisci esplicitamente i nomi delle colonne con l'indice. Ad esempio, vogliamo visualizzare l'unico Prezzo Unitario di ciascun prodotto nel risultato. A questo scopo, aggiungi il parametro dei valori nella tabella pivot. Il seguente codice ti dà lo stesso risultato:
importa panda come pdimporta numpy come np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe, index='Prodotto', valori='UnitPrice')
print(pivot_tble)
Dati pivot con multi-indice
I dati possono essere raggruppati in base a più di una caratteristica come indice. Utilizzando l'approccio multi-indice, è possibile ottenere risultati più specifici per l'analisi dei dati. Ad esempio, i prodotti rientrano in diverse categorie. Quindi, puoi visualizzare l'indice "Prodotto" e "Categoria" con "Quantità" e "Prezzo unitario" disponibili di ciascun prodotto come segue:
importa panda come pdimporta numpy come np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=["Category","Prodotto"],values=["UnitPrice", "Quantity"])
print(pivot_tble)
Applicazione della funzione di aggregazione nella tabella pivot
In una tabella pivot, aggfunc può essere applicato per diversi valori di funzionalità feature. La tabella risultante è il riepilogo dei dati delle caratteristiche feature. La funzione di aggregazione si applica ai dati del tuo gruppo in pivot_table. Per impostazione predefinita, la funzione aggregata è np.significare(). Tuttavia, in base ai requisiti dell'utente, possono essere applicate diverse funzioni aggregate per diverse funzionalità dei dati.
Esempio:
Abbiamo applicato funzioni aggregate in questo esempio. il np.La funzione sum() viene utilizzata per la funzione 'Quantità' e np.funzione mean() per la funzione 'UnitPrice'.
importa panda come pdimporta numpy come np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=["Category","Product"], aggfunc='Quantità': np.sum,'UnitPrice': np.significare)
print(pivot_tble)
Dopo aver applicato la funzione di aggregazione per diverse funzionalità, otterrai il seguente output:
Usando il parametro value, puoi anche applicare la funzione aggregata per una caratteristica specifica. Se non specifichi il valore della caratteristica, aggrega le caratteristiche numeriche del tuo database. Seguendo il codice sorgente fornito, puoi applicare la funzione di aggregazione per una funzione specifica:
importa panda come pdimporta numpy come np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe, index=['Product'], values=['UnitPrice'], aggfunc=np.significare)
print(pivot_tble)
Diverso tra valori vs. Colonne nella tabella pivot
I valori e le colonne sono il principale punto di confusione in pivot_table. È importante notare che le colonne sono campi facoltativi, che mostrano i valori della tabella risultante orizzontalmente in alto. La funzione di aggregazione aggfunc si applica al campo dei valori che elenchi.
importa panda come pdimporta numpy come np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=['Category','Product', 'City'],values=['UnitPrice', 'Quantity'],
colonne=['Regione'],aggfunc=[np.somma])
print(pivot_tble)
Gestione dei dati mancanti nella tabella pivot
Puoi anche gestire i valori mancanti nella tabella Pivot usando il 'valore_riempimento' Parametro. Ciò ti consente di sostituire i valori NaN con un nuovo valore che fornisci per riempire.
Ad esempio, abbiamo rimosso tutti i valori null dalla tabella risultante sopra eseguendo il codice seguente e sostituisce i valori NaN con 0 nell'intera tabella risultante.
importa panda come pdimporta numpy come np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx')
pivot_tble=pd.pivot_table(dataframe,index=['Category','Product', 'City'],values=['UnitPrice', 'Quantity'],
colonne=['Regione'],aggfunc=[np.somma], fill_value=0)
print(pivot_tble)
Filtraggio nella tabella pivot
Una volta generato il risultato, puoi applicare il filtro utilizzando la funzione dataframe standard. Facciamo un esempio. Filtra quei prodotti il cui prezzo unitario è inferiore a 60. Visualizza quei prodotti il cui prezzo è inferiore a 60.
importa panda come pdimporta numpy come np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx', index_col=0)
pivot_tble=pd.pivot_table(dataframe, index='Product', values='UnitPrice', aggfunc='sum')
low_price=pivot_tble[pivot_tble['UnitPrice'] < 60]
stampa(prezzo_basso)
Utilizzando un altro metodo di query, puoi filtrare i risultati. Ad esempio, ad esempio, abbiamo filtrato la categoria dei cookie in base alle seguenti caratteristiche:
importa panda come pdimporta numpy come np
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx', index_col=0)
pivot_tble=pd.pivot_table(dataframe,index=["Category","Città","Regione"],values=["PrezzoUnitario", "Quantità"],aggfunc=np.somma)
pt=pivot_tble.query('Categoria == ["Cookie"]')
stampa(pt)
Produzione:
Visualizza i dati della tabella pivot
Per visualizzare i dati della tabella pivot, seguire il metodo seguente:
importa panda come pdimporta numpy come np
import matplotlib.pyplot come plt
dataframe = pd.read_excel('C:/Users/DELL/Desktop/foodsalesdata.xlsx', index_col=0)
pivot_tble=pd.pivot_table(dataframe,index=["Category","Product"],values=["UnitPrice"])
pivot_tble.plot(tipo='bar');
per favore.mostrare()
Nella visualizzazione sopra, abbiamo mostrato il prezzo unitario dei diversi prodotti insieme alle categorie.
Conclusione
Abbiamo esplorato come è possibile generare una tabella pivot dal dataframe utilizzando Pandas python. Una tabella pivot ti consente di generare informazioni approfondite sui tuoi set di dati. Abbiamo visto come generare una semplice tabella pivot utilizzando il multi-indice e applicare i filtri sulle tabelle pivot. Inoltre, abbiamo anche dimostrato di tracciare i dati della tabella pivot e riempire i dati mancanti.