Navigare i formati dei dati con Pandas per principianti

Pandas data format navigation for beginners

Introduzione

Pandas è più di un semplice nome – è l’abbreviazione di “panel data”. Ora, cosa significa esattamente? Utilizza i formati di dati con pandas in economia e statistica. Si riferisce a set di dati strutturati che contengono osservazioni in più periodi per diverse entità o soggetti.

Oggi le persone spesso memorizzano i dati in diversi formati di file e devono convertirli in formati accessibili per il caricamento. Questo è il primo passo di qualsiasi progetto di scienza dei dati e sarà l’argomento principale di discussione di questo articolo.

Questo articolo è stato pubblicato come parte del Data Science Blogathon.

I pilastri dietro il successo di Pandas nella scienza dei dati

  • Gestione dati senza sforzo: Una caratteristica eccezionale di pandas è la loro capacità di gestire facilmente compiti complessi legati ai dati. Quello che una volta era codice complesso ora è semplificato grazie alle funzioni concise di pandas.
  • Armonia perfetta dei dati: Pandas si adatta perfettamente alle immagini di scienza dei dati più grandi con cui lavora NumPy, Matplotlib, SciPy, Scikit Learn e altre librerie avanzate in modo efficiente.
  • Adattabilità nella raccolta dei dati: Pandas hanno la flessibilità di raccogliere dati da diverse fonti. Che si tratti di file CSV, fogli Excel, JSON o database SQL, pandas gestiscono tutto. Questa adattabilità semplifica l’importazione dei dati, risparmiandoci il mal di testa delle conversioni di formato.

In poche parole, il successo di pandas deriva dalle sue strutture user-friendly, dalla sua abilità di gestire dati, dall’integrazione con altre strumenti e dalla sua capacità di gestire varie fonti di dati. Permette agli appassionati di dati di sbloccare il potenziale nascosto all’interno dei loro set di dati, ridefinendo il panorama della scienza dei dati.

Come mantengono Pandas i dati ordinati?

Immagina pandas come il tuo organizzatore dei dati. Pandas gestisce i dati utilizzando due strutture incredibili: “Series” e “DataFrame”. Immaginali come i supereroi dello storage dei dati!

  • Series: Pensa a una Series come un percorso rettilineo in cui i dati possono essere posizionati. È come una linea di informazioni, che contiene numeri o parole. Ogni dato ha un’etichetta speciale chiamata indice. Immaginalo come un distintivo con il nome – ti aiuta a trovare facilmente i dati. Le Series sono estremamente utili quando si lavora solo con una colonna di dati. Puoi fare trucchi come calcoli e analisi con loro.

  • DataFrame: Un DataFrame è come un mini-foglio di calcolo o una tabella sofisticata. Ha righe e colonne come si vedrebbe in Excel. Ogni colonna è una Series. Quindi, puoi avere una colonna “Numeri”, una colonna “Nomi” e così via. I DataFrames sono un pacchetto completo. Sono fantastici nel gestire tutti i tipi di dati: numeri, parole, tutto ciò che vuoi. Inoltre, puoi fare cose interessanti come trovare cose, organizzare dati e modificarli. Ricorda, ogni colonna in un DataFrame è una Series!

Dopo aver coperto le basi teoriche, è ora di rimboccarci le maniche e immergerci nella codifica pratica.

Installazione ed importazione di Pandas

'''
Puoi digitare quanto segue nel prompt dei comandi o nel terminale 
per installare pandas nel tuo sistema
'''
pip install pandas

#Per installare pandas nel tuo ambiente conda, utilizza quanto segue

conda install pandas

# Gli utenti di jupyter notebook possono utilizzare quanto segue

!pip install pandas

Ora, proprio come numpy viene abbreviato come np e seaborn come sns, pandas viene convenzionalmente abbreviato come pd. Sei libero di utilizzare qualsiasi altra abbreviazione a tua scelta e ciò non influenzerà l’esecuzione del codice in alcun modo. Tuttavia, ‘pd’ è l’abbreviazione comune e usarla migliora la leggibilità del codice. In questo articolo, useremo l’abbreviazione standard ‘pd’ e la utilizzeremo per importare pandas.

#importa pandas
import pandas as pd

Il codice seguente mostra come creare una serie con pandas.

ages = pd.Series([22, 35, 58], name="Età")

print(ages)

Una serie pandas non ha etichette di colonna, in quanto è solo una singola colonna di un DataFrame. Una serie ha invece etichette di riga.

Ora impariamo l’uso del dataframe con un esempio. Voglio memorizzare i dati dei passeggeri sul Titanic. Per il numero di passeggeri, conosco il nome (caratteri), l’età (interi) e il sesso (maschio/femmina).

