Doppelte Knoten werden verwendet, um doppelte Datensätze in SPSS Modeler zu erfassen. Ich werde diesen doppelten Knoten erklären und ihn mit Python-Pandas neu schreiben.
Doppelte Knoten können auch verwendet werden, um vollständig doppelte Datensätze buchstäblich zu löschen. Wenn sie jedoch in Modeler verwendet werden, werden sie meiner Meinung nach häufig verwendet, um den ersten Datensatz in einer Gruppe abzurufen.
Daher werden wir hier die Verwendung der POS-Daten mit ID in den folgenden beiden Anwendungsfällen erläutern. ① Identifizieren Sie den ersten gekauften Artikel (2) Identifizierung des meistverkauften Artikels in der Produktkategorie
Führen Sie die folgenden POS-Daten mit ID durch. Wir verwenden ID-angehängte POS-Daten, die aufzeichnen, wer (CUSTID) wann (SDATE) und was (PRODUCTID, L_CLASS-Produkthauptklassifizierung, M_CLASS-Produktmittelklassifizierung) und wie viel (SUBTOTAL) gekauft hat.
Es gibt 28.599 Fälle in 6 Feldern.
Manchmal gibt Ihnen der erste Kauf eine Vorstellung davon, was Sie danach kaufen. Wenn Sie die Merkmale des Produkts erkennen können, dass die Person, die das erste Produkt gekauft hat, wahrscheinlich ein guter Kunde ist und die Person, die ein bestimmtes Produkt gekauft hat, wahrscheinlich ohne einen zweiten Kauf abreist, das Produkt, das wahrscheinlich ein guter Kunde ist Sie können an Maßnahmen wie die prominente Zuordnung von Regalen und die Platzierung von Bannern denken.
Extrahieren wir die erste Kauftransaktion für jede CUSTID aus den Daten des POS mit ID.
Stellen Sie den Modus des doppelten Datensatzknotens auf "Nur den ersten Datensatz in jede Gruppe einschließen" ein. Das Schlüsselfeld für die Gruppierung sollte nur CUSTID sein. Dadurch wird nur ein Datensatz für eine CUSTID extrahiert. Geben Sie SDATE in aufsteigender Reihenfolge unter "Datensätze in Gruppe sortieren" an. Dadurch wird die älteste Transaktion für jede CUSTID ausgewählt.
Das Ergebnis ist wie folgt. Die erste Person mit CUSTID 100001 war BAG01 9937845.
Verwenden Sie die Funktionen sort_values und drop_duplicates, um doppelte Zeilen in Pandas zu einer Zeile zu kombinieren. Sortieren Sie zunächst nach "CUSTID" in sort_values in SDATE-Reihenfolge. Dann extrahiert drop_duplicates nur die erste Zeile für jede CUSTID. Es geht darum, Duplikate nur mit "CUSTID" in der Teilmenge zu erkennen.
#Sortieren nach CUSTID und SDATE
df_sorted=df.sort_values(['CUSTID','SDATE'])
#Extrahieren Sie die erste Zeile für jede CUSTID
df_sorted.drop_duplicates(subset='CUSTID')
Doppelte Datensatzknoten werden häufig zusammen mit Datensatzaggregationsknoten verwendet, um die Nummer eins oder den schlechtesten Datensatz in den Aggregationsergebnissen zu extrahieren.
Hier werden wir versuchen, die umsatzstärksten Produkte in den Hauptproduktkategorien BAG, COSMETICS und SHOES zu extrahieren.
Berechnen Sie zunächst die Summe von SUBTOTAL, indem Sie in der Datensatzaggregation nach L_CLASS und PRODUCTID gruppieren.
Der Gesamtumsatz für jedes Produkt wird jetzt berechnet.
Stellen Sie als Nächstes Folgendes auf den doppelten Knoten ein. Stellen Sie den Modus auf "Nur den ersten Datensatz in jede Gruppe aufnehmen". Das Schlüsselfeld für die Gruppierung sollte nur L_CLASS sein. Dadurch wird nur ein Datensatz für eine L_CLASS extrahiert. Geben Sie SUBTOTAL_Sum in aufsteigender Reihenfolge unter "Datensätze in Gruppe sortieren" an. Damit wird für jede L_CLASS das umsatzstärkste Produkt ausgewählt.
Das Ergebnis ist wie folgt. Das meistverkaufte BAG-Produkt war 9900307, das 1.781.615 Yen verkaufte.
Verwenden Sie die Funktionen groupby, sort_values und drop_duplicates, um mit Pandas die Nummer eins aus den aggregierten Ergebnissen zu extrahieren. Der Vorgang ist der gleiche wie bei Verwendung des Aggregationsknotens und des doppelten Datensatzknotens in Modeler.
Gruppieren Sie zunächst nach L_CLASS und PRODUCTID, um die Summe von SUBTOTAL zu berechnen. Als nächstes sortieren Sie nach 'L_CLASS' in sort_values in absteigender Reihenfolge von 'SUBTOTAL'. Dann extrahiert drop_duplicates nur die erste Zeile für jede L_CLASS.
#Berechnung des Gesamtumsatzes nach Hauptklassifizierung und PRODUKT-ID
df_sum=df[['L_CLASS','PRODUCTID','SUBTOTAL']].groupby(['L_CLASS','PRODUCTID'],as_index=False).sum()
#Sortieren nach Verkäufen innerhalb der Hauptkategorien
df_sum_sorted=df_sum.sort_values(['L_CLASS','SUBTOTAL'],ascending=[True,False])
#Extrahieren Sie die erste Zeile der Hauptklassifikation
df_sum_sorted.drop_duplicates(['L_CLASS'])
Ich konnte wie folgt extrahieren.
Die Probe wird unten platziert.
Strom https://github.com/hkwd/200611Modeler2Python/raw/master/distinct/distinct.str notebook https://github.com/hkwd/200611Modeler2Python/blob/master/distinct/distinct.ipynb Daten https://raw.githubusercontent.com/hkwd/200611Modeler2Python/master/data/sampletranDEPT4en2019S.csv
■ Testumgebung Modeler 18.2.1 Windows 10 64bit Python 3.6.9 pandas 0.24.1
Doppelter Datensatzknoten https://www.ibm.com/support/knowledgecenter/ja/SS3RA7_18.2.1/modeler_mainhelp_client_ddita/clementine/distinct_settingstab.html
Recommended Posts