Calcular valores de RFM
Calcule os valores de Recency (Recência), Frequency (Frequência) e Monetary (Valor Monetário) para o conjunto de dados online que usamos antes — ele foi carregado para você com os 12 meses mais recentes de dados. Há uma coluna TotalSum no conjunto online, calculada multiplicando Quantity por UnitPrice: online['Quantity'] * online['UnitPrice'].
Também criamos a variável snapshot_date, que você pode usar para calcular a recência. Fique à vontade para imprimir o conjunto online e a snapshot_date no Console. A biblioteca pandas está carregada como pd e datetime como dt.
Este exercício faz parte do curso
Segmentação de Clientes em Python
Instruções do exercício
- Calcule, nessa ordem, os valores de Recency (Recência), Frequency (Frequência) e Monetary (Valor Monetário) para cada cliente.
- Para Recency — calcule a diferença entre o valor de
snapshot_datee omaxdeInvoiceDate. - Renomeie as colunas para Recency, Frequency e MonetaryValue.
- Imprima o cabeçalho com as 5 primeiras linhas de
datamart.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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())