/////////
Search
Duplicate

6/17 (ํ™”)

ํ”„๋กœ์ ํŠธ ๊ฐ€์„ค ๋ถ„์„ ๊ณผ์ •
๋‹ด๋‹น ๊ฐ€์„ค: ์ž ์žฌ ์ „ํ™˜ํ˜• ์œ ์ €(์ค‘์ €๊ฐ€ํ˜•) -mid_50k_150k + new + ๊ฒ€์ƒ‰ ์œ ์ž… + ๋ฆฌ๋ทฐ ํด๋ฆญ X + ํ• ์ธ ๋…ธ์ถœ O
# mid_50k_150k + new + ๊ฒ€์ƒ‰ ์œ ์ž… + ๋ฆฌ๋ทฐ ํด๋ฆญ X + ํ• ์ธ ๋…ธ์ถœ O ๋งŒ ๋ณด๊ธฐ import pandas as pd df5 = pd.read_csv("df5.csv") filtered_df = df5[ (df5['price_band'] == 'mid_50k_150k') & (df5['user_type'] == 'new') & (df5['traffic_source'] == 'search') & (df5['review_clicked'] == False) & (df5['discount_exposed'] == True) ] filtered_df # ์ƒํ’ˆ ํƒ€์ž…๋ณ„ ์ดํƒˆ๋ฅ  ๋ณด๊ธฐ # 'churned' ํ”Œ๋ž˜๊ทธ ์ƒ์„ฑ: add_to_cart == 'No' ์ธ ๊ฒฝ์šฐ True filtered_df = filtered_df.copy() filtered_df['churned'] = filtered_df['add_to_cart'] == 'No' # product_category๋ณ„ ์ดํƒˆ๋ฅ  ๊ณ„์‚ฐ churn_summary = ( filtered_df .groupby('product_category') .agg( total_users=('user_id', 'count'), churned_users=('churned', 'sum') ) .assign(dropout_rate=lambda x: (x['churned_users'] / x['total_users']) * 100) .reset_index() ) # ๊ฒฐ๊ณผ ์ถœ๋ ฅ print(churn_summary)
Python
๋ณต์‚ฌ
product_category
total_users
churned_users
dropout_rate
accessory
6
4
66%
bag
6
4
66%
fashion
8
5
62%
outlet
10
10
100%

-์•„์šธ๋ › ์ดํƒˆ 100%

๊ฒ€์ƒ‰์œผ๋กœ ์œ ์ž… ๋์œผ๋ฉฐ, ํ• ์ธ๋ฅ ์„ ๋ด„.
์ค‘์ €๊ฐ€ ์ œํ’ˆ์„ ์‹ธ๊ฒŒ ์‚ด ๊ธฐํšŒ์ด์ง€๋งŒ, ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด์ง€ ์•Š์Œ
์• ๋งคํ•œ ํ• ์ธ์€ ์˜คํžˆ๋ ค ๊ตฌ๋งค ์š”์ธ์ด ๋–จ์–ด์ง„๋‹ค.
(์ค‘๋ณต ํ• ์ธ ์ƒํƒœ์ง€๋งŒ ๊ตฌ๋งคํ•˜์ง€ ์•Š์•˜์Œ)
# pdp # 1. ๋ถ„์„ ํƒ€๊ฒŸ ํ•„ํ„ฐ๋ง target_users = df5[ (df5['price_band'] == 'mid_50k_150k') & (df5['user_type'] == 'new') & (df5['traffic_source'] == 'search') & (df5['review_clicked'] == False) & (df5['discount_exposed'] == True) ] # 2. ์ฒด๋ฅ˜์‹œ๊ฐ„ + ์ƒํ’ˆ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๋ถ„์„ summary = target_users.groupby(['duration_group_label', 'product_category']).agg( total_users=('user_id', 'count'), avg_pdp_duration=('pdp_duration_sec', 'mean'), churned_users=('add_to_cart', lambda x: (x == 'No').sum()), converted_users=('purchase_completed', lambda x: (x == 'Yes').sum()) ).reset_index() # 3. ๋น„์œจ ๊ณ„์‚ฐ summary['dropout_rate'] = (summary['churned_users'] / summary['total_users']) * 100 summary['conversion_rate'] = (summary['converted_users'] / summary['total_users']) * 100 # 4. ๋ฐ˜์˜ฌ๋ฆผ summary['avg_pdp_duration'] = summary['avg_pdp_duration'].round(1) summary['dropout_rate'] = summary['dropout_rate'].round(1) summary['conversion_rate'] = summary['conversion_rate'].round(1) summary
Python
๋ณต์‚ฌ
์ฒด๋ฅ˜์‹œ๊ฐ„ ๊ตฌ๊ฐ„
์ƒํ’ˆ
์ดํƒˆ๋ฅ 
์ „ํ™˜์œจ
๋งค์šฐ ์งง์Œ
fashion
0%
0%
๋งค์šฐ ์งง์Œ
accessory
50%
0%
๋งค์šฐ ์งง์Œ
outlet
100%
0%
์งง์Œ
fashion
60%
20%
์งง์Œ
accessory
0%
0%
์งง์Œ
outlet
100%
0%
์งง์Œ
bag
50%
0%
๊น€
fashion
100.0%
0%
๊น€
accessory
100%
0%
๊น€
outlet
100%
0%
๊น€
bag
66.7%
0%
๋งค์šฐ ๊น€
fashion
100%
0%
๋งค์šฐ ๊น€
accessory
100%
0%
๋งค์šฐ ๊น€
bag
100%
0%
์ฒด๋ฅ˜ ์‹œ๊ฐ„ ๊ด€๋ จ ์‹œ๊ฐํ™”
๋‹ด๋‹น ๊ฐ€์„ค: ๋ฌด๋ฐ˜์‘ํ˜• ์‹ ๊ทœ ์œ ์ € -
โ€ข
(under_50k + mid_50k_150k) + new + ad ์œ ์ž… + ๋ฆฌ๋ทฐ ํด๋ฆญ X + ํ• ์ธ ๋…ธ์ถœ x

