Python을 활용한 고객 세분화
Karolis Urbonas
Head of Data Science, Amazon
online 데이터셋TotalSum 컬럼 = Quantity x UnitPrice
최근 12개월만 포함한 전처리된 online DataFrame으로 시작합니다:
print('Min:{}; Max:{}'.format(min(online.InvoiceDate),
max(online.InvoiceDate)))
Min:2010-12-10; Max:2011-12-09
최근 시점에 분석한다고 가정하여 가상의 snapshot_day를 생성합니다.
snapshot_date = max(online.InvoiceDate) + datetime.timedelta(days=1)
# 고객 단위로 집계 datamart = online.groupby(['CustomerID']).agg({ 'InvoiceDate': lambda x: (snapshot_date - x.max()).days, 'InvoiceNo': 'count', 'TotalSum': 'sum'})# 해석을 위해 컬럼명 변경 datamart.rename(columns = {'InvoiceDate': 'Recency', 'InvoiceNo': 'Frequency', 'TotalSum': 'MonetaryValue'}, inplace=True)# 상위 행 확인 datamart.head()
RFM 세분화를 위한 테이블이 완성되었습니다!

Python을 활용한 고객 세분화