본문 바로가기
데이터 분석

(데이터, 그래프 비공개)6학년 진단평가 결과(1/2)

by 너구리선생님 2022. 3. 21.
반응형

충격적인 결과!

얼마전 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)

위 방법을 통해 "국어, 영어, 수학"의 영역별 점수 및 총점 데이터를 확보했다.

이를 활용해 그래프로 만든 것은 다음 글에서 포스팅 하겠음!

반응형

댓글