ComenzarEmpieza gratis

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

Ver curso

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_date y el max de InvoiceDate.
  • 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())
Editar y ejecutar código