df = pd.DataFrame(
    {
        "Nome": [
            "Braund, Sig. Owen Harris",
            "Allen, Sig. William Henry",
            "Bonnell, Sig.ra Elizabeth",
        ],
        "Età": [22, 35, 58],
        "Sesso": ["maschio", "maschio", "femmina"],
    }
)
print(df)

Questo restituisce il dizionario come un oggetto DataFrame. Nota anche come si scrive DataFrame quando si chiama la funzione. Puoi trovare tutti questi esempi qui.

Ora sai come caricare Python e iniziare a lavorare con esso. Ma aspetta, quando si tratta di progetti reali, è probabile che i tuoi dati abbiano molte più righe e colonne. Digitare manualmente come dizionari sarebbe una maratona. Ecco dove entra in gioco la magia dell’importazione dei dati in pandas. E sai una cosa? Questo ci porta direttamente al centro della nostra discussione odierna!

File CSV

I file CSV (Comma-Separated Values) hanno un’importanza significativa nella scienza dei dati grazie al loro ampio utilizzo per la memorizzazione di dati tabulari. Sono una scelta universale per lo scambio di dati grazie alla loro semplicità e compatibilità su varie piattaforme e applicazioni. Pandas in Python offre una soluzione elegante per leggere file CSV, permettendo ai data scientist di caricare, manipolare e analizzare i dati senza sforzo. Questo processo semplificato risparmia tempo, garantisce l’integrità dei dati e fornisce un framework strutturato per l’esplorazione e l’estrazione di informazioni, rendendo pandas uno strumento fondamentale nel toolkit del data scientist. Mentre ti dedichi a padroneggiare la scienza dei dati, i file CSV saranno i tuoi fedeli compagni.

Per leggere i file CSV, abbiamo utilizzato la funzione read_csv() che prende il percorso di un file CSV e legge i dati in un oggetto DataFrame di Pandas.

# Importa la libreria pandas
import pandas as pd

# Leggi i dati da un file CSV chiamato 'sampledata.csv'
# Il DataFrame risultante sarà memorizzato nella variabile 'df_csv'
df_csv = pd.read_csv('sampledata.csv')

Tabella

Una tabella è un’organizzazione strutturata all’interno del contesto dei dati in cui le informazioni sono organizzate in righe e colonne. Ogni riga rappresenta un record o un’entrata distinta, mentre ogni colonna corrisponde a un attributo o una caratteristica specifica.

La funzione read_table() in pandas facilita la conversione dei dati tabulari da un file di testo in un oggetto DataFrame di pandas. Quando viene invocata, apre il file designato in modalità di lettura e elabora sequenzialmente ogni riga come una riga di dati. Per impostazione predefinita, la funzione assume che i caratteri di tabulazione separino le colonne. Tuttavia, è possibile personalizzare il delimitatore utilizzando il parametro sep per adattarsi a diversi formati. La funzione legge e elabora i dati, costruendo un DataFrame che traduce le righe in righe del DataFrame e trasforma i valori in ogni riga nelle colonne corrispondenti del DataFrame. Una volta che la funzione elabora l’intero file, restituisce il DataFrame risultante contenente i dati tabulari importati. Questo semplifica la conversione dei dati basati su testo in un formato strutturato DataFrame.

# Importa la libreria pandas
import pandas as pd

# Leggi i dati tabulari da 'data.txt' utilizzando il tabulatore come delimitatore
df = pd.read_table('data.txt', sep='\t')

# Stampa il DataFrame risultante
print(df)

File Excel

Excel è uno dei formati di archiviazione dati più comuni. Possono essere rapidamente caricati nel dataframe pandas con la funzione read_excel(). Carica senza problemi vari formati di file Excel, da xls a xlsx, e persino estensioni xlsb, odf, ods e odt. Che si tratti del tuo disco locale o di un URL, questa funzione ti permette di leggere un foglio o una lista di fogli.

# Importa la libreria pandas
import pandas as pd

# Leggi i dati da un file Excel chiamato 'sample.xlsx' e dal foglio 'Sheet1'
# Il DataFrame risultante sarà memorizzato nella variabile 'df_excel'
df_excel = pd.read_excel('sample.xlsx', sheet_name='Sheet1')

Il parametro sheet_name ti aiuta a scegliere quale foglio di Excel desideri utilizzare nel file Excel.

sheet_name: str, int, elenco o None, predefinito 0

