Trovare la seconda data con Tableau Prep

Un’esigenza comune nell’analisi è quella di determinare la data in cui si verifica un secondo evento, come quando un cliente ha effettuato un secondo acquisto, divenendo in tal modo un cliente abituale, o quando un autista commette una seconda infrazione stradale. Trovare la data di un primo evento è facile, si tratta semplicemente della data minima. Trovare la seconda data è più complicato.

Durante questa esercitazione in due parti, daremo forma ai dati sulle infrazioni stradali e risponderemo alle seguenti domande:

  1. Quanti giorni sono trascorsi tra la prima e la seconda infrazione per ogni conducente?

  2. Confronta gli importi delle sanzioni relative alla prima e alla seconda infrazione. Esiste una relazione tra di esse?

  3. Quale conducente ha pagato di più? Chi ha pagato di meno?

  4. Quanti conducenti hanno commesso più tipi di infrazione?

  5. Qual è stato l’importo medio della sanzione per i conducenti che non hanno mai frequentato la scuola guida?

Nella prima fase, useremo Tableau Prep Builder per ristrutturare i dati per la nostra analisi. Nella seconda fase, Analisi con la seconda data in Tableau Desktop, passeremo all’analisi in Tableau Desktop.

L’obiettivo di questa esercitazione è presentare diversi concetti nel contesto di uno scenario di vita reale e prendere in considerazione più opzioni, stabilendo in modo non prescrittivo quale sia la migliore. Alla fine, avrai una visione completa di come la struttura dei dati influisce su calcoli e analisi, oltre ad aver acquisito maggiore familiarità con diversi aspetti di Tableau Prep e con i calcoli in Tableau Desktop.

Nota: per completare le attività di questa esercitazione, devi disporre di Tableau Prep Builder (installato o tramite il browser) e aver scaricato i dati. Per la seconda parte, avrai anche bisogno di Tableau Desktop installato.

L’insieme di dati è Traffic Violations.xlsx. Ti consigliamo di salvarlo nella cartella Repository personale di Tableau Prep > Origini dati.

Per installare Tableau Prep Builder e Tableau Desktop prima di continuare con questa esercitazione, consulta la Guida alla distribuzione di Tableau Desktop e Tableau Prep(Il collegamento viene aperto in una nuova finestra). Altrimenti puoi scaricare le versioni di prova gratuite di Tableau Prep(Il collegamento viene aperto in una nuova finestra) e Tableau Desktop(Il collegamento viene aperto in una nuova finestra).

Dati

Per questo esempio esamineremo i dati sulle infrazioni stradali. Ogni infrazione è una riga. Il conducente, la data, il tipo di infrazione, se all’autista è stato richiesto di frequentare la scuola guida e l’importo della multa vengono registrati.

Anteprima dell’insieme di dati sulle infrazioni stradali

Struttura dati desiderata

Attualmente i dati sono strutturati in modo che ogni infrazione sia una riga. Un autista con più infrazioni appare in più righe, pertanto non c’è un modo semplice per capire quale sia stata la prima o la seconda infrazione.

Per indagare sui nostri contravventori recidivi, vogliamo un insieme di dati che separi le date della prima e della seconda infrazione, le informazioni associate a ciascuna di queste infrazioni e in cui ogni riga rappresenti un autista.

Anteprima della struttura di dati desiderata

Ristrutturazione dati

Come effettuarla con Tableau Prep? Costruiremo il flusso in più fasi, iniziando con l’estrazione della data della prima infrazione, quindi della seconda e infine modellando l’insieme di dati finali come desiderato. Assicurati di aver scaricato il file Excel (Traffic Violations.xlsx) per proseguire.

Aggregazione iniziale per la data della 1a infrazione

