달성률 계산 코드 짜기
요즘 너어어어무 강의 진도를 못 따라간다.
자격증(ADsP) 공부 때문에 집중을 제대로 못해서라기엔 기본적인 학습 집중도도, 능률도 떨어진 게 체감된다.
그래서 이번에 시작해 볼 방법은, 일일 계획 별 달성률 체크하기.
일단 SQL 코딩테스트를 풀면서, 1과 0으로만 표현된 컬럼이 있다면 이 컬럼의 평균을 구하는 것으로 비율 계산을 할 수 있다는 것을 알게 되었다.
예를 들어, 아래와 같은 테이블이 주어질 경우, 여자는 1, 남자는 0으로 표시하였다고 가정하자.
U_ID | SEX |
A001 | 1 |
A002 | 1 |
A003 | 0 |
A004 | 1 |
A005 | 0 |
A006 | 1 |
전체 인원 중 여성의 비율을 계산한다고 하면,
여성의 수(= 4명) / 전체 인원(= 6명) 이므로 약 66.6% 의 비율을 구할 수 있다.
이걸 SEX 컬럼에 대한 평균값을 구한다고 생각해보면,
AVERAGE = (1 + 1 + 0 + 1 + 0 + 1) / COUNT(SEX) = 4/6 가 될 것이고, 이는 위에서 계산한 비율과 같다.
이 점에서 착안해 매일 작성하고 있는 시간대 별 계획 테이블에 계획 완료 여부를 표시하는 컬럼을 추가했다.
시간 블럭 하나 당 계획을 완료하면 1, 미완일 경우 0을 표시하는 방식이다. 식사시간은 양심상 카운트에서 제외했다 :)
그리고 이걸 가지고 평균을 계산해서 매일 계획 달성률을 기록하는 것이다!
원래는 그냥 계산기 가지고 대충 계산하려고 했는데,
1이 몇 개 있는지 세기가 귀찮기도 하고 이왕 배운 Python과 pandas 라이브러리를 활용해보고자 코드를 짰다.
import pandas as pd
morning = pd.Series([1,1,1,0,0,0])
afternoon = pd.Series([1,0,0,0,0,1,1])
day = pd.concat([morning, afternoon])
avg_morning = round(morning.mean()*100,0)
avg_afternoon = round(afternoon.mean()*100,0)
avg_day = round(day.mean()*100,0)
print(f"오전 시간대 계획 달성률은 {avg_morning} % 입니다.")
print(f"오후 시간대 계획 달성률은 {avg_afternoon} % 입니다.")
print(f"오늘의 하루 계획 달성률은 {avg_day} % 입니다.")
그렇게 계산한 오늘(5/13)의 계획 달성률 :
- 오전 : 50%
- 오후 43%
- 하루 전체 : 46%
저조하다...... 일단 이 달성률을 최소 60% 까지는 끌어올리는 걸 목표로 해야겠다.
그렇게 어느 정도 목표 대비 달성이 눈에 들어오면 그 때 부터 조금씩 목표를 상향 조정해서, 최종적으로는 80~90%대의 달성률을 찍을 수 있도록 해봐야겠다.
추가로, 조금 더 자동화가 가능하지 않을까? 하는 생각을 했다.
코드로 한 번에 써내려갈 수는 없지만, 보아하니 왠지 input() 함수와 반복문을 이용하면 series를 하나씩 손으로 써줄 필요 없이 바로 계산 가능하게 만들 수 있을 거 같다. 모르긴 몰라도 노션에 임베드도 할 수 있을 것만 같다. 왠지...!
하나의 미니 사이드 프로젝트처럼 가지고 가면서 5월 안에 여기까지 코드로 구현해봐야겠다.
그래도 알고리즘 코딩테스트 좀 풀었다고, 파이썬 좀 배웠다고 이만큼이나 코드를 쓸 수 있어져서 뿌듯하다!!
'내일배움캠프_데이터분석_2기 > NOT_STUDY' 카테고리의 다른 글
[데이터 분석 프로젝트] E-Commerce 매출 활성화를 위한 전략 방안 도출 (0) | 2024.09.03 |
---|---|
[데이터 분석 프로젝트] 호텔 운영관리 대시보드 구축 (1) | 2024.07.18 |
노션 활용하기 : 학습 관리용 페이지 구조 설계하고 사용하기 (0) | 2024.07.17 |
공부가 하기 싫을 땐 노션으로 DB와 대시보드를 만들자! (0) | 2024.04.25 |
2024 내일배움캠프_데이터분석_스타터노트 (0) | 2024.04.12 |