Le stringhe vengono utilizzate per i nomi dei fogli. I numeri interi vengono utilizzati per le posizioni dei fogli in base a zero (i fogli di grafici non vengono conteggiati come posizione del foglio). Gli elenchi di stringhe/numeri interi vengono utilizzati per richiedere più fogli. Specificare None per ottenere tutti i fogli di lavoro.

Casi disponibili:

Predefinito a 0: 1° foglio come DataFrame

1: 2° foglio come DataFrame

“Sheet1”: Carica il foglio con il nome “Sheet1”

[0, 1, “Sheet5”]: Carica il primo, secondo e il foglio denominato “Sheet5” come dizionario di DataFrame

None: Tutti i fogli di lavoro

JSON

I JSON (JavaScript Object Notation) trovano un ampio utilizzo come formato di file per memorizzare e scambiare dati. Possiedono un design che consente loro di essere leggibili sia per gli esseri umani che per le macchine, rendendoli versatili per varie applicazioni. Grazie alla loro semplicità e flessibilità, i JSON vengono spesso utilizzati in API web, file di configurazione e archiviazione dei dati. Nelle scienze dei dati, i JSON sono preziosi per gestire dati strutturati e integrarli in vari strumenti analitici, tra cui pandas. Possono essere letti nel frame di pandas utilizzando la funzione read_json().

# Importa la libreria pandas
import pandas as pd

# Leggi i dati da un file JSON chiamato 'data.json'
# Il DataFrame risultante sarà memorizzato nella variabile 'df_json'
df_json = pd.read_json('data.json')

SQL

Connettere pandas a un database SQL apre un mondo di possibilità. Consente di colmare senza soluzione di continuità il divario tra dati strutturati memorizzati nei database e le potenti capacità di manipolazione dei dati di pandas. Stabilendo questa connessione, è possibile sfruttare le query SQL per estrarre i dati necessari e quindi trasformarli facilmente in DataFrame di pandas. Questa sinergia consente di analizzare, visualizzare e manipolare i dati SQL utilizzando la sintassi user-friendly di pandas e la vasta gamma di funzioni di manipolazione dei dati. La connessione di pandas a SQL colma il divario tra l’interrogazione del database e l’analisi esplorativa dei dati, consentendo decisioni basate su dati più efficienti e illuminanti.

Ci sono percorsi separati per diversi database aziendali. In questo articolo, lavorerai con il database sqlite3, amico di Python, e i dati possono essere letti utilizzando la funzione read_sql().

# Importa le librerie richieste
import sqlite3
import pandas as pd

# Stabilisci una connessione a un database SQLite chiamato 'database.db'
conn = sqlite3.connect('database.db')

# Definisci una query SQL per selezionare tutti i dati da una tabella chiamata 'table_name'
query = "SELECT * FROM table_name"

# Leggi i dati utilizzando la query SQL dalla connessione, creando un DataFrame 'df_sql'
df_sql = pd.read_sql(query, conn)

HTML

La lettura di tabelle HTML in pandas apre una porta per estrarre dati strutturati dalle pagine web. È come attingere a una fonte di informazioni. Spesso, i siti web presentano i dati in forma tabellare, perfetta per l’analisi. Utilizzando la funzione read_html() di pandas, è possibile estrarre e convertire queste tabelle in DataFrame, evitando l’estrazione manuale. Questo duo dinamico di web scraping e conversione dei dati ti permette di integrare senza soluzione di continuità i dati web nei tuoi flussi di lavoro analitici, ampliando il tuo universo dei dati oltre ai file locali e ai database.

# Importa la libreria pandas
import pandas as pd

# Definisci l'URL contenente una tabella HTML
url = 'https://example.com/table.html'

# Leggi le tabelle HTML dall'URL fornito
# La lista risultante di tabelle è memorizzata nella variabile 'tables'
tables = pd.read_html(url)

# Estrai la prima tabella dalla lista e memorizzala nel DataFrame 'df_html'
df_html = tables[0]

Clipboard

La funzione read_clipboard() di pandas offre un modo comodo per importare dati direttamente dagli appunti del computer in un DataFrame. Per utilizzarla, copia i dati tabulari desiderati negli appunti da fonti come pagine web o fogli di calcolo. Quindi, nel tuo ambiente Python (come un Jupyter Notebook o una shell interattiva), chiami la funzione read_clipboard(). Pandas interpreta i dati copiati come una tabella e li converte in un DataFrame, con cui puoi quindi lavorare e analizzare. Questa funzione è comoda quando si desidera importare rapidamente i dati senza salvarli prima come file. Tuttavia, è essenziale assicurarsi che i dati copiati siano correttamente strutturati in un formato tabellare per una corretta interpretazione da parte di pandas.