Per prima cosa ci collegheremo al file Traffic Violations.xlsx.

  1. Apri Tableau Prep Builder.

  2. Dalla schermata iniziale, fai clic su Connessione ai dati.

  3. Nel riquadro Connessioni, fai clic su Microsoft Excel. Spostati dove è stato salvato Traffic Violations.xlsx e fai clic su Apri.

  4. Il foglio Infrazioni dovrebbe spostarsi automaticamente nel riquadro di flusso.

  5. Per ulteriori informazioni sulla connessione ai dati, consulta Connettersi ai dati.

Quindi dobbiamo identificare la data della prima infrazione per ogni conducente. Useremo un passaggio di aggregazione per farlo, creando un mini insieme di dati di ID conducente e Data minima di infrazione.

Quando si utilizza un passaggio di aggregazione in Tableau Prep, qualsiasi campo che dovrebbe definire da cosa è composta una riga è un Campo raggruppato. (Nel nostro caso si tratta dell’ID conducente.) Qualsiasi campo che verrà aggregato e presentato al livello dei campi raggruppati è un Campo aggregato. (Nel nostro caso si tratta della Data di infrazione).

  1. Nel riquadro Flusso seleziona Infrazioni, fai clic sull’icona del segno più e seleziona Aggrega.

  2. Trascina l’ID conducente nell’area di rilascio Campi raggruppati.

  3. Trascina la Data di infrazione nell’area Campi aggregati. L’aggregazione predefinita è CNT (conteggio). Fai clic su CNT e imposta l’aggregazione su Minimo.

    Riquadro di configurazione del passaggio Aggrega che mostra il layout corretto dei campi

    In tal modo viene identificata la data più piccola (anteriore), ovvero la data della prima infrazione per ogni conducente.

Per maggiori informazioni sulle aggregazioni, consulta Pulire e dare forma ai dati.

  1. Nel riquadro Flusso seleziona Aggregazione 1, fai clic sull’icona del segno più e seleziona Fase di pulizia in modo da poter ripulire l’output dell’aggregazione.

  2. Nel riquadro di profilo, fai doppio clic sul nome del campo Data di infrazione e cambialo con Data di 1a infrazione.

A questo punto, il flusso e il riquadro del profilo dovrebbero apparire così:

Visuale del flusso con tre fasi

Dal riquadro del profilo di questa fase di pulizia possiamo vedere che adesso i nostri dati sono composti da 39 righe e solo 2 campi. Qualsiasi campo non utilizzato per il raggruppamento o l’aggregazione viene perso. Ma vogliamo essere in grado di conservare alcune delle informazioni originali. Potremmo aggiungere questi campi al raggruppamento o all’aggregazione (ma ciò cambierebbe il livello di dettaglio o richiederebbe l’aggregazione dei campi), oppure eseguire il join di questi mini insiemi di dati a quelli originali (essenzialmente aggiungendo una nuova colonna ai dati originali per la Data di 1a infrazione). Creiamo il join.

  1. Nel riquadro Flusso seleziona Infrazioni, fai clic sull’icona del segno più e seleziona Fase di pulizia.

    Assicurati di posizionare il puntatore del mouse direttamente sulla fase Infrazioni, non sulla linea tra questa e la fase Aggregazione. Se la nuova fase di pulizia viene inserita tra le due anziché come diramazione, utilizza la freccia Annulla nella barra degli strumenti e riprova. Il menu deve indicare Aggiungi, non Inserisci.

Il flusso viene aggiunto come ramo con tutti i dati originali. Eseguiremo il join dei risultati dell’aggregazione con questa copia dei dati completi. Con la creazione del join in ID conducente, aggiungiamo la data minima dell’aggregazione ai dati originali.

  1. Seleziona il passaggio Pulizia 2 e trascinalo in cima al passaggio Pulizia 1, quindi rilascialo su Join.

  2. La configurazione predefinita del join dovrebbe essere corretta: un join interno in ID conducente = ID conducente.

  3. Per maggiori informazioni sui join, consulta Creare un join dei dati.

