https://steadiness-193.tistory.com/155
전처리, 컬럼 추가 등은 위 포스팅 참조
데이터 불러오기
연도, 월 컬럼 추가
코호트 분석을 위해선
고객별로 첫 구매가 언제인지 파악해야한다.
이번 코호트 분석은
월 단위로 분석한다.
고객별 첫 구매 연도 추출
고객별로 (CustomerID)로 그룹핑한 다음
InvoiceDate 컬럼의 최솟값을 구해
transform으로 기존 인덱스를 유지한 채 첫 구매 일자를 추출한다.
(apply를 이용해도 된다.)
dt연산자를 이용해 연도만 뽑아냈다.
고객별 첫 구매 월 추출
dt연산자를 이용해 월만 뽑아냈다.
첫 구매 연, 월을 컬럼으로 추가
맨 뒤 5행을 보면
아래 5행의 고객은
구매는 2011년 12월에 했으나 첫 구매는 2011년 8월에 했다.
4개월 뒤에도 구매를 한 것이다.
첫 구매후 몇 개월만의 구매인지 찾기
(구매 연도 - 첫 구매 연도) x 12
+
(구매 월 - 첫 구매 월)
위 Month_Passed를 컬럼으로 추가
맨 아래 5명의 고객을 보면
2011년 8월에 구매한 뒤
4개월만에 또 주문한 것을 볼 수 있다.
첫 주문한 연, 월 컬럼을 연월 컬럼으로 추가
추후 분석의 용이함을 위해
첫 구매 연도와 첫 구매 월을 한꺼번에 연결해서 첫구매 [연월] 컬럼을 만들었다.
Start_ym과 Month_Passed 컬럼으로 그룹핑
두개의 컬럼으로 그룹핑한 다음
첫 행만 뽑아봤다.
해석을 해보자
우선 첫 구매는 2010년 12월인 고객들만 보인다.
Month_Passed가 0인 것은 2012년 12월에 구매한 고객을 나타낸다.
Month_Passed가 1인 것은 2012년 12월 이후, 1개월 뒤에 또 구매를 한 고객을 나타낸다.
그러면 그룹별로 CustomerID의 고유값을 구하면 되겠다.
첫 구매 연월로부터 N개월이 지나고도 또 구매한 고객들의 ID를 구했다.
다만
고유값보다는 고유값의 개수를 구하는 것이 분석에 필요해보인다.
그룹별 고객ID의 고유값 개수 구하기
데이터프레임으로 전환 (reset_index)
Month_Passed를 컬럼으로 이동 (pivot)
Month_Passed 가 0인 컬럼으로 정규화 후 반올림
히트맵으로 시각화
확실히 첫 구매 이후 1개월만에 10-20%대로 재구매율이 급락하는 것을 볼 수 있다.
연말이었던 2010년 12월에는 그래도 꾸준히 30%대 이상을 유지하고 있다.
'Pandas > 실전' 카테고리의 다른 글
판다스 - 가상 쇼핑몰 고객 주문 데이터 : 몇시에 Push 마케팅하는게 제일 좋을까? (4) | 2020.07.21 |
---|---|
판다스 - 가상 쇼핑몰 고객 주문 데이터 : 우수 고객 찾기, 고객 코호트 분석 (0) | 2020.07.21 |
판다스 - 가상 쇼핑몰 고객 주문 데이터 : 시간대별 매출, 상위 매출 제품의 월별 판매량 추이 (0) | 2020.07.20 |
판다스 - 가상 쇼핑몰 고객 주문 데이터 : 연월별 매출, 요일별 매출 (1) | 2020.07.20 |
판다스 - 가상 쇼핑몰 고객 주문 데이터 : 전체 매출, 국가별 매출 (0) | 2020.07.20 |