2026/03/11
커리어 스터디 마무리커리어 스터 발표 자료 취합- 데이터 분석 종합 3강
도메인 관련 강의 찾아보기
⊙ 데이터 분석 종합반_3강
파이썬 데이터 분석 - Pandas + Matplotlib 사용

Pandas가지고 Correlation(상관관계) 분석 말고 다른 방법도 사용할 예정
데이터 분석 방법은 항상 같음

데이터 분석 기본 세팅 + 데이터 분석 → Pandas // 시각화 → Matplotlib
<실습 - 미션 : 회의에 나왔던 이야기들에서 데이터 분석이 필요한 부분을 살펴봄>
1. 수강생들이 가장 많이/적게 드는 시간과 요일을 데이터 분석으로 찾기
1) 판다스 사용 선언

2) 데이터 가져오기

3) 데이터 살펴보기



int = integer = 정수
<class 'int'> : 1이라는 데이터는 정수형이야
str = string
<class 'srt'> : hello라는 데이터는 문자열이

문자로 인식하고 있음

<실습 - 미션 : 회의에 나왔던 이야기들에서 데이터 분석이 필요한 부분을 살펴봄>
미션1. (데이터 세팅+분석) 수강생들이 가장 많이/적게 드는 시간과 요일을 데이터 분석으로 찾기
1) 판다스 사용 선언

2) 데이터 가져오기

access_detail 파일 - 경로복사 - 괄호에 붙여넣기 - , sep=','만 넣어주기
3) 데이터 살펴보기

4) 데이터 가공하기


int = integer = 정수
<class 'int'> : 1이라는 데이터는 정수형이야
str = string = 문
<class 'srt'> : hello라는 데이터는 문자열이

문자로 인식하고 있음

to_datetime() : 괄호 안, 해당 열 데이터를 날짜, 시간 데이터로 변경해
↓ pandas가 알 수 있는 날짜로 바꿔주는 과정

5) 데이터 분석
Q - 목요일에 몇명 듣는지? 시간대 별로 몇명 듣는지?

groupby('컬럼명')을 사용하면 데이터를 특정 기준으로 그룹화하여 처리할 수 있음 - 요일별로 묶을 수 있음
count()을 이용하여 해당 데이터의 개수를 세고
마지막으로 agg("변수")를 이용하여 ~~하면 변수 안 데이터 별 합계 구할 수 있음
A - Friday 859 / Monday 1354 / Saturday 926 / Sunday 1541 / Thursday 937 / Tuesday 1624 / Wednesday 887
화요일 1624로 화요일에 수업을 제일 많이 듣는다
목요일은 937로 4번째로 많이 듣는 요일임을 알 수 있음

시간 기준 정렬 : 0~24h 순으로 나열 해줌
sort_index() : 데이터 오름차순(ascending) 정렬
sort_index(ascendign=False) : 데이터 내림차순(descending) 정렬
미션1. (시각화) 수강생들이 가장 많이/적게 드는 시간과 요일을 데이터 분석으로 찾기
1) Matplotlib, Numpy 선언

넘파이 : 파이썬으로 수치 계산할 때, 복잡한 수치 계산을 빠르고 용이하게 도와주는 라이브러리
2) 요일별 수강생 수 그래프 그리기




np.arange() : 0~특정 숫자까지 나열하는 함
Hoxy 한글이 깨진다면 나눔폰트 설치

+코드하여 새 cell 붙여 넣고 실행
런타임 다시 시작(=런타임 세선 다시 시작)
후

피규어 사이즈 밑에 추가 해주면
깨진 한글 복

3) 히트맵 그리기

= 산 높이 표시한 "능고선"같은 그래


A - 월요일 0시는 67명 / 화요일 0시는 51


미션1. (결론) 수강생들이 가장 많이/적게 드는 시간과 요일을 데이터 분석으로 찾기

화요일, 일요일 수강 인원이 가장 많고
금요일, 수요일 수강 인원이 가장 적다

18시쯤 접속이 가장 많았으며
21시쯤 접속이 가장 저조하

화요일 18시 가장 많은 접속자가 있음을 확인 할 수 있다
그리하여,
수강이 가장 많은 화요일, 일요일 저녁 시간
수강이 가장 적은금요일, 수요일 오전 시간
고객 관리 문자가 가장 효율적인 시간대로 보인
미션2. 제품 수요가 많은 지역을 찾아라!! _ 라인 그래프 그리기
미션2. (데이터 셋팅 및 분석) 제품 수요가 많은 지역을 찾아라!! _ 라인 그래프 그리기
1) Pandas 선언

