1.
주제선정하기
북스토어 와 이커머스 중 고르기 : 이커머스 고르기 이유는 조금더 데이터 양이많고 상관관계가 폭 넓음 (ex: 유저타입, 카테고리,가격,이전페이지, 체류시간 등) 그러므로 현업에서 사용하는 데이터와 유사하다고 생각
2.
데이터 뜯어보기
가설 설정을 먼저하고 들어가는게 정석이라지만 도저히 뭔말인지 몰라서 뜯오보기 시작함.
# 1. 각 CSV 파일 불러오기
df1 = pd.read_csv('/content/conversion_status.csv')
df2 = pd.read_csv('/content/product_interaction.csv')
df3 = pd.read_csv('/content/user_session_info.csv')# 2. user_id 기준으로 병합 (예: inner join으로 모두 겹치는 user_id만)
merged_df = df1.merge(df2, on='user_id', how='inner').merge(df3, on='user_id', how='inner')# 3. 중복 user_id 찾기 (user_id가 여러 번 나오는 경우)
duplicate_user_ids = merged_df[merged_df.duplicated('user_id', keep=False)]['user_id'].unique()print("중복된 user_id 목록:")
print(duplicate_user_ids)# 혹은 중복 user_id별 행 출력 (중복된 모든 행)
print("중복 user_id별 데이터:")
merged_df[merged_df.duplicated('user_id', keep=False)]
팀원의 코드
interaction_df = pd.read_csv("product_interaction.csv")conversion_df = pd.read_csv("conversion_status.csv")user_df = pd.read_csv("user_session_info.csv")
•
장바구니 담기 이탈률 : 행동했으나 장바구니에 담지 않은 유저 ÷ 전체 행동 유저
◦
리뷰 클릭 후 장바구니에 담은 유저와 리뷰 클릭하지 않고 장바구니에 담은 유저 비교
◦
할인 노출된 후 장바구니에 담은 유저와 할인 노출되지 않고 장바구니에 담은 유저 비교
◦
리뷰 클릭 + 할인 노출된 후 장바구니에 담은 유저와 둘다 하지 않고 장바구니에 담은 유저 비교
총 버전
이외에 컬럼 명은
price_band/ previous_page_type,
pdp_duration_sec,
review_clicked,
discount_exposed,
add_to_cart,
purchase_completed
컬럼별 요소
===== traffic_source =====
['search' 'organic' 'ad']===== product_category =====
['bag' 'fashion' 'outlet' 'accessory']===== price_band =====
['over_300k' 'high_price' 'mid_50k_150k' 'medium_price' 'low_price'
'under_50k']===== previous_page_type =====
['search_results' 'ad_landing' 'homepage' 'other']===== pdp_duration_sec =====
['89' '114' '178' nan '130' '111' '156' '127' '95' '98 sec' '186' '92'
'125' '345' '151' '233' '910' '99' '118' '123' '187' '100' '119' '158'
'152' '215' '75' '105' '131' '98' '40' '132' '85' '147' '64 sec' '129'
'113' '81' '141' '106' '92 sec' '167' '435' '369' '170' '283 sec' '121'
'142' '112' '91' '134' '166' '165' '87' '94' '143' '167 sec' '168' '146'
'104' '97' '136' '115' '73' '439' '60' '126' '209' '196' '62' '82' '138'
'137' '46' '30' '41' '36' '32' '34' '45' '22' '47 sec' '39' '24' '19'
'44' '16' '26' '25' '51' '29' '53' '35' '31' '519' '25 sec' '24 sec' '18'
'56' '17' '500' '21' '37' '33' '20' '28' '308' '27' '23' '52' '696' '54'
'49' '27 sec' '312' '47' '66' '15' '38 sec' '38' '5' '453' '583' '1' '50'
'43' '68' '55' '74' '63' '56 sec' '326' '61' '65' '67' '57' '628' '42'
'342' '58' '49 sec' '7' '64' '69' '44 sec' '48' '29 sec' '72' '517' '78'
'5 sec' '84' '896']===== review_clicked =====
[False nan True]===== discount_exposed =====
[nan False True]===== add_to_cart =====
['No' 'Yes']===== purchase_completed =====
['No' 'Yes']
결론 페르소나
1. 페르소나 구성 전 New / Returning 유저 이탈률 비교
•
유의미한 결과가 있는지 먼저 확인
•
결과
1) 기존 유저 장바구니 담기 이탈률 : 52.8%
2) 신규 유저 장바구니 담기 이탈률 : 71.2%#2. 페르소나 구성(체류 시간 기준은 정해야할듯)1. New 유저 페르소나
1) 충동구매형 - ad 유입, 상세페이지 체류시간 짦음(빠르게 이탈)
2) 목적형: search 유입, 상세페이지 체류시간 김, 리뷰 클릭 있음
3) 할인형: ad 유입, 할인 노출 있음
4) 불신형 - ad/search 유입, 상세페이지 체류시간 김, 리뷰 클릭 있음, 할인 노출 있음2. Returning 유저 페르소나
1) 목적형: organic/search 경로, 리뷰 클릭 있음
2) 탐색형: 상세페이지 체류시간 김, 리뷰 클릭 있음, 할인 노출 있음
3) 고민형: organic/search 경로, 리뷰 클릭 있음, 할인 노출 있음
4) 재구매형: organic 유입, 할인 노출 있음3. 추가 페르소나
1) 할인 민감형: ad 유입, 할인 노출 있음
2) 가격대 민감형(가격비교형): search/organic 유입, 할인 노출 있음, 가격대 mid - high 구간
주말전
공유내용
1. 각자 2개정도 주제를 선정(가설 설정)해서 그 가설이 유의미한지 찾아보기
Ex) 유입별로 전환율이 다를 것 같다 -> 진짜 다르네? 왜 그럴까? -> 다시 가설 세우기 -> 이 부분에서 차이가 나는구나 -> 인사이트 도출
2. 1번의 내용을 20개 정도 만들어서? 유의미한 가설 찾고 그 데이터를 가지고 우리의 목적(장바구니 전환율 개선안)을 도출하라고 하심유의할 것
1. 애초에 가설을 세우는 이유가 있어야 함(왜 이런 가설을 세웠는지?)
2. 가설 없이 디깅하지 말 것
3. 데이터 분석을 통해 가설을 세우는 것은 나중에 할 단계이므로 지금은 가설을 먼저 세우고 분석할 것(길래튜터님 피셜)급하게 정리하느라 이해가 안되는 문장이 있다면 언제든 말씀해주세요!물론 데이터 분석하는데 정답은 없지만 효율성 측면으로 보았을 때 가설 세우고 유의미한 데이터 찾는 게 더 나을 것 같아 이렇게 길게 적습니다 ,,,제가 마지막에 말씀드렸던 페르소나 부분은1. 검색해서 물건을 찾는 사람
2. 광고를 통해 물건을 사는 사람
3. 다른 경로를 통해 물건을 사는 사람이렇게 구분하고, 그 안에서 유의미한 차이가 있으면 더 디깅하자는 말이었습니다!예시)1. New 유저 / Returning 유저로 구분 - 이미 차이가 20% 이상 차이가 나 해당 가설이 유의미한게 확인됨
2. New 유저에서 유입 경로 별로 이탈률 구분(Returning도 똑같이) - 진우님이 하신 방식
3. 유입 경로 별로 어떤 부분에서 이탈률이 차이가 나는지? - 이건 이제 해볼 부분
4. 3번 내용 기준으로 더 디깅
5..
6…



