Pada modul ini kita akan mempersiapkan data agar bisa digunakan oleh RFM model.
Membuat kolom sales.
#Creating Sales column data['sales'] = data['Quantity'] * data['UnitPrice']
Transform variable date dan mengambil snapshot_date.
#Dates - Transform Date variable data['InvoiceDate'] = pd.to_datetime(data['InvoiceDate']) #Get last date available snapshot_date = data['InvoiceDate'].max() + timedelta(days = 1) snapshot_date
Melakukan agregasi untuk customer level.
#Aggregate on Customer Level
df = data.groupby(['CustomerID']).agg({
'InvoiceDate': lambda x: (snapshot_date - x.max()).days,
'InvoiceNo': 'count',
'sales': 'sum'
})
Membuat basket (variable untuk Monetary).
#Create basket / Monetary variable df['monetary'] = df.sales / df.InvoiceNo
Karena tidak akan digunakan, kita buang kolom sales.
df = df.drop(columns = "sales")
Mengubah nama kolom agar jelas maksudnya.
df.rename(columns = {'InvoiceDate': 'Recency',
'InvoiceNo': 'Frequency'}, inplace = True)
Sampai disini kita sudah selesai melakukan persiapan data. Pada modul selanjutnya kita akan melakukan persiapan untuk keperluan RFM model.