Вычисление RFM-значений
Вычислите показатели давности (Recency), частоты (Frequency) и денежной стоимости (Monetary) для набора данных online, который мы уже использовали ранее — он загружен для вас и содержит данные за последние 12 месяцев. В наборе данных online есть столбец TotalSum, рассчитанный как произведение Quantity и UnitPrice: online['Quantity'] * online['UnitPrice'].
Также создана переменная snapshot_date, которую можно использовать для расчёта давности. При желании выведите набор данных online и переменную snapshot_date в Консоль. Библиотека pandas загружена как pd, а datetime — как dt.
Это упражнение является частью курса
Сегментация клиентов в Python
Инструкции к упражнению
- Вычислите показатели давности (Recency), частоты (Frequency) и денежной стоимости (Monetary) для каждого клиента — именно в таком порядке.
- Для давности (Recency) рассчитайте разницу между значением
snapshot_dateи максимальным значением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())