lecture_id : 수강강의 id
area : 접속 지역
latitude : 해당 지역 위도
longitude : 해당 지역 경도
user_id : 유저 id
→ user_id / area / latitude / longitude 필요
→ 수업 신청한 수강생 수를 지역별로 나누는 것!!
2) 지역 분류

set() : 중복값 제거 함수
len() : length 길이를 계산하겠다 → 지역이 12개
3) 데이터 가공 : 불필요한 데이터 제거 및 재조
→ 지역 정보, 그 지역의 수강생 수만 필요

ascending=[True]
True : 오름차순
False : 내림차순





각 지역별 총 학생수 구하기

미션2. (시각화) 제품 수요가 많은 지역을 찾아라!! _ 라인 그래프 그리기
1) matplotlib, numpy 선언

2) 꺽은 선 그래프 그리기


서울 수요가 가장 많다는 걸 알 수 있다
3) 지도 그래프 그리기


반복문? 반복되는 작업을 코드로 "자동화"할 때 사용하는 파이썬 문법
→ 데이터 호출에 반복 수행이 필요한 경우 사용
→ 리스트, 딕셔너리 많이





미션2. (결론) 제품 수요가 많은 지역을 찾아라!! _ 라인 그래프 그리기


서울 수요가 가장 많다는 걸 알 수 있으며 서울>>>대전>부산 순으로 많다
⊙ 3강 숙제 다시 풀어보기
<시나리오 - (질문에 대한 답변을 위한 튜터 배치를 위해) 수강 완료가 가장 많은 다음 날하려고 한다.
"수강생들은 한가한 주말에 수강 완료가 가장 많은 것이다" >
문제 정의 및 가설 설정 → 데이터 기본 세팅 → 데이터 가공 및 분석 → 분석 결과 시각화 → 최종 결론 도출
| 문제 정의 및 가설 설정 | user사용자가 언제 done data수강완료가 많은지 찾아 적합한 튜터 배치 요일 도출 |
| 데이터 기본 세팅 & 데이터 확인 |
#pandas사용선언
import pandas as pd
#데이터 가져오기
sparta_data = pd.read_table('/content/done_detail.csv',sep=',')
#데이터 확인 및 표 읽기
sparta_data.head()
|
| 데이터 가공 & 분석 |
#중요 데이터인 done data의 종류 묻기
print(type(sparta_data['done_date'][0]))
#문자로 인식하고 있음
#문자가 아닌 날짜 데이터로 가공
format='%Y-%m-%d %H:%M:%S'
sparta_data['done_date_time'] = pd.to_datetime(sparta_data['done_date'], format='mixed', errors='coerce')
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
|
| 데이터 분석 결과 | 화요일>일요일>월요일 순 |
| 데이터 시각화 |
#시각화 선언
import matplotlib.pyplot as plt
import numpy as np
#한글깨지기전에 조치
plt.rc('font', family='NanumBarunGothic')
#그래프 그리기
#그래프 사이즈
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()
|
| 최종 결론 도출 | ![]() ● 화>일>월 순으로 수강 완료자 수가 많다 ● 초기 가설인 주말보다 평일 완료자 수가 많다는 결과 도출 ● 수강을 많이 끝내는 화요일 다음날인 수요일에 많은 튜터를 배치를 권장한다 |


날짜 변환에서 부터 왜 자꾸 에러가 나는 건가요? 파이썬,,, 정말 너무 어렵네요
내일 처음부터 다시 들어야 할 것 같아요,,, 될때까지,,,,
'내일배움캠프(QC,QA_5기)' 카테고리의 다른 글
| [내일배움캠프] QA/QC 5기 - 6일차 (1) _ 팀회고 (1) | 2026.03.16 |
|---|---|
| [내일배움캠프] QA/QC 5기 - 5일차 _ 데이터분석종합 4강 (1) | 2026.03.13 |
| [내일배움캠프] QA/QC 5기 - 4일차 _ (0) | 2026.03.13 |
| [내일배움캠프] QA/QC 5기 - 2일차 _ 데이터분석종합 2강 (1) | 2026.03.10 |
| [내일배움캠프] QA/QC 5기 - 1일차 _ 데이터종합분석1강 (0) | 2026.03.09 |
