Come preparare i tuoi dati per le visualizzazioni

'How to prepare your data for visualizations'

Python

Senza usare Tableau Prep o Alteryx

Foto di Robert Katzki su Unsplash

Vuoi iniziare il tuo prossimo progetto di visualizzazione dei dati? Inizia diventando amico della pulizia dei dati. La pulizia dei dati è un passaggio vitale in qualsiasi pipeline dei dati, trasformando input dati grezzi e “sporchi” in quelli più affidabili, pertinenti e concisi. Strumenti di preparazione dei dati come Tableau Prep o Alteryx sono stati creati per questo scopo, ma perché spendere denaro per questi servizi quando puoi completare il compito con linguaggi di programmazione open source come Python? Questo articolo ti guiderà attraverso il processo di preparazione dei dati per la visualizzazione utilizzando script Python, offrendo un’alternativa più economica agli strumenti di preparazione dei dati.

Nota: In tutto questo articolo ci concentreremo sulla preparazione dei dati per Tableau per le visualizzazioni dei dati, ma i concetti principali si applicano anche ad altri strumenti di business intelligence.

Lo capisco. La pulizia dei dati sembra solo un altro passaggio nel già lungo processo di portare alla vita le tue visualizzazioni o dashboard. Ma è cruciale e può essere divertente. È così che diventi confortevole con il tuo set di dati, ottenendo una visione approfondita dei dati che hai e non hai, e delle decisioni consequenziali che devi prendere per raggiungere i tuoi obiettivi di analisi finale.

Anche se Tableau è uno strumento versatile di visualizzazione dei dati, a volte la strada per ottenere la tua risposta non è chiara. È qui che l’elaborazione del tuo set di dati prima di caricarlo in Tableau può essere il tuo miglior aiuto segreto. Esploriamo alcune ragioni chiave per cui la pulizia dei dati è vantaggiosa prima dell’integrazione con Tableau:

  • Elimina informazioni irrilevanti: I dati grezzi spesso contengono informazioni inutili o ripetute che possono ingombrare la tua analisi. Pulendo i dati, puoi rimuovere gli sprechi e concentrare le tue visualizzazioni sulle caratteristiche dei dati più pertinenti.
  • Semplifica la trasformazione dei dati : Se hai una chiara visione della visualizzazione che intendi produrre, eseguire queste pre-trasformazioni prima di caricare i dati in Tableau può semplificare il processo.
  • Facilità di trasferibilità all’interno dei team : Quando le fonti di dati vengono regolarmente aggiornate, le nuove aggiunte possono introdurre incongruenze e potenzialmente interrompere Tableau. Con gli script Python e la descrizione del codice (più formalmente nota come documentazione markdown), puoi condividere efficacemente e dare potere ad altri per capire il tuo codice e risolvere eventuali problemi di programmazione che possono sorgere.
  • Risparmio di tempo per i refresh dei dati: I dati che devono essere aggiornati regolarmente possono beneficiare dell’utilizzo dell’API Hyper, un’applicazione che produce formati file Hyper specifici per Tableau e consente l’upload automatico dell’estratto di dati rendendo il processo di aggiornamento dei dati più efficiente.

Ora che abbiamo coperto alcuni vantaggi della preparazione dei dati, mettiamo questo in pratica creando una semplice pipeline dei dati. Esploreremo come la pulizia e l’elaborazione dei dati possono essere integrate in un flusso di lavoro e aiutare a rendere le tue visualizzazioni più facili da gestire.

Creazione di una pipeline dei dati utilizzando script Python

Immagine dell'autore

Il percorso che i nostri dati seguiranno è abbastanza semplice: Pulizia dei dati, elaborazione dei dati per le visualizzazioni e trasformazione in file Hyper pronti per Tableau per un’integrazione senza interruzioni.

Una nota finale prima di approfondire il nostro esempio di lavoro è che per la conversione del file Hyper avrai bisogno della libreria pantab. Questa libreria semplifica la conversione dei Dataframe di Pandas in estratti di Tableau .hyper. Puoi completare facilmente questa operazione utilizzando il seguente codice nel terminale del tuo ambiente scelto (per coloro che non sono familiari con gli ambienti, questo è un ottimo articolo introduttivo su cosa sono e come installare determinate librerie):

