얼마전 6학년 학생들과 3시간에 걸친 국어, 영어, 수학 진단평가를 실시하였다.
이제까지 진단평가 결과를 제대로 활용하지 못했던 것 같다. 이번에는 진단평가를 제대로 활용하여 학생들의 개별 특성에 맞는 수업을 운영하기 위해 개별 과목의 영역별 점수 데이터와 그래프를 알아보고자 했다.
학생들 점수를 표로 만들고, 해당 표를 바탕으로 각 과목의 영역별 점수, 총 점수를 구했다.
그리고 각 과목의 80점이 넘는 학생들을 수치화했는데...
그 결과는 매우 충격적이었다.
코로나로 인해 기초학습 지도가 부족했다는 말을 듣기는 했지만, 데이터를 분석하고 그래프를 그려보니 그 말이 더욱더 가슴에 와닿는다.
학생들의 개인 정보로 인해 데이터를 공개하지는 못하나 어떤 과정을 통해 데이터와 그래프를 만들었는지 공유한다.
1. 학생 진단평가 결과를 아래의 표에 정리했다.
https://docs.google.com/spreadsheets/d/1Yaz-ocoaYSIiLMlhaO4PWtQiOL4zQ3Wx79qyNbOP3r4/edit?usp=sharing
2022_6학년_국어H_진단평가 결과의 사본
시트1 문항,영역,학생1,학생2,학생3,학생4,학생5,학생6,학생7,학생8,학생9,학생10,학생11 1,문학 2,문법 3,듣기말하기 4,듣기말하기 5,쓰기 6,문법 7,문법 8,듣기말하기 9,읽기 10,읽기 11,문법 12,쓰기 13,읽
docs.google.com
-정답의 경우 빈칸으로 두고, 오답의 경우 소문자 x 표시함
2. 위 표를 excel 파일로 다운 받는다.
3. 각 영역별 총합과 총점을 데이터프레임으로 만든다(소스 코드는 아래와 같다)
#표 만들기 위한 pandas
import pandas as pd
#array 활용을 위한 numpy
import numpy as np
#데이터 불러오기
df = pd.read_excel(io="2022_6학년_국어H_진단평가 결과.xlsx")
#데이터 전처리
df = df.fillna(int(4)) #Nan은 4점으로(정답이니)
df["문항"] = df["문항"].apply(int) #"문항"이 1.0으로 표시되어 1과 같이 표시되게 설정1
df["문항"] = df["문항"].apply(str) #"문항"이 1.0으로 표시되어 1과 같이 표시되게 설정2
df = df.replace("x", 0) #x는 0점으로(오답이니)
df.index = df["문항"] #행 이름은 문항 번호로. 1~25번
df = df.iloc[:, 1:] #중복되는 문항 열 삭제
#엑셀 파일로 만들기 위한 함수 설정
def grade_sum(data, class_number=1, subject="국어"): #data에는 DataFrame이 들어감.
list_area = np.unique(data["영역"]) #영역별 총점을 살펴보기 위해 DataFrame의 고유 영역값 추출
list_df = [] #학생 점수 데이터 넣을 리스트
for area in list_area: #각 영역별 총점 시리즈 list_df에 넣기
list_df.append(data.loc[data["영역"]==area].sum()[1:].apply(int))
list_df.append(data.sum()[1:]) #총점 시리즈 list_df에 넣기
df = pd.concat(list_df, axis=1) #각 시리즈를 합쳐서 하나의 DataFrame으로 변환
list_area = np.append(list_area, "총점") #"영역"에 "총점" 추가
df.columns = list_area #열 이름 설정(각 영역명 + "총점")
df.to_excel(str(class_number)+"반"+subject+"진단평가결과.xlsx", encoding="utf-8-sig") #xlsx 파일로 만들기
#엑셀파일 만들기 실행
grade_sum(df)
위 방법을 통해 "국어, 영어, 수학"의 영역별 점수 및 총점 데이터를 확보했다.
이를 활용해 그래프로 만든 것은 다음 글에서 포스팅 하겠음!
'데이터 분석' 카테고리의 다른 글
통계와 친해지는 사이트, KOSIS 통계놀이터 (0) | 2022.03.27 |
---|---|
(데이터, 그래프 비공개)6학년 진단평가 결과(2/2) (0) | 2022.03.22 |
커리어넷 연봉 그래프 만들기 (0) | 2022.03.15 |
워드클라우드 생성 프로그램 만들기(1/?) (0) | 2022.03.08 |
2017-2020 년 서울 모기지수 평균 그래프 (2) | 2022.03.06 |
댓글