PM 트랙_강의/데이터 분석

파이썬(Python) 과제하기 - 최적의 즉문즉답 시간대 찾기

은하_carol 2025. 1. 13. 17:42
🎯 목적: 수강생의 즉문즉답 수요가 많은 요일을 알아내서 튜터님의 수를 요일에 따라 적절하게 배치하고 싶다.
✍🏻 정보: 수강생들의 수강이 완료되는 시점이 필요하다.
🤔 가설: 수강생들의 수업 완료 시간대는 주로 한가한 주말일 것이다.

 

데이터 전처리

1. 라이브러리 사용 선언

import pandas as pd

 

2. 파일 불러오기 및 읽기

sparta_data = pd.read_table('/content/done_detail.csv', sep = ',')
sparta_data.head()

실행 결과

  • 컬럼 정보
    • lecture_id: 수강 강의 Id
    • done_date: 수강 완료 날짜 및 시간
    • user_id: 유저 Id
  • 필요한 데이터는 done_date(수강 완료 날짜 및 시간)user_id(유저 Id)

 

3. 데이터 전처리

  • 문자열로 구성된 시간을 날짜 형식으로 변환
sparta_data['done_date_time'] = pd.to_datetime(sparta_data['done_date'], format = 'mixed')
sparta_data.tail(5)

실행 결과

  • 날짜에 해당하는 요일 조회
sparta_data['done_date_time_weekday'] = sparta_data['done_date_time'].dt.day_name()
sparta_data.tail(5)

실행 결과

  • 요일별 수강 완료 수강생 수 구하기
weeks = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
weekdata = sparta_data.groupby('done_date_time_weekday')['user_id'].count()
weekdata = weekdata.agg(weeks)
weekdata

실행 결과

 

데이터 시각화

1. 라이브러리 사용 선언

import matplotlib.pyplot as plt

# 한글 깨짐 방지
plt.rc('font', family = 'NanumBarunGothic')

 

2. 요일별 수강 완료 수강생 수 라인 그래프 그리기

# 그래프 사이즈
plt.figure(figsize = (10, 5))

# 그래프 x축 y축
plt.bar(weekdata.index, weekdata)

# 그래프 명
plt.title('요일별 수강 완료 수강생 수')

# 그래프 x축 레이블
plt.xlabel('요일')

# 그래프 y축 레이블
plt.ylabel('수강생(명)')

# x축 레이블을 90도로 변환 
plt.xticks(rotation = 90)

# 그래프 출력
plt.show()

실행 결과