Zacznij terazZacznij za darmo

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

Zobacz kurs

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_date a 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())
Edytuj i uruchom kod