pandas DataFrame
Quando si parla di data science, non è esagerato affermare che può cambiare il modo di lavorare di un'azienda se sfruttata in tutto il suo potenziale con pandas DataFrame. Per ottenere questo risultato, servono strutture di dati adeguate. In questo modo, si avrà la massima efficienza nella manipolazione e nell'analisi dei dati.
Una delle strutture di dati più utili a tale scopo è pandas DataFrame.
pandas è una libreria open-source scritta per il linguaggio di programmazione Python che mette a disposizione strutture di dati e strumenti di analisi dei dati veloci e adattabili. Questo strumento facile da usare è stato realizzato originariamente da Wes McKinney. È basato sul pacchetto NumPy e la sua struttura di dati principale è chiamata DataFrame.
Se stai pensando, "Aspetta un momento, che cos'è pandas DataFrame?", non ti preoccupare, entreremo nel dettaglio fra poco. Per ora, tutto ciò che devi sapere è che pandas DataFrame è uno strumento facile da usare e particolarmente indicato per tutti i settori che fanno grande affidamento sui dati, come calcolo scientifico, machine learning e, per l'appunto, data science.
Analizzeremo i dettagli di pandas più avanti. Fra i vari argomenti, spiegheremo come creare un pandas DataFrame e come cominciare a lavorare con pandas DataFrame, oltre a illustrare i vantaggi dell'utilizzo di pandas DataFrame.
pandas offre due tipi di strutture di dati:
- pandas DataFrame (bidimensionale)
- pandas Series (unidimensionale)
pandas usa dati come file CSV o TSV oppure un database SQL (Structured Query Language) e li trasforma in un oggetto Python con righe e colonne, detto DataFrame. Questi oggetti sono molto simili alle tabelle presenti nei software statistici (ad es. Excel o SPSS). Analogamente a Excel, pandas DataFrame consente di memorizzare e manipolare dati tabellari in righe di osservazione e colonne di variabili, oltre a estrapolare informazioni preziose dal set di dati.
Si può eseguire l'interfaccia pandas API su Apache Spark 3.2. Ciò permette di distribuire uniformemente i carichi di lavoro di pandas, assicurando che tutto avvenga nel modo corretto.
Dopo aver visto i due tipi di strutture di dati offerti da pandas, facciamo un passo indietro per capire che cosa è effettivamente pandas DataFrame. Daremo una definizione veloce, seguita da un pratico elenco dei tipi di input che il DataFrame può accettare.
Che cos'è pandas DataFrame?
pandas DataFrame è un modo per rappresentare e lavorare con dati tabellari. Può essere considerato una tabella che organizza i dati in righe e colonne, secondo una struttura bidimensionale. Un DataFrame può essere creato da zero oppure si possono usare altre strutture di dati, come gli array NumPy.
Utilizzando pandas DataFrame, è possibile importare dati in vari formati e da diverse sorgenti. Ad esempio, si possono importare array NumPy, oltre a contenuti di pandas.
Le principali tipologie di input accettati da un DataFrame sono le seguenti:
- Dizionario di ndarray 1D, liste, dizionari o serie
- numpy.ndarray 2-D
- ndarray strutturato o di record
- Una Series
- Un altro DataFrame
Domande frequenti su come lavorare con pandas DataFrame
Conoscere le offre offerte da pandas e capire che cos'è esattamente un pandas DataFrame non significa sapere tutto su pandas DataFrame. Pertanto, in questo paragrafo risponderemo ad alcune delle domande più frequenti su come lavorare con pandas DataFrame.
Se hai altre domande oltre alle sei riportate sotto, continua a leggere. Prima della fine dell'articolo, tratteremo molti altri temi, oltre a rispondere ad alcune domande fondamentali.
1. Come cancellare indici, righe e colonne da un pandas DataFrame
Non tutte le colonne (o righe, o indici) di un DataFrame sono sempre ugualmente indispensabili. In effetti, a volte è necessario cancellare un oggetto DataFrame; per questo ti mostreremo come fare.
Ti piegheremo come cancellare ogni elemento, a partire dagli indici. Per questi e tutti gli esempi illustrati nell'articolo, abbrevieremo "DataFrame" con "df" nel codice, secondo la prassi comune.
I DataFrame hanno sempre qualche tipo di indice: è difficile cancellare gli indici completamente, ma è possibile modificare l'etichetta dell'indice o cancellarne completamente il nome. L'eliminazione del nome si effettua eseguendo il comando del df.index.name.
Si può anche scegliere di resettare l'indice del DataFrame. Questa operazione è utile quando ci sono valori duplicati. Basterà resettare l'indice, eliminare eventuali duplicati e infine reinstallare il nuovo indice di colonna senza duplicati.
Cancellare le colonne è un po' più facile. Il metodo drop ( ) consente di eliminare le colonne. Per farlo bisogna inserire le etichette delle colonne da eliminare, assicurandosi che i nomi delle colonne siano corretti prima di eseguire il comando drop ( ). Inoltre, impostando inplace su True, si potranno eliminare colonne senza riassegnare il DataFrame.
Infine, vediamo come cancellare righe del DataFrame.
Eseguendo df.drop_duplicates( ) si eliminano le righe duplicate a seconda dei criteri forniti per le etichette delle righe. Si può anche optare per lo stesso metodo .drop() che funziona anche per le colonne, con la differenza che si fornirà al comando drop un indice di riga. È importante assicurarsi di resettare l'indice dopo questa operazione.
Per eliminare specificamente righe con valori mancanti, si usa il comando DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False). Automaticamente verranno rimosse tutte le righe con valori nulli. Si possono anche modificare i parametri della funzione per stabilire se devono essere eliminati i valori mancanti in una specifica selezione di dati.
Se si vogliono sostituire i valori nulli con valori specifici, si può usare il comando .fillna() invece di cancellarli con.dropna().
2. Come rinominare l'indice o le colonne di un pandas DataFrame
Rinominare indici e colonne è molto più semplice e lineare che cancellarli. Per rinominare questi oggetti, basta usare il metodo .rename( ) e inserire l'indice (o le colonne) a cui si vuole assegnare un nuovo valore.
Se l'argomento inplace viene cambiato in False nell'operazione di rinomina, il DataFrame non verrà riassegnato quando si cambiano i nomi delle colonne.
3. Come formattare i dati in un pandas DataFrame
Nella maggior parte dei casi, gli utenti di DataFrame devono modificare, cambiare e formattare i valori nei loro DataFrame. Illustreremo ora alcune delle strategie principali che devi conoscere, se questo è il tuo obiettivo.
Per sostituire ogni istanza di una stringa, si può usare il comando .replace(), compilando gli spazi vuoti con il formato (valore da modificare, valore con cui modificare).
Il programma sostituisce quindi automaticamente ogni istanza della stringa o del valore che si vuole cambiare con l'elemento sostitutivo.
Un altro tipo di formattazione che potrebbe servire è la capacità di rimuovere parti di stringhe non necessarie. Il comando map ( ) applica la funzione lambda prescelta a ogni elemento presente nella colonna se viene applicata sulla colonna "risultato".
Si può anche dividere il testo della colonna in più righe, ma si tratta di un'operazione più complicata, quindi abbiamo preparato un breve tutorial.
In primo luogo, bisogna individuare le righe troppo lunghe, in modo tale da sapere quali devono essere separate. Una volta individuate, bisognerà prendere la colonna in cui sono contenute e le stringhe in uno spazio. Il passo successivo è prendere i valori che verranno suddivisi fra le righe e metterli in un oggetto Series.
Se la Series contiene valori NaN, significa che si sta procedendo nella giusta direzione. Basta semplicemente impilare (stack) la Series, assicurandosi in tal modo che la copia finale della Series non conterrà alcun valore NaN indesiderato.
Per ottenere la Series impilata nel formato desiderato, bisogna abbassare il livello in modo che sia allineato con il DataFrame. Fatto ciò, non resta altro che trasformare la Series in un DataFrame, rimettendola nel DataFrame da cui proviene e poi cancellando la colonna difettosa dal DataFrame originale. L'ultimo passaggio (cancellare la colonna) evita che vengano generati duplicati.
L'ultimo tipo di formattazione applicabile ai dati nel DataFrame consiste nell'applicare una funzione alle righe o colonne del DataFrame.
Cominciamo selezionando la riga su cui lavorare con il comando.loc[ ] or .iloc[ ]. Tuttavia, poiché siamo all'interno di DataFrame, si utilizzerà più specificamente df.loc e df.iloc. Una volta selezionate le righe giuste, si può usare il comando apply ( ) per applicare funzionalità come il raddoppio a una riga o una colonna.
4. Come creare un DataFrame vuoto
Per creare un DataFrame vuoto, non bisogna fare altro che usare la funzione pandas DataFrame().
Se si desidera inizializzare il DataFrame con NaN, basta optare per l'uso di numpy.nan, che ha un tipo Float (virgola mobile). Ciò significa che i valori dei dati nel nuovo DataFrame saranno del tipo Float per default. Inserendo l'attributo dtype e poi il tipo che si sta cercando, è possibile aggirare questa impostazione di default.
La funzione DataFrame ( ) richiede che l'utente passi i dati che intende inserire nel DataFrame, ad esempio negli indici e nelle colonne. Questi dati possono avere tutti i tipi differenti che sono necessari. Inoltre, come già detto, si può sempre forzare il tipo di dati in modo che sia quello che si vuole utilizzare con l'attributo dtype.
Si può scegliere di specificare le etichette o l'indice che verranno utilizzati dal DataFrame vuoto; altrimenti, il pandas DataFrame costruirà automaticamente gli elementi necessari utilizzando regole di buon senso.
5. pandas riconosce le date quando si importano i dati?
In linea di principio, sì. Nella pratica, è un po' più complicato.
pandas riesce a capire quando vengono immesse date, ma funziona meglio se viene guidato nella giusta direzione. Per essere più chiari, è opportuno aggiungere l'argomento parse_dates quando si importano dati da un file CSV o simile. Con un file CSV, l'istruzione sarebbe simile a:
pd.read_csv('yourFile', parse_dates=True)
Questo approccio funziona al meglio per le date in formato numerico. Tuttavia, non tutte le date usano questo tipo di formato.
Per formati di data insoliti o per quelli che pandas DataFrame fatica a riconoscere, bisognerà creare appositi parser. I parser possono assumere la forma di una funzione lambda che usa una stringa di formato per controllare il riconoscimento della data e dell'ora in entrata.
Qualunque sia il modo prescelto per dare una dritta a pandas, il sistema riconoscerà date e orari una volta fatto. Quindi, con un minimo intervento da parte dell'utente, il DataFrame può essere istruito per ricevere qualsiasi informazione relativa a date.
6. Quando, perché e come bisognerebbe rimodellare il pandas DataFrame
L'analisi dei dati è uno degli utilizzi più importanti di pandas DataFrame. Per questo è importante essere in grado di modellare e rimodellare il proprio DataFrame, in modo che la struttura su cui viene modellato sia idonea alle proprie esigenze di analisi dei dati.
Quindi, la risposta alla domanda "Quando dovrei rimodellare il mio DataFrame?" è: quando il suo formato attuale non è utile per l'analisi dei dati che si vuole effettuare e quando non si vogliono creare nuove colonne o righe a tale scopo. Il motivo per cui si dovrebbe rimodellare il DataFrame, invece, è trovare la forma più adatta per svolgere l'analisi dei dati.
Resta un'ultima domanda: "Come?"
La scelta è fra "pivot" e "stack". Si può usare anche il metodo di "unstacking and melting". Entreremo nel dettaglio di come funziona ognuno di questi tre approcci e come utilizzarli per rimodellare il DataFrame.
Rimodellare il DataFrame con il metodo Pivot
Cominciamo analizzando l'opzione Pivot, che crea una nuova tabella partendo da quella originale, consentendo di rimodellare la nuova copia esattamente come si vuole. L'utilizzo di questa funzione dipende da tre elementi.
In primis, i valori. Questo elemento riguarda il punto in cui si scelgono i valori del DataFrame originale che verranno incorporati in quello nuovo, con la possibilità quindi di scegliere quali includere e quali escludere.
Poi si passa alle colonne. Quelle che vengono passate entrano a far parte della tabella finale.
Infine, bisogna scegliere quali indici usare nella nuova tabella.
È importante essere specifici per quanto riguarda i dati che si vogliono incorporare nella tabella risultante. Ad esempio, non si possono includere righe che contengono valori duplicati nelle colonne specificate, perché verrebbe visualizzato un messaggio di errore. Inoltre, la funzione Pivot coinvolgerà numerose colonne se non si sceglie esattamente quali valori includere nella tabella finale.
Passiamo ora al metodo Stacking.
Rimodellare il DataFrame con il metodo Stacking
Lo stacking rende i DataFrame più alti. Questo effetto è ben riconoscibile. Abbiamo accennato allo stacking nella terza domanda., relativamente a come formattare i dati nel DataFrame.
La spiegazione tecnica è che si sta spostando l'indice della colonna più interna, facendolo diventare l'indice della riga più interna. Questa azione produce un DataFrame che ha un nuovo indice con un nuovo livello di etichette delle righe, che sarà collocato al livello più interno.
Ora spieghiamo il processo opposto, detto Unstacking. Mentre lo Stacking sposta l'indice della colonna più interna, l'Unstacking sposta l'indice della riga più interna. Quindi, l'operazione di Unstacking sposta l'indice della della riga più interna, in modo da poterlo usare come indice della colonna più interna. L'Unstacking viene utilizzato insieme al Melting, che andremo ad analizzare ora.
Rimodellare il DataFrame con il metodo Melting
Il Melting è ideale quando il DataFrame usa una o più colonne come variabili identificative, mentre le restanti colonne sono variabili misurate. In questi casi, la funzione Melting fondamentalmente rende il DataFrame più lungo, non più ampio.
Sostanzialmente si aprono (unpivot) le variabili misurate sull'asse delle righe: in questo modo, la funzione Melting assicura che le variabili misurate vengano distribuite in altezza invece che in larghezza nel DataFrame. Il prodotto finale conterrà due colonne: una per le variabili e una per i valori.
Come usare pandas DataFrame
I DataFrame possono essere utilizzati in modo molto simile ai fogli di Excel, e pandas DataFrame non fa eccezione.
Sostanzialmente, si può usare pandas DataFrame come struttura di dati. Può essere usato anche per elaborare e analizzare dati, esattamente come un foglio di calcolo.
Quando si ha la necessità di leggere o manipolare dati, pandas è uno strumento utile per svolgere tale compito. Abbiamo già descritto come inserire i dati in pandas DataFrame e siccome pandas è compatibile con svariati tipi di dati, si possono importare molti tipi di dati. Ciò consente di lavorare con le informazioni indipendentemente dal formato che assumono.
Si possono poi utilizzare i processi di formattazione descritti sopra per trasformare i dati nel formato richiesto. Si possono trasformare dati che già si possiedono, modellandoli in un formato più fruibile e più adatto alle proprie esigenze.
Pandas è stato progettato specificamente per essere utilizzato con Python, quindi i due prodotti possono essere usati congiuntamente quasi sempre. Di conseguenza, si possono svolgere facilmente compiti come dimensionare calcoli SHAP con PySpark e pandas.
Saremo più specifici su come eseguire attività e funzioni particolari all'interno di pandas DataFrame. Tratteremo argomenti quali creazione di pandas DataFrame, indicizzazione e iterazione, prima di entrare nei dettagli dei vantaggi offerti dall'utilizzo di pandas.
Come creare un pandas DataFrame
I pandas DataFrame sono strumenti versatili utilizzabili in molti modi. Non solo: possono anche essere creati con diverse strategie.
Abbiamo già visto come impostare un pandas DataFrame vuoto nella risposta alla domanda 4. Questo è uno dei metodi che si possono usare per creare un nuovo pandas DataFrame. È la soluzione migliore quando non si ha già un'altra struttura di dati da "rilocare" in pandas o, in altre parole, quando si vuole cominciare da zero.
Vediamo ora come creare un pandas DataFrame da un ndarray NumPy.
In estrema sintesi, si possono creare DataFrame molto facilmente da array NumPy. Tutto quello che bisogna fare è passare l'array prescelto alla funzione DataFrame ( ) nell'argomento di dati di pandas, che a sua volta utilizzerà i dati NumPy per modellare il nuovo DataFrame. L'argomento avrà una sintassi simile a:
print(pd.dataframe [ ] )
I dati inseriti vanno messi fra le parentesi quadre.
Valori, indici e nomi delle colonne dovrebbero essere già inclusi nell'array NumPy, in modo che pandas possa utilizzare le informazioni specifiche dell'utente per creare il giusto DataFrame.
Un vantaggio dell'utilizzo di pandas DataFrame è che la funzione DataFrame ( ) può assumere molte strutture differenti come input. Quando si creano strutture utilizzando strutture non-NumPy, il processo funziona sostanzialmente nello stesso modo. In pratica, si passano ancora gli array nella funzione DataFrame ( ), dopodiché si istruisce pandas a utilizzare quelle informazioni per creare il nuovo DataFrame.
Si può persino utilizzare un DataFrame come input per creare un nuovo DataFrame. Per farlo si usa la funzione my_df = pd.DataFrame ( ), inserendo nella formula i dati necessari.
Le chiavi del dizionario originale saranno contenute nell'indice della Series e, con esso, il DataFrame. Una volta completata l'importazione, le chiavi verranno ordinate automaticamente.
Si può usare la proprietà della forma insieme alla proprietà .index per conoscere le dimensioni del nuovo DataFrame creato. La funzione mostrerà la larghezza e l'altezza. Se interessano solo le informazioni sull'altezza, si utilizzerà la funzione LEN ( ), anche in questo caso insieme alla proprietà .index, che mostrerà l'altezza del DataFrame.
Entrambi questi approcci mostrano le dimensioni del DataFrame compresi tutti i valori NaN. Per contro, utilizzando df[0].count ( ) verrà mostrata l'altezza del DataFrame senza alcun valore NaN.
Indicizzazione in pandas DataFrame
I dati possono essere indicizzati nello stesso modo in cui vengono catalogati gli oggetti fisici di una collezione. In altri termini, l'indicizzazione in pandas comporta la classificazione e l'organizzazione dei dati scegliendo i valori, le righe e le colonne specifici con cui si intende lavorare.
L'indicizzazione in pandas DataFrame è simile a quella in Excel. La differenza principale è che l'indicizzazione di pandas è più dettagliata e versatile, grazie a un ventaglio più ampio di opzioni per gestire i dati con le modalità desiderate.
In pandas si può cominciare l'indicizzazione scegliendo le righe e/o le colonne specifiche di dati nel DataFrame con cui si intende lavorare. La selezione può avvenire in molti modi. È possibile utilizzare solo poche righe ma tutte le colonne, oppure viceversa. Potrebbero anche servire solo una manciata di righe e colonne specifiche.
Poiché si scelgono sottoinsiemi specifici di dati, a volte l'indicizzazione viene definita selezione di sottoinsiemi.
Vediamo come funziona l'indicizzazione in pandas DataFrame.
Esistono quattro diverse modalità di indicizzazione in pandas. Vediamole rapidamente. La prima è df[ ], un operatore (funzione) di indicizzazione. Quando si devono gestire etichette, si può usare anche df.loc[ ]. df.iloc[ ] è indicata principalmente per dati di posizione e/o dati basati su numeri interi. Infine, df.ix[ ] è una funzione per dati basati su etichette e numeri interi.
Queste quattro tipologie di indicizzazione sono dette indicizzatori e sono fra i metodi più diffusi per l'indicizzazione dei dati.
Iterazione su un pandas DataFrame
È bene farsi trovare pronti nel momento in cui sarà necessario eseguire ripetutamente lo stesso gruppo di istruzioni in pandas DataFrame o, in altri termini, quando si dovranno fare iterazioni sulle righe.
Esiste un'altra funzione molto semplice da usare in pandas. Per impostare l'iterazione si possono utilizzare insieme un ciclo for e un comando iterrows ( ). Questa operazione consente di inserire le righe del DataFrame in un ciclo sotto forma di coppie (indice, Series).
In questo modo, nei risultati si possono ottenere tuple (indice, riga).
Quando si fanno iterazioni in pandas, il DataFrame riceve istruzioni per iterare come farebbe un dizionario. In altri termini, si itera sulle chiavi dell'oggetto, prendendo gli elementi uno dopo l'altro in righe e colonne.
Vantaggi dell'utilizzo di pandas DataFrame
- Permette di caricare facilmente dati da diversi database e con diversi formati
- Può essere utilizzato con moltissimi tipi di dati
- Procedure intuitive per la fusione e la combinazione di set di dati che usano una chiave comune per ottenere una vista completa
- Permette di segmentare i record all'interno di un DataFrame
- Consente il sezionamento (slicing) intelligente basato su etichette, indicizzazione e suddivisione in sottoinsiemi di grandi set di dati con modalità creative
- Offre un'aggregazione e una sommarizzazione veloci per ottenere statistiche eloquenti dai dati, accedendo a funzioni integrate in pandas DataFrame
- Permette di definire funzioni Python personalizzate per determinati compiti di calcolo e di applicarle successivamente ai record del DataFrame
- La sintassi è concepita per fare più lavoro scrivendo meno codice
- Bastano due o meno righe per ottenere gli stessi risultati che richiederebbero fino a 15 righe di codice in C++ o Java
- Flussi di lavoro snelli, più lavoro svolto ogni giorno e incremento della quantità di dati elaborati e analizzati
- Offre accesso a un'ampia gamma di funzionalità, tutte pienamente compatibili con Python, perché pandas è stato progettato per essere utilizzato con Python
- Garantisce una maggiore accessibilità grazie alla combinazione Python-pandas, poiché numerosi professionisti del settore sono molto versati in Python
- Permette di gestire di grandi volumi di dati con facilità, efficienza e, grazie alla sintassi, velocità
- Offre un'pproccio personalizzato alla gestione dei dati grazie alla flessibilità che consente di modificare facilmente i dati e applicare le necessarie funzioni
- Dato che si tratta di soluzioni open-source, che chiunque può utilizzare, è più accessibile
- È compatibile con diversi tipi di linguaggi di programmazione, non solo quelli per cui la soluzione è stata progettata. Ad esempio, funziona con Java e HTML
- È facile da convertire in altri formati, ad esempio _json
I 5 strumenti di visualizzazione principali per pandas DataFrame
pandas DataFrame offre la possibilità di utilizzare svariate funzionalità e di manipolare in modo flessibile qualsiasi dato inserito nella libreria di pandas, ma non è concepito come strumento di visualizzazione avanzato. In sostanza, offre una visione da "dietro le quinte".
La visualizzazione è estremamente utile per svariate ragioni. A volte, ad esempio, serve una rappresentazione grafica dei dati inseriti.
Mettiamo a confronto pandas con uno strumento simile, come Excel. In Excel, bastano pochi clic per trasformare dati puramente numerici in un grafico, un diagramma o un'altra visualizzazione di grande impatto. pandas non ha questo tipo di funzionalità.
Ecco perché dovrai cercare altri strumenti di visualizzazione dei dati rispetto a pandas DataFrame.
Abbiamo recensito di seguito i cinque migliori strumenti di visualizzazione per DataFrame. I primi due sono strumenti JavaScript, mentre gli altri tre sono applicazioni per l'analisi dei dati non associate a Java. Entreremo nel dettaglio di ogni strumento, spiegando perché è utile e che cosa gli è valso il posto in classifica assegnato.
Detto ciò, cominciamo a dare un'occhiata ai primi due strumenti e perché gli strumenti JavaScript conquistano le prime posizioni.
Strumenti JavaScript
Originariamente chiamato LiveScript, JavaScript è attualmente uno dei linguaggi di programmazione più diffusi, grazie alla sua concezione flessibile e modulare. La sintassi è simile a C, un altro linguaggio di programmazione molto diffuso.
Con JavaScript si possono creare pagine web interattive e si possono anche modificare pagine web esistenti. Come pandas DataFrame, JavaScript può manipolare dati e può quindi essere utilizzato per fare calcoli o validare conclusioni basate su dati. È utile anche per chi vuole inserire testo dinamico in documenti HTML o CSS.
Nel nostro caso stiamo cercando strumenti JavaScript che possano essere utilizzati per visualizzazioni di pandas DataFrame.
Il motivo per cui gli strumenti JavaScript hanno conquistato i primi due posti nella nostra classifica dei migliori strumenti di visualizzazione è che il linguaggio JavaScript si evolve continuamente. È molto diffuso non solo perché è utile a molti, ma anche perché cresce e si sviluppa tanto più quante più persone lo utilizzano. Gli strumenti creati con questo linguaggio possono essere più flessibili e in linea con le esigenze degli utenti.
Ora analizziamo Qgrid, il principale strumento JavaScript per la visualizzazione di pandas DataFrame, seguito da PivotTable.js, secondo classificato.
1. Qgrid
Sviluppato da Quantopian, Qgrid offre al DataFrame un'interattività aggiuntiva grazie al componente SlickGrid, che consente di classificare e filtrare i dati nel pandas DataFrame in una versione visualizzata. Qgrid è un widget del notebook Jupyter.
Con Qgrid, i dati possono essere filtrati per tipo. Qgrid, infatti, mette a disposizione dell'utente un sistema di filtraggio facile da usare.
Una funzionalità particolarmente utile di Qgrid quando si parla di visualizzazione dei dati è la capacità di configurare le funzioni di rendering. Una volta finalizzate le configurazioni, i dati scelti possono essere visualizzati in un DataFrame. Questo rende Qgrid particolarmente adatto per la manipolazione di dati o per chiunque abbia bisogno di ispezionare i propri dati a fondo.
Vediamo rapidamente come funziona Qgrid.
Per usarlo, bisogna assegnare una quantità di spazio specifica a QGridLayout, utilizzando il layout genitore o un parentWidget ( ). Lo strumento suddivide quindi lo spazio in righe e colonne, posizionando ogni widget che gli è stato assegnato nella cella corrispondente.
2. PivotTable.js
Al secondo posto nella nostra classifica degli strumenti di visualizzazione per pandas c'è PivotTable.js, un modulo JavaScript che usa una libreria di tabelle pivot. Consente di riassumere e riorganizzare (pivot) i dati, agevolando l'accesso e l'interazione con i dati stessi.
Un grande vantaggio di PivotTable.js è l'estrema facilità d'uso. Basta infatti cliccare e trascinare per sfruttare appieno le sue funzionalità.
Queste ultime vanno dalla semplice visualizzazione all'analisi statistica dei dati contenuti nel pandas DataFrame. Si tratta di un ottimo strumento per riorganizzare e riassumere dati in modo da avere una vista generale, più immediatamente comprensibile, dei dati contenuti nel pandas DataFrame. Inoltre, dopo aver costruito una tabella, i dati in essa contenuti possono essere filtrati, beneficiando così di un'ulteriore funzionalità con lo stesso widget.
PivotTable.js consente anche di trascinare e rilasciare grafici e tabelle pivot in pandas DataFrame. Questo metodo permette di trasferire tabelle a notebook Jupyter e IPython, offrendo maggiore flessibilità per quanto riguarda i dati immessi nella libreria di pandas.
Applicazioni di analisi dei dati
Come abbiamo visto, i pandas DataFrame sono utilissimi per chiunque voglia analizzare i propri dati.
Lavorare con i dati può essere complicato. Quando vengono generati, infatti, non vengono organizzati automaticamente, a meno che non siano inseriti nello strumento giusto o non vengano applicate le formule corrette. Questo è uno dei motivi per cui le applicazioni di analisi dei dati sono così preziose: si possono analizzare dati molto più velocemente, anche dati ben organizzati, se si può programmare una funzione per svolgere il lavoro al nostro posto.
In questa sezione analizzeremo le tre applicazioni di analisi dei dati più adatte per visualizzare le informazioni conservate in pandas DataFrame.
3. pandasGUI
pandasGUI è una libreria basata su Python nata per fornire aiuto con la manipolazione dei dati e le statistiche riassuntive. Le sue funzionalità vengono applicate ai dati contenuti nella libreria DataFrame utilizzando un'interfaccia utente grafica (GUI), che comporta l'esecuzione di tutte le operazioni previste all'interno dell'interfaccia stessa. pandasGUI è progettata per inserire comandi nell'interfaccia utente, dopodiché i comandi verranno eseguiti dal programma all'interno di pandas.
Una veloce annotazione per chi sta valutando di installare pandasGUI: è meglio impostare un nuovo ambiente virtuale separato a questo scopo, installando poi la libreria pandasGUI in questo ambiente. In questo modo si avrà un'installazione più pulita e si potrà usare lo strumento più velocemente.
Una volta terminate l'installazione e la configurazione, si può cominciare subito a lavorare. Passando il DataFrame alla funzione, pandasGUI verrà popolata automaticamente con righe e colonne ricavate dal set di dati. È possibile caricare più di un set di dati alla volta con questo metodo, ottenendo facilmente una vista completa con molte informazioni.
I dati saranno accessibili dalla GUI dopo che saranno stati passati con successo alla funzione. Attraverso l'interfaccia, è possibile interagire, modificare, analizzare e manipolare i dati in molti modi. In termini di funzioni disponibili e layout, funziona più o meno come un foglio Excel.
I dati nel formato GUI possono essere copiati e incollati in altri formati. Risulta così particolarmente facile trasferire i dati allo strumento di visualizzazione preferito, se il tipo di visualizzazione che si sta cercando è simile a un grafico o un diagramma.
In sostanza, pandasGUI è molto facile da usare. È anche molto intuitiva, anche per chi ha meno esperienza nella scrittura di codice. Per questo motivo si è meritato il terzo posto fra gli strumenti per la visualizzazione di dati più utili per pandas DataFrame.
4. Tabloo
Tabloo viene descritta dai suoi stessi creatori come una "app dashboard minimalista per la visualizzazione di dati tabellari." Può essere eseguita da Python, pertanto è pienamente compatibile anche con pandas.
Questo strumento per la visualizzazione di dati è un backend Flask, pur essendo compatibile con altri tipi di linguaggi backend. Il backend viene utilizzato per fornire un'interfaccia semplice che consente di dare un senso visuale ai dati immessi nel database di pandas.
Tabloo consente inoltre di realizzare grafici dei dati. Non bisogna, quindi, affidarsi a software esterni per cominciare a creare grafici e diagrammi. Una soluzione comoda per chi cerca una visualizzazione rapida e non vuole perdere tempo nella ricerca di altri strumenti.
Per quanto riguarda le modalità di utilizzo, Tabloo è molto simile a pandasGUI. I dati vengono organizzati in celle e possono poi essere manipolati utilizzando sostanzialmente le stesse funzioni eseguite anche da pandasGUI. Tuttavia, è un po' più difficile applicare più filtri contemporaneamente in Tabloo, mentre pandasGUI è molto efficiente in questo tipo di gestione.
La sintassi utilizzata da Tabloo è la "query syntax", come per pandasGUI.
Una differenza rilevante fra pandasGUI e Tabloo è che la prima è più ricca di funzionalità. Utilizzando pandasGUI si hanno a disposizione più opzioni per gestire i dati; per questo motivo Tabloo si è classificato più in basso, nonostante offra funzioni innegabilmente utili.
5. D-Tale
Con un'architettura simile a Tabloo, D-Tale occupa il quinto posto nella classifica. D-Tale usa un backend Flask, come Tabloo, insieme a un front-end React che consente di sfruttare al meglio l'ampia gamma di opzioni messe a disposizione da D-Tale.
L'interfaccia utente di D-Tale, come suggerisce il nome stesso dell'applicazione, è molto dettagliata. Per accedere è sufficiente importare i dati di pandas in D-Tale. I dati vengono quindi organizzati in righe e colonne, con un numero elevato di funzioni di ordinamento che consentono di visualizzare il set di dati esattamente come si desidera. Si possono utilizzare funzioni Lock, Hide, Delete e Rename, fra le altre, per qualsiasi riga o colonna, ad esempio.
D-Tale consente anche di creare rappresentazioni visuali dei dati, da grafici a istogrammi, e altro ancora.
Una funzionalità utile di D-Tale è l'esportazione del codice dall'applicazione in qualsiasi momento. Il codice può essere poi incollato in un'altra applicazione per verificarne la validità o per elaborare i dati in altri modi.
D-Tale consente inoltre di gestire la formattazione dei dati. Supponiamo ad esempio che il set di dati contenga delle date. Se mesi e giorni devono essere separati con una barra invece del punto, questa modifica può essere apportata in D-Tale.
pandas DataFrame in breve
Per chi ha la necessità di elaborare, manipolare e analizzare dati, pandas DataFrame è la soluzione ideale.
Si tratta di una libreria progettata per essere usata in combinazione con Python, accessibile praticamente a chiunque abbia una minima dimestichezza con Python. Può elaborare dati in molti formati, agevolando così l'inserimento dei dati indipendentemente dalla loro forma.
Abbiamo illustrato i principali vantaggi offerti da pandas in questo articolo, ma vogliamo concludere riepilogandoli velocemente. pandas DataFrame consente di aggregare dati in modo semplice e veloce. È compatibile con diversi strumenti di visualizzazione, offrendo la massima flessibilità. Diversamente da altri linguaggi di scripting, può fare molte cose con poche righe di codice, velocizzando il lavoro quotidiano.
In una parola, pandas DataFrame è utile, e questo vale per tutti quelli che devono elaborare dati.