<aside> 📌 Task : 추천/검색 유입 관련 데이터 타입 정제

</aside>

https://colab.research.google.com/drive/1CjhB1Cx3pShQ_CxZj8A7ebLrare4el_h?usp=sharing

### 코멘트
1. entry_channel 컬럼 정제 필요시 : 대소문자 차이 또는 공백/특수문자 등의 불일치케이스 확인 필요
2. recommendation_clicked 컬럼 정제 필요시 : 논리형(boolean)
3. 연령대에서 60대를 분리하지 않은 이유?

<aside> 📌 실행 및 진행 사항 정리

</aside>

df['birthday'] = pd.to_datetime(df['birthday'], errors='coerce')
df['age'] = 2025 - df['birthday'].dt.year
df['age_group'] = pd.cut(df['age'], bins=[10, 19, 29, 39, 49, 100], labels=['10s', '20s', '30s', '40s', '50s+'])

df['last_access_timestamp'] = pd.to_datetime(df['last_access_timestamp'], errors='coerce')
df['access_hour'] = df['last_access_timestamp'].dt.hour
df['time_band'] = pd.cut(df['access_hour'], bins=[0, 6, 12, 18, 24], labels=['Dawn', 'Morning', 'Afternoon', 'Evening'], right=False)

tech_dropout_df = df[
    (df['dropout_reason_category'].isin(['UX 불편', '기술 이슈'])) |
    (df['dropout_reason_detail'] == '추천 실패')
]

<aside> 📌 결과

</aside>

user_id gender birthday device_type subscription_plan theme_mode \ 0 user_0001 male 1998-06-17 mobile monthly dark