#esegui la seguente riga di codice per installare la libreria pantab nel tuo ambiente pip install pantab

Tutorial: Preparazione dei dati con Python esplorando le licenze di veicoli elettrici in Canada

Le visualizzazioni dei dati che mireremo a produrre si concentreranno sulla popolarità dei diversi produttori e modelli di automobili elettriche basati sui dati disponibili dal Governo dal Canada Statistiche.

È importante notare che questo si basa su un dataset esplorato in precedenza nel mio articolo precedente: Analisi dei veicoli elettrici con R. Se siete interessati a comprendere l’esplorazione iniziale del dataset e la logica dietro le decisioni prese, vi preghiamo di consultarlo per maggiori dettagli. Questo tutorial si concentra sulla costruzione degli script Python dove ad ogni passo seguente gli input iniziali, salveremo l’output di ogni script Python nelle rispettive cartelle, come descritto di seguito:

Immagine dell'autore

La cartella di processo garantisce che il pipeline sia ben organizzato e che siamo in grado di tenere traccia di ogni output del progetto. Passiamo alla costruzione del nostro primo script Python!

Pulizia dei dati

Lo script iniziale nel nostro pipeline segue i passaggi fondamentali della pulizia dei dati, che per questo dataset include: mantenere/ rinominare le colonne pertinenti, rimuovere nulli e/o duplicati, e rendere coerenti i valori dei dati.

Possiamo iniziare specificando le posizioni dei file di input e la destinazione dei file di output. Questo passaggio è importante poiché ci consente di organizzare diverse versioni dei file nello stesso luogo, in questo caso stiamo modificando gli output dei file su base mensile, quindi ogni output del file è separato per mese come indicato alla fine del nome del file 2023_04:

Il codice seguente legge gli input originali in formato .csv e definisce quali colonne vogliamo mantenere. In questo caso, siamo interessati a preservare le informazioni relative al tipo di modelli acquistati e a ignorare le colonne relative alle concessionarie di auto o ad altre colonne non pertinenti.

Ora possiamo accorciare i nomi delle colonne, rimuovendo spazi vuoti iniziali o finali, e aggiungere trattini bassi per una maggiore comprensione.

Successivamente, dopo aver verificato che ci sono solo pochi valori nulli nel dataset, rimuoveremo i dati nulli con la funzione .dropna. A questo punto, vorremmo anche rimuovere i duplicati, ma nel caso di questo particolare dataset non lo faremo. Questo perché c’è una quantità sostanziale di informazioni ripetute e, in assenza di identificatori di riga, la rimozione dei duplicati comporterebbe una perdita di dati.

L’ultimo passaggio finale è quello di salvare i nostri dati come file .csv in una posizione appropriata della cartella clean_data della nostra directory condivisa.

Notate come abbiamo fatto riferimento al file usando __file__ e specificato la directory del file usando i comandi bash dove ../ indica la cartella precedente. Questo conclude il nostro script di pulizia dei dati. Ora passiamo alla fase di elaborazione dei dati!

L’accesso al codice di lavoro completo e agli script assemblati si trova nel mio repository Github qui.

Elaborazione dei dati per le visualizzazioni

Rivediamo gli obiettivi delle visualizzazioni che stiamo cercando di raggiungere, che mirano a evidenziare i cambiamenti di popolarità dei veicoli elettrici registrati. Per mostrare efficacemente questo, vogliamo che il nostro dataset pronto per Tableau includa le seguenti caratteristiche, che coderemo:

  • Conteggio assoluto dei veicoli per anno
  • Conteggio proporzionale dei veicoli per anno
  • Maggiori aumenti e diminuzioni dei veicoli registrati
  • Classifica dei veicoli registrati
  • Classifica dei veicoli registrati precedente per il confronto

In base alle visualizzazioni che si desidera produrre, la creazione delle colonne ideali può essere un processo iterativo. Nel mio caso, ho incluso l’ultima colonna dopo aver sviluppato le visualizzazioni, poiché sapevo che volevo fornire allo spettatore un confronto visivo delle differenze di classificazione, quindi lo script Python è stato adattato di conseguenza.