Poiché alcuni campi possono essere duplicati durante un join, come i campi nella clausola di join, è spesso una buona idea pulire i campi estranei dopo aver eseguito un join.

  1. Nel riquadro Flusso seleziona Join 1, fai clic sull’icona del segno più e seleziona Fase di pulizia.

  2. Nel riquadro Profilo fai clic con il pulsante destro del mouse o Control-clic (MacOS) sulla scheda ID conducente-1 e scegli Rimuovi.

  3. Per modificare l’ordine dei campi, trascina la scheda Data 1a infrazione tra ID conducente e Data infrazione, dove appare la linea nera.

A questo punto, il flusso dovrebbe apparire così:

Visuale del flusso con sei fasi

Osservando la griglia di dati sottostante, possiamo vedere il nostro nuovo insieme di dati combinati. Abbiamo la data minima (prima) di infrazione per ogni conducente aggiunto a ogni riga dell’insieme di dati.

Anteprima dei dati con il campo Data 1a infrazione

Seconda aggregazione per la data della 2a infrazione

Dobbiamo determinare inoltre la data della seconda infrazione. Per fare questo, vogliamo filtrare ogni riga in cui la data di infrazione è uguale a quella minima, eliminando così la prima data. Possiamo quindi prendere il minimo delle date rimanenti utilizzando un altro passaggio aggregato, rimanendo con la data della seconda infrazione, che rinomineremo per chiarezza.

Nota: poiché in seguito vorremo utilizzare nel flusso i dati come sono attualmente in Pulizia 3, aggiungeremo un’altra fase di pulizia per ottenere la data della seconda infrazione. In questo modo lo stato corrente dei dati in Pulizia 3 sarà disponibile in un secondo momento.

  1. Nel riquadro Flusso seleziona Pulizia 3, fai clic sull’icona del segno più e seleziona Fase di pulizia.

  2. Nella barra degli strumenti del riquadro del profilo scegli Filtra valori. Crea un filtro [Infraction Date] != [1st Infraction Date].

  3. Rimuovi il campo Data di 1a infrazione.

  4. Nel riquadro Flusso seleziona Pulizia 4, fai clic sull’icona del segno più e seleziona Aggrega.

  5. Trascina l’ID conducente nell’area di rilascio Campi raggruppati. Trascina Data di infrazione nell’area dei Campi aggregati e imposta l’aggregazione su Minimo.

  6. Nel riquadro Flusso seleziona Aggregazione 2, fai clic sull’icona del segno più e seleziona Fase di pulizia. Rinomina Data di infrazione con Data di 2a infrazione.

A questo punto, il flusso dovrebbe apparire così:

Vista del flusso con nove fasi

Abbiamo identificato la data della seconda infrazione per ogni conducente. Per ottenere tutte le altre informazioni associate a ogni infrazione (tipo, sanzione, scuola guida), abbiamo nuovamente bisogno di creare il join di queste informazioni con l’intero insieme di dati.

  1. Seleziona Pulizia 5 e trascinalo in cima a Pulizia 3, rilasciandolo su Join.

  2. Di nuovo, la configurazione predefinita del join dovrebbe essere corretta: un join interno in ID conducente = ID conducente.

  3. Nel riquadro Flusso seleziona Join 2, fai clic sull’icona del segno più e seleziona Fase di pulizia. Cancella i campi ID conducente-1 e Data di 1a infrazione in quanto non sono più necessari.

A questo punto, il flusso dovrebbe apparire così:

Vista del flusso con undici fasi

Crea insiemi di dati completi per la 1a e la 2a infrazione

Prima di procedere, facciamo un passo indietro e pensiamo a tutti i dati di cui disponiamo e a come vogliamo riunirli. Il nostro stato finale desiderato è un insieme di dati che si presenta in questo modo, con una colonna per l’ID conducente e colonne per data, tipo, scuola guida e importo della sanzione per la 1a e la 2a infrazione.

Anteprima della struttura di dati desiderata

