2022. 1. 21. 20:29ㆍ개발의 흔적/데이터분석
# 강의 커리큘럼의 수강비율 조사해보기!
#data 불러오기
import pandas as pan
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Malgun Gothic'
enroll =pan.read_csv('./week03/data/enrolleds_detail.csv')
enroll

lecturesName = pan.read_csv('./week03/data/lectures.csv')
lecturesName

#두 데이터set에서 lecture_id column이 같음 (sql로 따지면 서로의 foriegn key)
# -> 그래서 두 dataset을 가공 후 pandas의 DataFrame 으로 합쳐줄 것!
#enroll dataset 가공
enroll_detail = enroll.groupby('lecture_id')['user_id'].count() #각 강의는 순서대로 저장되어있음/ user_id의 count는 각 강의 들은 학생 수
enroll_detail
plt.figure(figsize=(22, 5))
plt.bar(enroll_detail.index, enroll_detail/157*100)
plt.title('강의에 따른 수강완료 학생 퍼센트')
plt.xticks(rotation = -60)
plt.xlabel('course')
plt.show()

# x축의 문자들이 현재 lecture_id로 나옴 ->이를 실제 강의이름으로 바꿔줄 것!
#new DataFrame 생성 후 가공
lectureCount = pan.DataFrame(enroll_detail) # pandas에서 enroll_data로 new DataFrame생성
lectureCount = lectureCount.reset_index() #현재 index lecture_id -> 다시 지정
lectureCount =lectureCount.rename(columns = {'user_id' : 'count'}) #학생수 count한 것의 colume name이 user_id 이므로 알맞게 새로지정

lectureFinal = lectureCount.join(lecturesName, on='lecture_id') # lecture_id라는 공통 column을 기준으로 join
lectureFinal

#최종적으로 시각화
plt.figure(figsize=(22, 5))
plt.bar(lectureFinal['title'], lectureFinal['count']/157*100)
plt.xticks(rotation = 90)
plt.xlabel('강의명')
plt.title('수강생의 강의 목차별 수강비율')
plt.ylabel('percentage')
plt.show()

#2주차에서 3주차 강의로 넘어갈 때, 수강생의 약 15%가 강의 커리큘럼에서 하차하는 것을 볼 수 있다!
# 주요 point
lectureCount = pan.DataFrame(enroll_detail) # pandas에서 enroll_data로 new DataFrame 생성
lectureCount = lectureCount.reset_index() #현재 index lecture_id -> 다시 지정
lectureCount =lectureCount.rename(columns = {'user_id' : 'count'})
#학생수 count한 것의 colume name이 user_id 이므로 알맞게 새로지정
lectureFinal = lectureCount.join(lecturesName, on='lecture_id') # lecture_id라는 공통 column을 기준으로 join
'개발의 흔적 > 데이터분석' 카테고리의 다른 글
| #03_03[python] 데이터 날짜변환 heatmap (0) | 2022.01.24 |
|---|---|
| #03_02 [python] WorldCloud (0) | 2022.01.23 |
| #01_2 [python] pandas & matplotlib 을 이용한 데이터 가공 / 시각화 (0) | 2022.01.21 |
| #02 [python] folium library - 데이터 지도로 시각화 (0) | 2022.01.21 |
| #01 [python] pandas & matplotlib 을 이용한 데이터 가공 / 시각화 (0) | 2022.01.08 |