Obliczanie wartości RFM
Oblicz wartości Recency, Frequency i Monetary dla zbioru danych online, którego używaliśmy wcześniej – został on wczytany z danymi z ostatnich 12 miesięcy. W zbiorze online znajduje się kolumna TotalSum, obliczona jako iloczyn Quantity i UnitPrice: online['Quantity'] * online['UnitPrice'].
Utworzono również zmienną snapshot_date, której możesz użyć do obliczenia recency. Wyświetl w konsoli zbiór online oraz wartość snapshot_date. Biblioteka pandas jest załadowana jako pd, a datetime jako dt.
To ćwiczenie jest częścią kursu
Segmentacja klientów w Pythonie
Instrukcje do ćwiczenia
- Oblicz wartości Recency, Frequency i Monetary (w tej kolejności) dla każdego klienta.
- Dla Recency – oblicz różnicę między wartością
snapshot_datea maksymalną wartościąInvoiceDate. - Zmień nazwy kolumn na Recency, Frequency i MonetaryValue.
- Wyświetl nagłówek z 5 pierwszymi wierszami zbioru
datamart.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Calculate Recency, Frequency and Monetary value for each customer
datamart = online.groupby(['CustomerID']).agg({
'InvoiceDate': lambda x: (snapshot_date - x.____()).days,
'InvoiceNo': '____',
'TotalSum': '____'})
# Rename the columns
datamart.rename(columns={'InvoiceDate': '____',
'InvoiceNo': '____',
'TotalSum': '____'}, inplace=True)
# Print top 5 rows
print(____.head())