Come effettuare questa operazione?

Nel passaggio Pulizia 3 abbiamo ottenuto il nostro insieme di dati completo con una colonna che ripete la data della prima infrazione per ogni conducente.

Visualizzazione della griglia di dati della fase Pulizia 3

Vogliamo eliminare tutte le righe per conducente che non sono relative alla prima infrazione, creando un insieme di dati di sole prime infrazioni. Ovvero vogliamo conservare le informazioni per un dato conducente solo quando Data di 1a infrazione = Data di infrazione. Una volta che abbiamo applicato un filtro per mantenere solo la riga della prima infrazione, possiamo rimuovere il campo Data di infrazione e riordinare i nomi dei campi.

Allo stesso modo, dopo la seconda aggregazione e il join, disponiamo del nostro insieme di dati completo con una colonna per la data della seconda infrazione.

Visualizzazione della griglia di dati della fase Pulizia 6

Possiamo applicare un filtro simile di Data di 2a infrazione = Data di infrazione per mantenere solo la riga di informazioni per la 2a infrazione di ogni guidatore. Anche in questo caso possiamo rimuovere la Data di infrazione ormai ridondante e riordinare i nomi dei campi.

Inizieremo con l’insieme di dati della prima infrazione.

  1. Nel riquadro Flusso seleziona Pulizia 3, fai clic sull’icona del segno più e seleziona Fase di pulizia.

    Come nel passaggio 10 precedente, vogliamo aggiungere un ramo per la nuova fase di pulizia, non inserirla tra Pulizia 3 e Pulizia 4.

  2. Con questo nuovo passaggio di pulizia selezionato, nel riquadro di profilo fai clic su Filtra valori nella barra degli strumenti. Crea un filtro [1st Infraction Date] = [Infraction Date].

  3. Rimuovi il campo Data di infrazione.

  4. Rinomina i campi Tipo di infrazione, Scuola guida e Importo sanzione in modo che inizino con "1a -".

  5. Fai doppio clic su Pulizia 7 sotto al passaggio nel riquadro di flusso, quindi rinominalo Robust 1st.

Ora procediamo all’insieme di dati della seconda infrazione.

  1. Nel riquadro Flusso seleziona Pulizia 6, dopo l’ultimo join.

  2. Fai clic su Filtra i valori nella barra degli strumenti. Crea un filtro [2nd Infraction Date] = [Infraction Date].

  3. Rimuovi il campo Data di infrazione.

  4. Rinomina i campi Tipo infrazione, Scuola guida e Importo sanzione in modo che inizino con "2a -".

  5. Fai doppio clic su Pulizia 6 sotto il passaggio nel riquadro Flusso, quindi rinominalo Robust 2nd.

A questo punto, il flusso dovrebbe apparire così:

Vista del riquadro di flusso con 12 fasi

Crea l’insieme di dati completo

Ora che abbiamo questi due insiemi di dati ordinati con informazioni complete per la prima e la seconda infrazione per ogni conducente, possiamo eseguire di nuovo il join su ID conducente e ottenere la struttura dei dati desiderata.

  1. Seleziona Robust 2nd e trascinalo in cima a Robust 1st, rilasciandolo su Join.

  2. La clausola predefinita del join dovrebbe essere corretta: ID conducente = ID conducente.

  3. Dato che non vogliamo perdere i conducenti senza una seconda infrazione, dobbiamo renderlo un join sinistra. Nell’area Tipo di join, fai clic sull’area non ombreggiata del digramma accanto a Robust 1st, cambiando il tipo di join in un join a sinistra.

  4. Nel riquadro Flusso seleziona Join 3, fai clic sull’icona del segno più e seleziona Fase di pulizia. Rimuovi il campo duplicato ID conducente-1.

