Free Trial

Blog - Deutsch

Erkenntnisse und Ideen von den besten Analytics-Experten.
RolandSchubert
16 - Nebula
16 - Nebula

Das Problem begegnet uns regelmäßig, besonders der Kundenstamm ist ein beliebtes "Opfer": Doppelte Datensätze. Gerade, wenn Stammdaten aus verschiedenen Quellen zusammengeführt werden, gehört meist die Suche nach Dubletten zu den ersten Aufgaben, aber es gibt auch viele andere Fälle, in denen doppelte (oder mehrfache) Datensätze entfernt werden müssen.

 

Natürlich ist das in Alteryx kein Problem, es gibt sogar gleich mehrere Möglichkeiten; einige schauen wir uns an einem kleinen Beispiel an. Dazu verwenden wir die Daten der in den Saisons 2014/15 bis 2021/22 eingesetzten Bundesligaspieler (Quelle: https://www.ligainsider.de/bundesliga).  Im Original sieht das so aus:

 

P01.png

 

Unser Ziel ist, eine Liste aller Spieler zu erzeugen, die in diesem Zeitraum eingesetzt wurden. 

 

Dazu laden wir die Daten je Saison von der Webseite herunter und speichern sie jeweils in einer Datei. Diese Dateien werden dann in Alteryx importiert und ein wenig bereinigt.

 

P03.png 

 

 

Der Blick auf die Spalte mit den Spielernamen verrät, dass manche Spieler in jeder Saison im Einsatz waren, es also zu diesem Namen sieben Datensätze gibt.

 

P04.png

 

Wie entfernen wir nun diese Mehrfacheinträge? 

 

 

Variante 1: Unique Tool

 

Wahrscheinlich fällt vielen als erste Möglichkeit, doppelte Datensätze zu entfernen, das UNIQUE Tool ein. Die Funktionsweise ist dabei ganz einfach - wenn beim Tool ein Datensatz ankommt, dessen "unique" Feld (oder Felder) bei vorhergehenden Datensätzen noch nicht vorgekommen ist (sind), wird dieser an den "U"-Output (= "Unique") geleitet, sonst landet er bei "D" (= "Duplicate").

 

Im Beispiel ist das Feld, an dem die "Eindeutigkeit" festgemacht wird, der Name. Für Aaron Hunt gibt es drei Datensätze, in der Liste der eindeutigen Datensätze (eindeutig bezogen auf den Namen) erscheint der erste (im Beispiel der aus der ersten Saison), die beiden anderen werden als doppelte identifiziert - den Namen gibt es im Ergebnis schon, also werden die Datensätze an den "D"-Output gegeben.  

 

P05.png

 

Das UNIQUE Tool liefert also immer den ersten Eintrag. Was aber, wenn der "aktuellste Wert" interessiert, im Beispiel vielleicht der Verein, für den der Spieler in der jeweils letzten Saison im Einsatz war, also der letzte Wert behalten werden soll? Im konkreten Fall spielt das keine Rolle, aber es gibt sieht manchmal auch ganz anders aus ...

 

P06.png

 

Nun, bei unseren Beispieldaten lässt sich das durch Sortieren regeln - wir müssen nur vorher mit dem SORT Tool nach Namen (aufsteigend) und Saison (absteigend) sortieren, für jeden Spieler mit mehreren Einträgen wird der letzte Datensatz damit zum ersten und damit in die Liste eindeutiger Einträge übernommen. Das UNIQUE Tool wird wieder wie eben gezeigt eingesetzt.

 

Die Voraussetzung ist allerdings, dass es ein Kriterium gibt, nach dem sortiert werden kann. Manchmal gibt es das aber nicht, es muss einfach nur der letzte (= aktuellste) Datensatz behalten werden. In diesem Fall hilft das UNIQUE Tool nicht, aber wir haben ja zum Glück noch andere Möglichkeiten.

 

 

Variante 2: SUMMARIZE Tool

 

Da wäre zum Beispiel das SUMMARIZE Tool. Okay, man denkt bei der Aufgabe "doppelte Datensätze entfernen" vielleicht nicht unbedingt an genau dieses Tool, das doch eher mit dem Summieren von Daten in Verbindung gebracht wird. Tatsächlich kann man damit aber auch den jeweils ersten von möglicherweise mehreren Datensätzen auswählen (wie das UNIQUE Tool), aber eben auch den letzten - und dazu braucht es keine Sortierung,  sondern nur eine kleine Änderung der Einstellungen.

 

Wählen wir das Feld [Name] "Group by" und für alle anderen Felder jeweils "First", so erhalten wir die gleichen Datensätze, die der "U" Output Anchor des UNIQUE Tools liefert. Zwei Ausnahmen gibt es allerdings:

 

  • Es gibt keinen "D" Output Anchor, also keine Ausgabe der "Wiederholungen"
  • Die Feldnamen erhalten das Prefix "First_", das wir erst wieder entfernen müssen

Allerdings können wir hier ganz einfach auch den jeweils letzten Datensatz bekommen, auch wenn es kein Sortierkriterium gibt - einfach als Action "Last" auswählen, damit ist schon alles erledigt.

 

P07.png

 

 

Variante 3: SAMPLE Tool

 

Alternativ können wir auch das SAMPLE Tool nutzen, um doppelte Datensätze zu entfernen. Auch hier haben wir die Wahl, ob der erste oder der letzte Datensatz behalten werden soll; einfach "First N rows" bzw. "Last N rows" wählen, die Anzalh Datensätze auf "1" einstellen und natürlich den Namen als "Group by Column" wählen.

 

P08.png

 

Auch das SAMPLE Tool liefert uns nicht die gefundenen Dubletten, allerdings müssen wir hier auch kein Prefix entfernen.

 

 

Und nur die "einzigartigen" Datensätze?

 

Es gibt also verschiedene Möglichkeiten, doppelte Datensätze zu entfernen und jeweils nur einen Eintrag zu behalten. Mitunter möchte man aber genau die Datensätze finden, die es überhaupt nur einmal gibt - in unserem Beispiel wäre das Spieler, die nur eine Saison in der Bundesliga gespielt haben.

 

Hier ist wohl die Variante, die das UNIQUE Tool verwendet, der eleganteste Weg: Einmalig im Datenbestand sind die Datensätze, für die es keine Dubletten gibt, die also nur beim "U" Output Anchor geliefert werden. Wenn wir ein JOIN Tool verwenden und [Name] als Join Field nutzen, erhalten wir am "L" Output die Datensätze, für die es keine doppelten Sätze gibt. 

 

P09.png 

Auch hier sind andere Wege möglich. Sehr gut nachvollziehbar ist auch der Ansatz, mit dem SUMMARIZE Tool zusätzlich zu zählen, wie oft ein Name vorkommt, und über ein FILTER Tool nur die Sätze mit Count = 1 zu behalten (d.h. die, für die es keine doppelten Sätze gibt).

 

P10.png

 

 

Fazit

 

Für welche der Varianten sollte man sich nun entscheiden? Natürlich hängt es davon ab, ob der jeweils erste Datensatz behalten werden soll (das können alle), oder ob wir den letzten gelieferten Datensatz erwarten und es kein Sortierkriterium gibt (das kann das UNIQUE Tool nicht). Mit dem SUMMARIZE Tool könnten wir gleich noch für jeden Spieler eine Liste der Vereine erzeugen (die Action "Concatenate" hilft dabei weiter) oder Durchschnitte, Summe oder andere Werte berechnen - das kann ja durchaus auch ein Argument sein.

 

Natürlich ist immer die Performance ein Aspekt - für unser Beispiel sieht das so aus, wenn AMP nicht genutzt wird:

 

P11.png

 

Hier ist das SAMPLE Tool der Gewinner. Etwas überraschend ändert sich das Bild, wenn AMP aktiviert wird:

 

P12.png

 

Während SAMPLE und SUMMARIZE damit sogar langsamer werden, profitiert das UNIQUE Tool offensichtlich und liegt mit weitem Abstand vorne. 

 

 

Auch bei der Entfernung doppelter Datensätze gibt es also verschiedene Ansätze mit jeweils anderen Stärken, aber es findet sich wohl immer ein passender Ansatz.

 

 

 

Weitere Tipps Tuesday Beiträge

Dieser Eintrag ist Teil der Tipps Tuesday-Serie, alle Einträge dieser Serie findest du in unserem Index aufgelistet.

Beschriftungen