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
Ö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_dateoch det maximala värdet iInvoiceDate. - 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())