I dati sono nello stato desiderato, in modo da poter creare un output e procedere all’analisi.

  1. Nel riquadro Flusso seleziona il passaggio Pulizia 6 recentemente aggiunto, fai clic sull’icona del segno più e seleziona Aggiungi output.

  2. Nel riquadro Output, modifica il Tipo di output in .csv, quindi fai clic su Sfoglia. Immetti Infrazioni del conducente come nome e scegli la posizione desiderata prima di fare clic su Accetta per salvare.

  3. Fai clic sul pulsante Esegui flusso nella parte inferiore del riquadro per generare l’output. Fai clic su Fine nella finestra di dialogo di stato per chiuderla.

Suggerimento: per ulteriori informazioni sugli output e sull’esecuzione di un flusso, consulta Salvare e condividere il lavoro.

Il flusso finale dovrebbe apparire così:

Vista finale del flusso completo

Nota: è possibile scaricare il file di flusso completato per controllare il proprio lavoro (Driver Infractions.tflx)

Per la prima fase di questa esercitazione, il nostro obiettivo era quello di prendere il nostro insieme di dati originale e prepararlo per l’analisi delle date della prima e della seconda infrazione. Il processo si compone di tre fasi: 

Identificare le date della prima e della seconda infrazione:

  1. Crea un’aggregazione che mantenga l’ID conducente e la Data di infrazione minima. Esegui il join con l’insieme di dati originali per creare un "insieme di dati intermedi" in cui la prima (minima) data di infrazione è ripetuta per ogni riga.

  2. In un nuovo passaggio, filtra tutte le righe in cui la Data di 1a infrazione è uguale alla Data di infrazione. Dall’insieme di dati filtrati, crea un’aggregazione che mantenga l’ID conducente e la Data di infrazione minima. Esegui il join con l’insieme di dati intermedio del primo passaggio. Questo identifica la data della seconda infrazione.

Crea insiemi di dati puliti per la prima e la seconda infrazione:

  1. Torna indietro e crea un ramo dall’insieme di dati intermedi e filtrali per mantenere solo le righe in cui la Data di 1a infrazione è uguale alla Data di infrazione. Questo crea un insieme di dati esclusivo per la prima infrazione. Effettua la pulizia rimuovendo tutti i campi non necessari e rinomina tutti i campi desiderati (tranne ID conducente) per indicare che sono per la prima infrazione. Questo è l’insieme di dati Robust 1st.

  2. Riordina l’insieme di dati per la data della seconda infrazione. Pulisci i risultati del join del passaggio 2 applicando un filtro per mantenere solo le righe in cui la Data di 2a infrazione è uguale alla Data di infrazione. Rimuovi tutti i campi non necessari e rinomina tutti i campi desiderati (tranne ID conducente) per indicare che sono per la seconda infrazione. Questo è l’insieme di dati Robust 2nd.

Combina i dati della prima e della seconda infrazione in un unico insieme di dati:

  1. Esegui il join degli insiemi di dati Robust 1st e Robust 2nd, assicurandoti di mantenere tutti i record di Robust 1st per evitare di perdere i conducenti senza una seconda infrazione.

Come operazione successiva vogliamo esplorare il modo in cui questi dati possono essere analizzati in Tableau Desktop.

Prosegui su Analisi con la seconda data in Tableau Desktop.

Nota: un ringraziamento speciale ad Ann Jackson per l’articolo pubblicato su Workout Wednesday Do Customers Spend More on Their First or Second Purchase?(Il collegamento viene aperto in una nuova finestra) e al suggerimento di Andy Kriebel riguardo a Tableau Prep Returning the First and Second Purchase Dates(Il collegamento viene aperto in una nuova finestra), che sono stati fonte di ispirazione per questa esercitazione. Facendo clic su questi link, uscirai dal sito Web di Tableau. Tableau non si assume alcuna responsabilità per l’accuratezza o l’aggiornamento delle pagine gestite da fornitori esterni. Contatta i proprietari se hai domande sul loro contenuto.

Grazie per il tuo feedback.Il tuo feedback è stato inviato. Grazie!