일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 태블로
- 히트맵
- 데이터 분석
- 팀프로젝트
- 기초통계
- jd
- 군집화
- 시각화
- 클러스터링
- 데이터분석
- 프로젝트
- lambda
- 프롬프트 엔지니어링
- cross join
- If
- 기초프로젝트
- 머신러닝
- Chat GPT
- 전처리
- 최종 프로젝트
- data analyst
- streamlit
- pandas
- 크롤링
- SQL
- 서브쿼리
- da
- Python
- SQLD
- GA4
Archives
- Today
- Total
세조목
심화프로젝트 7일차(시간별/요일별 사용자수 히트맵)(24.02.12) 본문
시간별/요일별 사용자수 히트맵
1. UNIX타임스탬프를 일반시간으로 변경하고 컬럼으로 추가
visitStartTime_UTC = pd.to_datetime(train_df2['visitStartTime'], unit='s')
train_df2['visitStartTime_UTC'] = visitStartTime_UTC
2. 시간 구하기
train_df2['hour'] = train_df2['visitStartTime_UTC'].dt.hour
3. 요일 구하기
train_df2['day_of_the_week'] = train_df2['date'].dt.weekday
4. 코호트 차트 만들기
grouping = train_df2.groupby(['day_of_the_week', 'hour'])
cohort_data = grouping['fullVisitorId'].apply(pd.Series.nunique)
cohort_data = pd.DataFrame(cohort_data)
cohort_data.head(5)
# 인덱스(day_of_the_week)를 컬럼으로 올리기
cohort_data = cohort_data.reset_index()
cohort_data.head()
5. 피벗테이블 만들기
cohort_counts = cohort_data.pivot(index='day_of_the_week', columns = 'hour', values = 'fullVisitorId')
6. 요일별 총 사용자수 계산해서 피벗 테이블 內 속성값들의 비율 구하기
# 요일별 총 사용자수 계산
weekly_sum = cohort_data.groupby('day_of_the_week')['fullVisitorId'].sum()
# 비율 구하기
retention = cohort_counts.divide(weekly_sum, axis=0)
retention = retention*100
피벗테이블 內 속성값들은 모두 사용자수로
각각의 수치들이 전체에서 차지하는 비중을 확인하기위해
요일별 총 사용자수를 계산하고 그 값으로 피벗테이블 내 값들을 나눠준다.
7. 히트맵 그리기
plt.figure(figsize=(20,5))
sns.heatmap(data=retention, annot=True, vmin=0, vmax=6, cmap='OrRd')
plt.title('Hour & Day_of_the_week Cohort Analysis', fontsize=20, pad=30)
plt.xlabel('Hour', fontsize=10, labelpad=10)
plt.ylabel('Day_of_the_week', fontsize=10, labelpad=50, rotation=360)
plt.yticks(rotation=360)
plt.show()
'데이터 분석 공부 > 프로젝트' 카테고리의 다른 글
심화 프로젝트 10일차(24.02.15) (0) | 2024.02.15 |
---|---|
심화 프로젝트 8~9일차(24.02.14) (0) | 2024.02.14 |
심화 프로젝트 6일차(방문 주차에따른 코호트 & 코호트별 weekly 리텐션 구하기)(24.02.11) (0) | 2024.02.11 |
심화 프로젝트 4~5일차(DAU, WAU, MAU구하기)(24.02.09~10) (1) | 2024.02.11 |
심화 프로젝트 3일차(24.02.08) (0) | 2024.02.08 |