НачатьНачать бесплатно

Вычисление 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())
Редактировать и запускать код