Calcular valores RFM
Calcula los valores de Recencia, Frecuencia y Valor Monetario para el conjunto de datos online que hemos usado antes; ya está cargado con los 12 meses más recientes. En el conjunto online hay una columna TotalSum que se ha calculado multiplicando Quantity y UnitPrice: online['Quantity'] * online['UnitPrice'].
Además, hemos creado una variable snapshot_date que puedes usar para calcular la recencia. Si quieres, imprime el conjunto online y snapshot_date en la Consola. La librería pandas está cargada como pd y datetime como dt.
Este ejercicio forma parte del curso
Segmentación de clientes en Python
Instrucciones del ejercicio
- Calcula, en este orden, Recencia, Frecuencia y Valor Monetario para cada cliente.
- Para Recencia: calcula la diferencia entre el valor de
snapshot_datey elmaxdeInvoiceDate. - Cambia los nombres de las columnas a Recency, Frequency y MonetaryValue.
- Imprime el encabezado con las 5 primeras filas de
datamart.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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())