Hitta det andra datumet med Tableau Prep

Ett vanligt behov vid analys är att hitta det datum då en andra händelse inträffar, exempelvis när en kund gör ett andra köp och därmed blir en återkommande kund, eller när en förare får en andra fortkörningsbot. Att hitta datum för den första händelsen är enkelt, det är helt enkelt det minsta datumet. Men att hitta det andra datumet är klurigare.

I den här självstudien i två delar så ska få forma data om trafiköverträdelser för att besvara följande frågor:

  1. Hur lång tid i dagar förflöt mellan den första och den andra överträdelsen för respektive förare?

  2. Jämför bötesbeloppen för den första och den andra överträdelsen. Är de korrelerade?

  3. Vilken förare betalade mest totalt? Vem betalade minst?

  4. Hur många förare stod för flera typer av överträdelser?

  5. Vad var det genomsnittliga bötesbeloppet för förare som aldrig gått i körskola?

I det första steget ska vi använda oss av Tableau Prep Builder och strukturera om data för vår analys. I den andra delen Analys med det andra datumet i Tableau Desktop, går vi vidare till analys Tableau Desktop.

Målet med denna handledning är att presentera olika begrepp inom ramen för ett verkligt scenario och att testa olika alternativ – inte att föreskriva något som det bästa. I slutändan bör du ha fått en bättre känsla av hur datastrukturen påverkar beräkningar och analyser, samt större kännedom om olika aspekter av Tableau Prep och beräkningar i Tableau Desktop.

Obs! För att slutföra aktiviteterna i den här självstudien behöver du Tableau Prep Builder (installerad via webbläsaren) och de nedladdade data. För den andra delen behöver du även ha Tableau Desktop installerat.

Datauppsättningen är Traffic Violations.xlsx. Vi rekommenderar att du sparar den i din Min Tableau Prep-lagringsplats > Datakällor-mapp.

Om du vill installera Tableau Prep Builder och Tableau Desktop innan du fortsätter med den här självstudien kan du se Driftsättningsguide för Tableau Desktop och Tableau Prep(Länken öppnas i ett nytt fönster). Du kan även ladda ned kostnadsfria utvärderingsversioner av Tableau Prep(Länken öppnas i ett nytt fönster) och Tableau Desktop(Länken öppnas i ett nytt fönster).

Data

I det här exemplet tittar vi på data om trafiköverträdelser. Varje överträdelse finns på en rad. Förare, datum, typ av överträdelse, om föraren behövde gå i körskola och bötesbelopp finns med.

Förhandsgranskning av datauppsättningen Trafiköverträdelser

Önskad datastruktur

För tillfället är data strukturerade så att varje överträdelse finns på en rad. En förare med flera överträdelser förekommer på flera rader och det finns inget smidigt sätt att se vilken som var deras första eller andra överträdelse.

För att utreda upprepade trafikförbrytare så vill vi ha en datauppsättning som skiljer ut datumen för första och andra trafiköverträdelsen samt den information som finns associerad med de överträdelserna, och varje rad är en förare.

Förhandsgranskning av den önskade datastrukturen

Strukturera om data

Så hur tar vi oss dit med Tableau Prep? Vi skapar flödet i stadier där vi börjar med att ta fram datumet för den första överträdelsen, därefter den andra och därefter formar vi den slutliga datauppsättningen som vi vill ha den. Se till att du laddat ner Excel-filen (Traffic Violations.xlsx) för att följa med.

Initial aggregering för första överträdelsedatum

Först ska vi ansluta till filen Traffic Violations.xlsx.

  1. Öppna Tableau Prep Builder.

  2. Klicka på Anslut till data på startskärmen.

  3. I rutan Anslutningar klickar du på Microsoft Excel. Gå till platsen där du sparade Traffic Violations.xlsx och klicka på Öppna.

  4. Bladet Överträdelser borde automatiskt tas fram till rutan Flöde.

  5. Mer information om hur man ansluter till data finns i Anslut till data.

Därefter behöver vi identifiera det första överträdelsedatumet per förare. Vi använder ett Aggregeringssteg för att göra det här och skapar en minidatauppsättning med Förar-ID och Minsta överträdelsedatum.

