데이터 분석 비교 정리
성별 | 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) |
데이터 분석 결과
‘어떤 유저가, 어떤 환경에서 독서를 했고, 어떤 이유 때문에 완독하지 않았을까’를 데이터를 통해 근거를 들어 설명
(예시) 20대 여성, tablet 이용, pay_per_book 유저 → 전체 유저 중 12%
•
소설장르를 자주 시청하지만, 독서 중단 시점이 초반에 머물러 있음 (45%)
•
이 페르소나는 대체로 추천 클릭 비율도 높음 (78%). 이탈 사유를 살펴보니 너무 길다는 이유로 이탈 (25%)
•
자기계발을 가장 많이 봄 (31%)
•
이탈 사유는 추천 실패로 이탈하나 (37%), 가장 많은 유입 경로도 추천에 의해서임 (53%)
•
추천 클릭 비율이 클릭하지 않은 비율보다 2배 가량 높음 (68%)
⇒ 타깃 유저만의 특징은 X
*비율 반올림 O
target_group 코드 정리
이탈률에 대한 정의 - 이탈 지점에 대한 범위 (독서 중단 범위)
•
WHY? 2~3구간? : 2~3구간을 포함한 타겟군을 50% 초과 확장(4구간 : 완독 가능성이 가장 높은 구간 or 1구간 : 완독 가능성이 가장 낮은 구간 포함)하지 않고도 완독 가능성이 어느 정도 있는 전체 48%에 해당하는 사람들을 집중타겟
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%')]
Python
복사
특정 유저의 특성 / 행동 데이터 파악하기
•
나이대 → 2030 선택
# 나이 구하기
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
Python
복사
•
성별 분포 → 여성 남성 모두 포함
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
Python
복사
•
이탈 비중이 많았던 장르
target_group_age['genre'].value_counts()
>>>
자기계발 48
웹툰 45
소설 38
경제/시사 26
Python
복사
•
이탈 사유
target_group_age['dropout_reason_detail_filled'].value_counts()
>>>
추천 실패 58
UX 불편 48
지루함 19
너무 김 15
기술 이슈 9
급한일 8
Python
복사
•
유입 경로
target_group_age['entry_channel'].value_counts()
entry_channel
추천 83
검색 34
홈메인배너 34
외부링크 6
Python
복사
•
추천 콘텐츠 클릭 여부 차이 없음
target_group_age['recommendation_clicked'].value_counts()
>>>
recommendation_clicked
True 107
False 50

