ComeçarComece de graça

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

Ver curso

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_date e o max de InvoiceDate.
  • 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())
Editar e executar o código