När du använder ett aggregeringssteg i Tableau Prep är alla fält som ska definiera vad som utgör en rad ett Grupperat fält. (För oss är det Förar-ID.) Alla fält som ska aggregeras och presenteras på de grupperade fältens nivå är ett Aggregerat fält. (För oss är det Överträdelsedatum).

  1. I rutan Flöde väljer du Överträdelser, klickar på plusikonen och väljer Aggregera.

  2. Dra Förar-ID till området Grupperade fält.

  3. Dra Överträdelsedatum till området Aggregerade fält. Standardaggregeringen är CNT(antal). Klicka på CNT och ändra aggregeringen till Minimum.

    Aggregeringsstegets konfigurationsfönster visar korrekt layout med fält

    Det här identifierar det minsta (tidigaste) datumet, vilket är det första överträdelsedatumet per förare.

Mer information om aggregeringar finns i Rensa och forma data.

  1. I Flöde-rutan väljer du Aggregera 1, klickar på plusikonen och väljer Rensningssteg så att vi kan resan upp utdata för aggregeringen.

  2. I rutan Profil dubbelklickar du på fältnamnet Överträdelsedatum och ändrar det till Första överträdelsedatum.

I det här skedet bör rutorna Flöde och Profil se ut så här:

Visualisering av flödet med tre steg

Från rutan Profil i det här rensningssteget kan vi se att våra data nu består av 39 rader och bara 2 fält. Alla fält som inte används för gruppering eller aggregering försvinner. Men vi vill kunna behålla något av den ursprungliga informationen. Vi skulle antingen kunna lägga till de fälten i grupperingen eller aggregeringen (men det skulle ändra detaljnivån eller kräva att de fälten aggregerades), eller koppla tillbaka den här minidatauppsättningen till den ursprungliga (i princip lägga till en ny kolumn till de ursprungliga data för Första överträdelsedatum). Vi utför kopplingen.

  1. Välj Överträdelser i rutan Flöde, klicka på plusikonen och välj Rensningssteg.

    Se till att du för muspekaren direkt över Överträdelser-steget, inte linjen mellan det och Aggregeringssteget. Om det nya Rensningssteget infogas mellan de två i stället för som en gren så kan du använda ångra-pilen i verktygsfältet och försöka igen. I menyn ska det stå Lägg till inte Infoga.

Det här grenar ditt flöde med alla ursprungliga data. Vi kopplar resultaten från aggregeringen till den här kopian av de fullständiga data. Genom att koppla på Förar-ID så lägger vi till minsta datum från vår aggregering till de ursprungliga data.

  1. Välj steg Rensa 2, dra det ovanpå steget Rensa 1 och släpp det på Koppla.

  2. Standardkopplingskonfigurationen ska vara korrekt: en inre koppling på Förar-ID = Förar-ID.

  3. Mer information om kopplingar finns i Koppla dina data.

Eftersom vissa fält kan komma att dupliceras under en koppling, exempelvis fälten i kopplingssatsen, så är det en bra idé att rensa upp överflödiga fält efter att du utfört en koppling.

  1. Välj Koppling 1 i rutan Flöde, klicka på plusikonen och välj Rensningssteg.

  2. I Profil-rutan högerklickar du, eller Ctrl-klickar (MacOS) på kortet för Förar-ID-1 och väljer Ta bort.

  3. Ändra fältordningen genom att dra kortet Första överträdelsedatum mellan Förar-ID och Överträdelsedatum där den svarta linjen visar sig.

I detta skede bör flödet se ut så här:

Visualisering av flödet med sex steg

Om du tittar på datarutnätet nedan ser du vår nya kombinerade datauppsättning. Vi har ett minsta, det vill säga första, överträdelsedatum för varje förare tillagt i varje rad i datauppsättningen.

Förhandsgranska data med Första överträdelsedatum-fältet

Andra aggregering för andra överträdelsedatum

Vi behöver även fastställa andra överträdelsedatum. För att göra det behöver vi filtrera bort alla rader där överträdelsedatum är lika med minsta, vilket då tar bort det första datumet. Vi kan därefter ta det minsta av de kvarvarande datumen med hjälp av ett andra aggregeringssteg, vilket ger oss det andra överträdelsedatumet som vi byter namn på för tydlighet.

Obs! Eftersom vi vill använda data som det för tillfället är i Rensning 3 senare i flödet så lägger vi till ett Rensningssteg för att få det andra överträdelsedatumet. Det här lämnar aktuell status för dat i Rensning 3 tillgänglig för senare.

  1. Välj Rensa 3 i rutan Flöde, klicka på plusikonen och välj Rensningssteg.

  2. I verktygsfältet i Profil-rutan väljer du Filtrera värden. Skapa ett filter [Infraction Date] != [1st Infraction Date].

  3. Ta bort fältet Första överträdelsedatum.

  4. Välj Rensa 4 i rutan Flöde, klicka på plusikonen och välj Aggregera.

  5. Dra Förar-ID till området Grupperade fält. Dra Överträdelsedatum till området Aggregerade fält och ändra aggeringen till Minimum.

  6. Välj Aggregera 2 i rutan Flöde, klicka på plusikonen och välj Rensningssteg. Byt namn på Överträdelsedatum till Andra överträdelsedatum.