Per il codice seguente ci concentreremo sul dataset aggregato del modello poiché l’altro dataset per i marchi è molto simile. Definiamo prima il nostro inputfile e outputfile:

Notate come abbiamo fatto riferimento all’inputfile dalla cartella clean_data, che è stata l’uscita del nostro script di pulizia dei dati.

Il codice seguente legge i dati e crea un frame di dati dei conteggi aggregati per Vehicle_Make_and_Model e Calendar_Year:

La funzione pivot funziona in modo simile alla funzione della tabella pivot in Excel dove prende ciascuno dei valori in Calendar_Year come input di colonna.

Successivamente lo script utilizza un ciclo For per creare gli input per_1K. Ciò calcola le proporzioni di ogni modello per poter comparare ogni modello sulla stessa scala e crea una colonna per ogni anno:

Calcolando le proporzioni per anno possiamo calcolare i maggiori aumenti e diminuzioni di ciascun modello dall’inizio del dataset nel 2019 fino all’ultimo anno completo dei dati nel 2022.

Qui, la funzione melt viene utilizzata per riposizionare le colonne separate di per_1K per anno in righe, in modo che abbiamo solo una colonna per per_1K e i relativi valori.

Il codice sottostante ci consente di unire i conteggi assoluti e gli altri calcoli appena creati.

Ora possiamo creare la colonna rank utilizzando i conteggi delle licenze e ordinare questi valori per Vehicle_Make_and_Model e Calendar_Year.

L’ultima colonna da creare è la colonna previous_rank utilizzando la funzione shift.

Infine siamo in grado di salvare l’output nella cartella clean_model nel nostro pipeline, fornendoci un insieme di dati visualmente pronti.

Come promemoria, il codice completo dello script python, incluso quello per l’insieme di dati elaborato clean_brand, può essere trovato sul mio repository GitHub qui.

Trasformare i file di dati finali in formati file .hyper

Il passo finale nel nostro pipeline è relativamente semplice poiché tutto ciò che ci resta da fare è convertire i file elaborati .csv che abbiamo creato in formati file .hyper. Ciò dovrebbe essere relativamente facile purché abbiate scaricato la libreria pantab come indicato in precedenza.

Vale la pena menzionare che in Tableau i dati connessi possono avere una connessione live o essere estratti. Una connessione live garantisce un flusso continuo di dati, con gli aggiornamenti provenienti dalla fonte riflessi quasi immediatamente in Tableau. I dati estratti implicano che Tableau crea un file locale con estensione .hyper che contiene una copia dei dati (una descrizione dettagliata delle fonti di dati può essere trovata qui). Il suo principale vantaggio è la sua capacità di caricamento veloce in cui Tableau può accedere e presentare le informazioni in modo più efficiente, il che è particolarmente vantaggioso con grandi dataset.

Il codice per gli script di conversione del file hyper inizia caricando i pacchetti pandas e pantab, seguito dalla lettura dell’insieme di dati cleaned_model di cui avresti bisogno per Tableau.

L’ultima riga di codice utilizza la funzione frame_to_hyper che produce i file .hyper e salva questo nella cartella hyper.

Come ultimo passaggio, possiamo facilmente caricare i file di formato .hyper in Tableau aprendo un nuovo foglio di lavoro, e nella sezione seleziona un file puoi scegliere il file che desideri caricare selezionando altro. Quando carichiamo il nostro file ev_vehicle_models.hyper, dovrebbe apparire come un estratto Tableau come nella schermata di cui sotto, dove i tuoi dati sono pronti per costruire le tue visualizzazioni!

Pensieri finali

Incorporando una pianificazione oculata nelle tue visualizzazioni, puoi semplificare la manutenzione dei tuoi dashboard attraverso la creazione di un semplice data pipeline. Non preoccuparti se non hai le risorse; i programmi di codifica open-source come Python offrono potenti capacità. Come promemoria finale e amichevole, per accedere agli script Python, controlla il mio repository GitHub qui.

Tutte le immagini, a meno che diversamente indicato, sono dell’autore.

Riferimenti

  1. Salesforce, Tableau Hyper API, 2023
  2. R.Vickery, A Data Scientists Guide to Python Virtual Environments, Jan 2021
  3. K.Flerlage, Tableau Data Sources Part 1: Data Source Types, Jul 2022