📍 데이터 분석 비교 정리

성별 female male
target_group
2-3구간 O, 연령대 2030 O 77 (0.49) 80 (0.51)
group1
2-3구간 O, 연령대 2030 X 164 (0.501) 163 (0.498)
group2
2-3구간 X, 연령대 2030 O 91 (0.5) 91 (0.5)
group3
2-3구간 X, 연령대 2030 X 176 (0.53) 158 (0.47)
장르 자기계발 웹툰 소설 경제/시사
target_group
2-3구간 O, 연령대 2030 O 48 (0.306) 45 (0.287) 38 (0.242) 26 (0.166)
group1
2-3구간 O, 연령대 2030 X 110 (0.336) 88 (0.269) 75 (0.229) 54 (0.165)
group2
2-3구간 X, 연령대 2030 O 54 (0.297) 49 (0.269) 55 (0.302) 24 (0.132)
group3
2-3구간 X, 연령대 2030 X 117 (0.350) 80 (0.240) 93 (0.278) 44 (0.132)
이탈 사유 추천 실패 UX 불편 지루함 너무 김 기술 이슈 급한 일
target_group
2-3구간 O, 연령대 2030 O 58 (0.369)
48 (0.306) 19 (0.121) 15 (0.096) 9 (0.057) 8 (0.051)
group1
2-3구간 O, 연령대 2030 X 164 (0.339) 140 (0.289) 65 (0.134) 62 (0.128) 22 (0.045) 31 (0.064)
group2
2-3구간 X, 연령대 2030 O 61 (0.335) 49 (0.269) 23 (0.126) 25 (0.137) 13 (0.071) 11 (0.060)
group3
2-3구간 X, 연령대 2030 X 100 (0.299) 111 (0.332) 42 (0.126) 43 (0.129) 15 (0.045) 23 (0.069)
유입 경로 추천 검색 홈메인배너 외부링크
target_group
2-3구간 O, 연령대 2030 O 83 (0.529) 34 (0.217) 34 (0.217) 6 (0.038)
group1
2-3구간 O, 연령대 2030 X 257 (0.531) 94 (0.194) 109 (0.225) 24 (0.050)
group2
2-3구간 X, 연령대 2030 O 104 (0.571) 26 (0.143) 39 (0.214) 13 (0.071)
group3
2-3구간 X, 연령대 2030 X 173 (0.518) 75 (0.225) 62 (0.186) 24 (0.072)
추천 콘텐츠 클릭 여부 True False
target_group
2-3구간 O, 연령대 2030 O 107 (0.682) 50 (0.318)
group1
2-3구간 O, 연령대 2030 X 319 (0.659) 165 (0.341)
group2
2-3구간 X, 연령대 2030 O 125 (0.687) 57 (0.313)
group3
2-3구간 X, 연령대 2030 X 219 (0.656) 115 (0.344)

📍 데이터 분석 결과

<aside> 💡

어떤 유저가, 어떤 환경에서 독서를 했고, 어떤 이유 때문에 완독하지 않았을까’를 데이터를 통해 근거를 들어 설명


<aside> 💻

(예시) 20대 여성, tablet 이용, pay_per_book 유저 → 전체 유저 중 12%


</aside>

🤔 2030대, 독서 중단 위치 2-3구간 → 전체 유저 중 15.7% (+ pay_per_book 유저 포함 보류)

⇒ 타깃 유저만의 특징은 X

*비율 반올림 O

</aside>


📍 target_group 코드 정리

<aside> 1️⃣

이탈률에 대한 정의 - 이탈 지점에 대한 범위 (독서 중단 범위)

1구간 15% 미만 140
2구간 15~40% 239
3구간 41~65% 245
4구간 66~90% 278
완독 90% 초과 98
# 구간별 유저 수
df['exit_po_group'] = pd.cut(
    df['exit_position_numeric'],
    bins=[-1, 14, 40, 65, 90, 100], 
    labels=['15% 미만', '15~40%', '41~65%', '66~90%', '90% 초과'],
    right=True
)

>>>                                   
target_group = df[(df['exit_po_group'] == '15~40%') | (df['exit_po_group'] == '41~65%')]

</aside>

<aside> 2️⃣

특정 유저의 특성 / 행동 데이터 파악하기

# 나이 구하기

birth = target_group['birthday_filled'].dt.year       # 출생년도에서 년 정보만 추출
current_year = 2023                                   # 현재 년도 설정
year_age = current_year - birth + 1                   # 나이 구하기 (연나이 기준)
target_group['age'] = year_age                        # 1000 non-null / int32 'age' 컬럼 생성

def age_categorize(age):                              # 나이대 범주화
  age = (age // 10) * 10
  return age

age_category = target_group.age.apply(age_categorize) # apply()로 age컬럼 전 데이터에 적용 

target_group['age_category'] = age_category           # 새로운 컬럼'age_category' 생성
>>>
age_category count
50     86
30     82
40     82
10     79
20     75
60     61
100    11
0       8
비율 ver
50     0.177686
30     0.169421
40     0.169421
10     0.163223
20     0.154959
60     0.126033
100    0.022727
0      0.016529

target_group_age = target_group[(target_group['age_category'] == 20) | (target_group['age_category'] == 30) ]

target_group_age['user_demographics_gender'].value_counts()
>>>
male      80
female    77





</aside>