I detta skede bör flödet se ut så här:

Vy av flödet med nio steg

Nu har vi vårt andra överträdelsedatum identifierat för varje förare. För att få all annan information associerad med varje överträdelser (typ, bot, körskola) så behöver vi koppla tillbaka det här till den fullständiga datauppsättningen.

  1. Välj Rensa 5, dra det ovanpå Rensa 3 och släpp det på Koppla.

  2. Återigen borde standardkopplingskonfigurationen vara korrekt: en inre koppling på Förar-ID = Förar-ID.

  3. I Rutan Flöde väljer du Koppling 2, klickar på plusikonen och välj Rensningssteget. Ta bort fälten Förar-ID-1 och Första överträdelsedatum eftersom de inte längre behövs.

I detta skede bör flödet se ut så här:

Vy av flödet med elva steg

Skapa fullständiga datauppsättningar för första och andra överträdelser

Innan vi går vidare kan vi ta ett steg tillbaka och tänka över allt vi har och hur vi vill föra det samman på bästa sätt. Vårt önskade sluttillstånd är en datauppsättning som ser ut så här, med en kolumn för Förar-ID och därefter kolumner för datum, typ, körskola och bötesbelopp för första och andra överträdelsen.

Förhandsgranskning av önskad datastruktur

Hur tar vi oss dit från där vi är?

I steget Rensning 3 har vi vår fullständiga datauppsättning med en kolumn som upprepar det första överträdelsedatumet för varje förare.

Datarutnätsvy för steget Rensa 3

Vi vill eliminera alla rader för en förare som inte är första överträdelsen och skapa en datauppsättning med endast första överträdelser. Det vill säga, vi vill endast behålla information för en given förare när Första överträdelsedatum = Överträdelsedatum. När vi filtrerat så vi endast behåller raden för den första överträdelsen så kan vi ta bort fältet Överträdelsedatum och snygga till fältnamnen.

Efter den andra aggregeringen och kopplingen har vi på liknande sätt vår fullständig datauppsättning med en kolumn för det andra överträdelsedatumet.

Datarutnätsvy för steget Rensa 6

Vi kan utföra en liknande filtrering av Andra överträdelsedatum = Överträdelsedatum för att endast behålla raden med information om varje förares andra överträdelse. Återigen kan vi även ta bort det nu överflödiga Överträdelsedatum och snygga till fältnamnen.

Vi börjar med den första datauppsättningen för överträdelser.

  1. Välj Rensa 3 i rutan Flöde, klicka på plusikonen och välj Rensningssteg.

    Precis som i steg 10 ovan vill vi lägga till en gren för det nya rensningssteget, inte infoga det mellan Rensning 3 och Rensning 4.

  2. Med det här nya Rensningssteget markerat i Rutan Profil klickar du på Filtrera värden i verktygspanelen. Skapa ett filter [1st Infraction Date] = [Infraction Date].

  3. Ta bort fältet Överträdelsedatum.

  4. Byt namn på fälten Överträdelsetyp, Körskola och Bötesbelopp så att de börjar med ”1:a”.

  5. Dubbelklicka på namnet Rensning 7 under steget i Rutan Flöde och byter namn på det till Robust första.

Nu är det dags för den andra datauppsättningen för överträdelser.

  1. Välj Rensning 6 i rutan Flöde, efter den sista kopplingen.

  2. Klicka på Filtrera värden i verktygsfältet. Skapa ett filter [2nd Infraction Date] = [Infraction Date].

  3. Ta bort fältet Överträdelsedatum.

  4. Byt namn på fälten Överträdelsetyp, Körskola och Bötesbelopp så att de börjar med ”2:a”.

  5. Dubbelklicka på namnet Rensning 6 under steget i rutan Flöde och byter namn på det till Robust andra.

I detta skede bör flödet se ut så här:

Vy av rutan Flöde med 12 steg

Skapa den fullständiga datauppsättningen

