---
Jetzt werden wir über die beliebteste Art der Kohortenanalyse lernen - Zeitkohorten. Wir segmentieren Kunden in Akquisekohorten basierend auf dem Monat, in dem sie ihren ersten Kauf getätigt haben. Dann weisen wir jedem Kauf des Kunden den Kohortenindex zu. Dieser repräsentiert die Anzahl der Monate seit der ersten Transaktion.
Zeitbasierte Kohorten gruppieren Kunden nach dem Zeitpunkt, an dem sie ihre erste Aktivität abgeschlossen haben.
In dieser Lektion werden wir Kunden in Kohorten basierend auf dem Monat ihres ersten Kaufs gruppieren. Dann markieren wir jede Transaktion basierend auf ihrem relativen Zeitraum seit dem ersten Kauf. In diesem Beispiel berechnen wir die Anzahl der Monate seit der Akquisition. Im nächsten Schritt berechnen wir Kennzahlen wie Retention oder durchschnittlichen Ausgabenwert und erstellen diese Heatmap.
Zum Beispiel bedeutet diese Zahl, dass 24% der Kohorte, die sich im August 2011 angemeldet hat, 4 Monate später aktiv waren.
Die erste Spalte hier ist der Monat des ersten Kaufs, daher beträgt die Retentionsrate 100%. Das ist definitionsgemäß so, da Kunden in diesem Monat aktiv sein mussten, um dieser Kohorte zugeordnet zu werden.
Ein bisschen zu den Daten. Wir verwenden eine 20% Zufallsstichprobe aus einem Online-Einzelhandelsdatensatz mit einer halben Million Transaktionen.
Dies ist ein realistischer Datensatz mit Kunden Transaktionen, der häufig in der Segmentierung verwendet wird.
Schauen wir uns die ersten 5 Zeilen davon an.
Die Daten enthalten 7 Spalten mit Kunden Transaktionen. Die Hauptspalten, die wir verwenden werden, sind Datum, Preis und die Kunden-ID.
Jetzt, da wir die Daten geladen haben, lassen Sie uns eine einfache Kohortentabelle für zeitbasierte Kohorten erstellen.
Zuerst erstellen wir eine Funktion, die ein gegebenes Datumsobjekt auf den ersten Tag des Monats truncates.
Dann wenden wir es auf das Rechnungsdatum an und erstellen eine Rechnungsmonat-Spalte.
Als nächstes erstellen wir ein groupby()-Objekt mit der Kunden-ID und verwenden die Rechnungsmonat-Spalte für weitere Manipulationen.
Schließlich verwenden wir transform() zusammen mit einer min()-Funktion, um den kleinsten Rechnungsmonatwert jedem Kunden zuzuweisen. Damit haben wir den Akquisemonat der Kohorte jedem Kunden zugewiesen.
Schauen wir uns die Daten an. Wir haben zwei Spalten hinzugefügt - Rechnungsmonat und Kohortenmonat. Jetzt berechnen wir den Zeitversatz!
Bevor wir den Zeitversatz berechnen können, erstellen wir zuerst eine Hilfsfunktion, die die ganzzahligen Werte von Jahr, Monat und Tag aus einem datetime()-Objekt extrahiert.
Jetzt werden wir die Anzahl der Monate zwischen jeder Transaktion und der ersten Transaktion für jeden Kunden berechnen. Wir verwenden die Werte von Rechnungsmonat und Kohortenmonat, um dies zu tun.
Wir beginnen damit, zwei Objekte mit ganzzahligen Werten für Jahr und Monat aus den Variablen Rechnungsmonat und Kohortenmonat zu erstellen. Dann berechnen wir die Unterschiede in Jahren und Monaten zwischen ihnen.
Schließlich konvertieren wir den gesamten Unterschied in Monate, indem wir den Jahresunterschied mit 12 multiplizieren und sie zusammenaddieren.
Sie sehen, dass am Ende ein "+1" steht. Wir tun dies, damit der erste Monat als 1 und nicht als 0 markiert wird, um die Interpretation zu erleichtern.
Sie sehen, dass die neue Spalte hinzugefügt wurde. Jetzt ziehen wir einige Kennzahlen!
Jetzt werden wir die Anzahl der monatlich aktiven Kunden in jeder Kohorte berechnen.
Zuerst erstellen wir ein groupby-Objekt mit Kohortenmonat und Kohortenindex.
Dann zählen wir die Anzahl der Kunden in jeder Gruppe, indem wir die pandas nunique()-Funktion anwenden.
Dann setzen wir den Index zurück und erstellen ein pandas-Pivot mit Kohortenmonat in den Zeilen, Kohortenindex in den Spalten und Kunden-ID-Zählungen als Werte.
Lassen Sie uns einen Blick auf unsere Tabelle werfen.
Das ist das Ergebnis! Wir haben eine Tabelle erstellt, die als Grundlage für den Rest dieses Kapitels dienen wird.
In der nächsten Lektion werden wir lernen, wie man die Retentionsrate berechnet - es ist sehr einfach und nur ein paar Zeilen Code entfernt! Jetzt - sind Sie dran, einige Kohorten zu erstellen!