<aside> ๐Ÿ”‘

ํ”„๋กœ์ ํŠธ ๊ฐ€์„ค ๋ถ„์„ ๊ณผ์ •

</aside>

<aside>

๋‹ด๋‹น ๊ฐ€์„ค: ์ž ์žฌ ์ „ํ™˜ํ˜• ์œ ์ €(์ค‘์ €๊ฐ€ํ˜•) **-**mid_50k_150k + new + ๊ฒ€์ƒ‰ ์œ ์ž… + ๋ฆฌ๋ทฐ ํด๋ฆญ X + ํ• ์ธ ๋…ธ์ถœ O

</aside>

# 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)
product_category total_users churned_users dropout_rate
accessory 6 4 66%
bag 6 4 66%
fashion 8 5 62%
outlet 10 10 100%

image.png

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

๊ฒ€์ƒ‰์œผ๋กœ ์œ ์ž… ๋์œผ๋ฉฐ, ํ• ์ธ๋ฅ ์„ ๋ด„.

์ค‘์ €๊ฐ€ ์ œํ’ˆ์„ ์‹ธ๊ฒŒ ์‚ด ๊ธฐํšŒ์ด์ง€๋งŒ, ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด์ง€ ์•Š์Œ

์• ๋งคํ•œ ํ• ์ธ์€ ์˜คํžˆ๋ ค ๊ตฌ๋งค ์š”์ธ์ด ๋–จ์–ด์ง„๋‹ค.

(์ค‘๋ณต ํ• ์ธ ์ƒํƒœ์ง€๋งŒ ๊ตฌ๋งคํ•˜์ง€ ์•Š์•˜์Œ)