Nu när vi fått de här två fina datauppsättningarna med fullständig information om den första och andra överträdelsen per förare så kan vi koppla ihop dem igen efter Förar-ID så vi får vår önskade datastruktur.

  1. Välj Robust andra, dra den ovanpå Robust första och släpp det på Koppla.

  2. Standardkopplingssatsen bör vara korrekt som Förar-ID = Förar-ID.

  3. Eftersom vi inte vill släppa förare som inte har en andra överträdelse så behöver vi skapa det här som en vänster koppling. I området Kopplingstyp klickar du på det ej skuggade området i diagrammet bredvid Robust första och gör den till en Vänster koppling.

  4. Välj Koppling 3 i rutan Flöde, klicka på plusikonen och välj Rensningssteg. Ta bort fältdubletten Driver ID-1.

Data är i önskat tillstånd så vi kan skapa utdata och gå vidare till analys.

  1. I rutan Flöde väljer du den nyligen skapade Rensa 6, klickar på plusikonen och väljer Lägg till utdata.

  2. Ändra Utdatatyp till .csv i rutan Utdata och klicka sedan på Bläddra. Ange Föraröverträdelser för namnet och välj önskad plats innan du klickar på Acceptera för att spara.

  3. Klicka på knappen Kör flöde längst ner på rutan för att generera dina utdata. Stäng dialogrutan genom att klicka på Klar i statusdialogrutan.

Tips: Mer information om utdata och flödeskörning finns i Spara och dela ditt arbete.

Det slutliga flödet bör se ut så här:

Slutlig vi av det färdiga flödet

Obs! Du kan ladda ner den färdiga flödesfilen för att kontrollera ditt arbete: Driver Infractions.tflx

Sammanfattning

I det första steget av den här självstudien var målet att ta vår ursprungliga datauppsättning och förbereda den för analys med de första och andra överträdelsedatumen. Den här processen består av tre faser: 

Identifiera första och andra överträdelsedatum:

  1. Skapa en aggregering som behåller Förar-ID och MIN Överträdelsedatum. Koppla det här med den ursprungliga datauppsättningen för att skapa en ”mellanliggande datauppsättning” som har det första (minsta) överträdelsedatumet upprepat för varje rad.

  2. I ett nytt steg filtrera bort alla rader där Första överträdelsedatum är samma som Överträdelsedatum. Skapa en aggregering från den filtrerade datauppsättningen som behåller Förar-ID och MIN Överträdelsedatum. Koppla det här med den mellanliggande datauppsättningen från det första steget. Det här identifierar det andra överträdelsedatumet.

Skapa rena datauppsättningar för de första och andra överträdelserna:

  1. Gå tillbaka och skapa en gren från den mellanliggande datauppsättningen och filtrera för att endast behålla rader där Första överträdelsedatum är samma som Överträdelsedatum. Det här skapar en datauppsättning för endast den första överträdelsen. Snygga till den genom att ta bort onödiga fält och byta namn på alla önskade fält (förutom Förar-ID) för att indikera att de gäller den första överträdelsen. Detta är datauppsättningen Robust första.

  2. Snygga till datauppsättningen för det andra överträdelsedatumet. Rensa kopplingsresultatet från steg 2 genom att filtrera för att endast behålla rader där Andra överträdelsedatum är samma som Överträdelsedatum. Ta bort onödiga fält och byta namn på alla önskade fält (förutom Förar-ID) för att indikera att de gäller den andra överträdelsen. Detta är datauppsättningen Robust andra.

Kombinera data från första och andra överträdelsen till en datauppsättning:

  1. Koppla datauppsättningarna Robust första och Robust andra och se till att behålla alla poster från Robust första för att förhindra att förare utan en andra överträdelse går förlorade.

Härnäst ska vi utforska hur dessa data kan analyseras i Tableau Desktop.

Fortsätt till Analys med det andra datumet i Tableau Desktop.

Obs! Ett särskilt tack till Ann Jacksons Workout Wednesday-ämne Lägger kunderna ut mer på sina första eller andra köp?(Länken öppnas i ett nytt fönster) och Andy Kriebels Tableau Prep-tips Returnera datum för första och andra inköp(Länken öppnas i ett nytt fönster), vilka inspirerade till den här handledningen. Om du klickar på de här länkarna kommer du att lämna Tableaus webbplats. Vad gäller sidor som underhålls av externa parter kan Tableau inte ta ansvar för riktigheten på dessa sidor eller garantera att de är uppdaterade. Kontakta ägarna om du har frågor om deras innehåll.

Tack för din feedback!Din feedback har skickats in. Tack!