본문 바로가기

TIL

[240215] 피벗 테이블을 활용한 히트맵 시각화

* 자료 출처: Kaggle - Google Analytics Customer Revenue Prediction

 

1. 문제 배경

- 요일별-시간대별 방문자수와 구매수를 히트맵으로 시각화 

 

2. 히트맵 생성

# 시간대별 데이터 출력을 위해 시간으로 변환
visit_hour = df['visitStartTime'].dt.hour
visit_dayofweek = df['visitStartTime'].dt.weekday # 월요일이 0 

# 피봇테이블 생성
# 행 index는 시간, 열 columns는 요일, 사용할 값은 방문자수
wod_hour_pivot = pd.pivot_table(df, index=visit_hour, columns=visit_dayofweek, values=['fullVisitorId'], aggfunc = 'count')

# 요일-시간대 히트맵 생성 
plt.figure(figsize=(10, 8))
sns.heatmap(wod_hour_pivot, cmap='Blues', annot=False, linewidths=2)
plt.title('Number of Users by a Day of the Week and Hour')
plt.xlabel('Day of the Week')
plt.ylabel('Hour')
plt.xticks(range(7), labels=['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], rotation=0)

 

 

 

 

# 구매수 데이터로 피봇테이블 생성
# 행 index는 시간, 열 columns는 요일, 사용할 값은 구매수
purchase_wod_hour_pivot = pd.pivot_table(df, index=purchase_hour, columns=purchase_dayofweek, values=['fullVisitorId'], aggfunc = 'count')

#요일-시간대 히트맵 생성 
plt.figure(figsize=(10, 8))
sns.heatmap(purchase_wod_hour_pivot, cmap='Blues', annot=False, linewidths=2)
plt.title('Number of Purchase by a Day of the Week and Hour')
plt.xlabel('Day of the Week')
plt.ylabel('Hour')
plt.xticks(range(7), labels=['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], rotation=0)