# Importa la libreria pandas
import pandas as pd

# Leggi dati tabulari dagli appunti e crea un DataFrame 'df_clipboard'
df_clipboard = pd.read_clipboard()

HDF

La lettura di file HDF5 in pandas migliora la gestione dei dati per set di dati grandi e complessi. L’efficienza di archiviazione di HDF5, la sua struttura gerarchica e il supporto per diversi tipi di dati lo rendono una scelta robusta. Le sue capacità di compressione ottimizzano lo spazio di archiviazione, che è fondamentale per dati estesi. Integrando HDF5 con pandas, si accede agli strumenti di manipolazione dei dati potenti di quest’ultimo, consentendo un’analisi e un’esplorazione senza soluzione di continuità di set di dati complessi e grandi. Questa sinergia permette ai data scientist e ai ricercatori di gestire dati su larga scala in modo efficiente, aprendo possibilità per analisi sofisticate e scoperte insightful. Utilizza la funzione read_hdf() qui.

# Importa la libreria pandas
import pandas as pd

# Leggi i dati da un file HDF5 chiamato 'data.h5'
df_hdf = pd.read_hdf('data.h5', key='mydata')

# Stampa il DataFrame risultante
print(df_hdf)

Parquet

La lettura di file PARQUET in pandas offre una soluzione versatile per l’archiviazione e l’analisi dei dati. Il formato di archiviazione colonnare di PARQUET ottimizza la compressione dei dati, riducendo al minimo lo spazio di archiviazione e migliorando la velocità di accesso ai dati. Con la capacità di pandas di leggere file PARQUET, è possibile elaborare efficientemente grandi set di dati, rendendolo ideale per scenari di big data. La compatibilità del formato con vari tipi di dati garantisce l’integrità dei dati e consente un’integrazione senza soluzione di continuità con gli strumenti di manipolazione dei dati di pandas. Sfruttando i vantaggi di PARQUET attraverso la funzione read_parquet(), si ha la possibilità di gestire in modo efficiente grandi quantità di dati, accelerando i flussi di lavoro analitici e scoprendo informazioni all’interno di vasti set di dati.

# Importa la libreria pandas
import pandas as pd

# Leggi i dati da un file PARQUET chiamato 'data.parquet'
df_parquet = pd.read_parquet('data.parquet')

# Stampa il DataFrame risultante
print(df_parquet)

Feather

La lettura di file Feather in pandas offre un’opportunità di scambio e analisi dei dati ad alte prestazioni. Il formato di archiviazione binario di Feather ottimizza sia la velocità di lettura che di scrittura, il che è ideale per lo scambio di dati tra linguaggi di programmazione. Sfruttando la funzione read_feather() per leggere i file Feather, è possibile caricare e analizzare rapidamente grandi set di dati, rendendolo adatto a compiti intensivi di dati. La semplicità del formato e la sua focalizzazione sulla velocità consentono un’integrazione senza soluzione di continuità con le funzioni di manipolazione dei dati di pandas. Attraverso questa combinazione, si sblocca il potenziale per gestire rapidamente set di dati sostanziali, accelerando i flussi di lavoro di analisi dei dati ed estraendo informazioni in modo efficiente.

# Importa la libreria pandas
import pandas as pd

# Leggi i dati da un file Feather chiamato 'data.feather'
df_feather = pd.read_feather('data.feather')

# Stampa il DataFrame risultante
print(df_feather)

Conclusioni

La competenza nel caricare vari formati di file in pandas è fondamentale per gli analisti e i ricercatori di dati. Consente un’integrazione senza sforzo dei dati da fonti come CSV, Excel, JSON e SQL, amplificando la capacità di estrarre informazioni. Questa versatilità nella raccolta dei dati amplia la portata delle analisi complete, fornendo un insieme di competenze vitali per prendere decisioni informate ed efficaci basate sui dati. E questo è ciò che hai imparato in questo articolo.

I punti salienti di questo articolo sugli formati di dati con pandas includono:

  • Introduzione a pandas ed esame delle ragioni per cui è così popolare nell’industria della scienza dei dati.
  • Le strutture dati di pandas sono “Series” e “DataFrames”.
  • Come caricare i dati da formati di file come csv, excel, json, ecc. nel DataFrame di pandas.

Ci sono altri formati di file come file di larghezza fissa (fwf) e SAS, e anche quelli possono essere letti efficacemente in pandas. Consiglio vivamente di consultare la documentazione per una migliore comprensione.

Domande frequenti

I media mostrati in questo articolo non sono di proprietà di Analytics Vidhya e vengono utilizzati a discrezione dell’autore.