Kom igångKom igång gratis

Beräkna RFM-värden

Beräkna recency-, frekvens- och monetära värden för datamängden online som vi använt tidigare – den har laddats åt dig med data från de senaste 12 månaderna. Det finns en kolumn TotalSum i datamängden online som har beräknats genom att multiplicera Quantity och UnitPrice: online['Quantity'] * online['UnitPrice'].

Vi har också skapat en variabel snapshot_date som du kan använda för att beräkna recency. Du får gärna skriva ut datamängden online och snapshot_date i konsolen. Biblioteket pandas är laddat som pd och datetime som dt.

Den här övningen är en del av kursen

Kundsegmentering i Python

Visa kurs

Övningsinstruktioner

  • Beräkna recency-, frekvens- och monetärt värde (i denna ordning) för varje kund.
  • För recency – beräkna skillnaden mellan värdet i snapshot_date och det maximala värdet i InvoiceDate.
  • Byt namn på kolumnerna till Recency, Frequency och MonetaryValue.
  • Skriv ut de 5 första raderna i datamart.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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())
Redigera och kör kod