์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„ ์ดํƒˆ๋ฅ 

#์œ ์ € ํ•„ํ„ฐ๋ง import pandas as pd # CSV ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ df = pd.read_csv("df.csv") # ์กฐ๊ฑด ํ•„ํ„ฐ๋ง df_filtered = df[ (df['price_band'].isin(['under_50k', 'mid_50k_150k'])) & (df['user_type'] == 'new') & (df['traffic_source'] == 'ad') & (df['review_clicked'] == False) & (df['discount_exposed'] == False) ] print("์ „์ฒด ์œ ์ € ์ˆ˜:", df.shape[0]) # ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„ ์ดํƒˆ๋ฅ  ์ ์šฉ # 1. ์ดํƒˆ ์—ฌ๋ถ€ ํ”Œ๋ž˜๊ทธ ์ƒ์„ฑ df_filtered['is_abandon'] = df_filtered['add_to_cart'] == "No" # 2. product_category๋ณ„ ์ด ์œ ์ € ์ˆ˜์™€ ์ดํƒˆ ์œ ์ € ์ˆ˜ ์ง‘๊ณ„ abandon_summary = ( df_filtered .groupby('product_category') .agg( total_users=('add_to_cart', 'count'), abandon_users=('is_abandon', 'sum') ) .reset_index() ) # 3. ์ดํƒˆ๋ฅ  ๊ณ„์‚ฐ (%) abandon_summary['abandon_rate'] = (abandon_summary['abandon_users'] / abandon_summary['total_users']) * 100 # ๊ฒฐ๊ณผ ์ถœ๋ ฅ abandon_summary
Python
๋ณต์‚ฌ
์‹œ๊ฐํ™”
์ˆœ์ˆ˜ ๊ด‘๊ณ  ์œ ์ž…..
โ€˜outletโ€™์„ ์ œ์™ธํ•˜๋ฉด ์ „๋ถ€ ์ดํƒˆํ•จ = ๊ด‘๊ณ  ๋ง๊ณ  ๋‹ค๋ฅธ ์ถ”๊ฐ€ ์•ก์…˜์ด ํ•„์š”..
โ€ข
๊ทธ๋‚˜๋งˆ ๊ฐ€๊ฒฉ ๋ฉ”๋ฆฌํŠธ๊ฐ€ ์žˆ๋Š” ์•„์šธ๋ ›๋งŒ ์กฐ๊ธˆ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์Šฅ์Šฅ..
๋‹ด๋‹น ๊ฐ€์„ค: ๋ฆฌ๋ทฐ ๋ฐ˜์‘ํ˜• ์‹ ๊ทœ ์œ ์ €
(under_50k + mid_50k_150k) + new + ad ์œ ์ž… + ๋ฆฌ๋ทฐ ํด๋ฆญ ใ…‡ + ํ• ์ธ ๋…ธ์ถœ x
์‹œ๊ฐํ™”
๊ด‘๊ณ +๋ฆฌ๋ทฐ ์‹ ๊ทœ ์œ ์ž…
โ€ข
โ€˜fashionโ€™ ์˜ฌ ์ดํƒˆ.. ๊ด‘๊ณ  ๋ณด๊ณ  ์™”์ง€๋งŒ ๋ฆฌ๋ทฐ ๋ณด๊ณ  ํ›„ํ‡ด