RFM 값 계산하기
이전에 사용했던 online 데이터셋에 대해 Recency, Frequency, Monetary 값을 계산하세요. 최근 12개월의 데이터가 로드되어 있습니다. online 데이터셋에는 Quantity와 UnitPrice를 곱해 계산한 TotalSum 열이 있습니다: online['Quantity'] * online['UnitPrice'].
또한 recency 계산에 사용할 수 있도록 snapshot_date 변수를 만들어 두었습니다. 필요하다면 online 데이터셋과 snapshot_date를 콘솔에 출력해 보세요. pandas 라이브러리는 pd로, datetime은 dt로 로드되어 있습니다.
이 연습은 강의의 일부입니다
Python을 활용한 고객 세분화
연습 안내
- 각 고객에 대해 Recency, Frequency, Monetary 값을 이 순서로 계산하세요.
- Recency의 경우,
snapshot_date값과InvoiceDate의max차이를 계산하세요. - 열 이름을 Recency, Frequency, MonetaryValue로 바꾸세요.
datamart의 상위 5개 행이 보이도록 헤더를 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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())