CommencezCommencez gratuitement

Calculer les valeurs RFM

Calculez les valeurs de récence, de fréquence et de valeur monétaire pour l'ensemble de données online que nous avons déjà utilisé — il a été chargé pour vous avec les 12 derniers mois de données. La colonne TotalSum dans online a été calculée en multipliant Quantity par UnitPrice : online['Quantity'] * online['UnitPrice'].

Nous avons aussi créé une variable snapshot_date que vous pouvez utiliser pour calculer la récence. N'hésitez pas à imprimer l'ensemble de données online et la variable snapshot_date dans la console. La bibliothèque pandas est chargée sous pd, et datetime sous dt.

Cette activité fait partie du cours

Segmentation de la clientèle en Python

Voir le cours

Instructions de l’exercice

  • Calculez, dans cet ordre, la récence, la fréquence et la valeur monétaire pour chaque client.
  • Pour la récence, calculez la différence entre la valeur de snapshot_date et le max de InvoiceDate.
  • Renommez les colonnes en Recency, Frequency et MonetaryValue.
  • Affichez l'en-tête avec les 5 premières lignes de datamart.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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())
Modifier et exécuter le code