Обчислення значень RFM
Обчисліть значення Recency, Frequency та Monetary для набору даних online, який ми використовували раніше — його вже завантажено для вас за останні 12 місяців. У наборі online є стовпець TotalSum, обчислений множенням Quantity і UnitPrice: online['Quantity'] * online['UnitPrice'].
Також ми створили змінну snapshot_date, яку ви можете використати для розрахунку давності (recency). За потреби виведіть набір даних online і snapshot_date у Консоль. Бібліотеку pandas завантажено як pd, а datetime — як dt.
Ця вправа є частиною курсу
Сегментація клієнтів у Python
Інструкції до вправи
- Обчисліть для кожного клієнта Recency, Frequency і Monetary (саме в такому порядку).
- Для Recency — порахуйте різницю між значенням
snapshot_dateтаmaxдляInvoiceDate. - Перейменуйте стовпці на Recency, Frequency і MonetaryValue.
- Виведіть заголовок із першими 5 рядками
datamart.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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())