{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": {}, "report_default": { "hidden": true } } } } }, "outputs": [], "source": [ "from IPython.display import Markdown as md\n", "from IPython.display import display, HTML\n", "import pandas as pd\n", "import ipywidgets as widgets\n", "import seaborn as sns\n", "from pathlib import Path\n", "from datetime import datetime\n", "from recopytex import flat_df_students, pp_q_scores\n", "#import prettytable as pt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "cm = sns.light_palette(\"green\", as_cmap=True)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": {}, "report_default": { "hidden": true } } } }, "tags": [ "parameters" ] }, "outputs": [], "source": [ "tribe = \"308\"\n", "assessment = \"DM1\"\n", "date = \"15/09/16\"\n", "csv_file = Path(f\"../sheets/{tribe}/160915_{assessment}.csv\")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": {}, "report_default": { "hidden": false } } } } }, "outputs": [ { "data": { "text/markdown": [ "# DM1 (15/09/16) pour 308" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "if date is None:\n", " display(md(f\"# {assessment} pour {tribe}\"))\n", "else:\n", " display(md(f\"# {assessment} ({date}) pour {tribe}\"))" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": {}, "report_default": { "hidden": true } } } } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TrimestreNomDateExerciceQuestionCompetenceDomaineCommentaireBaremeEst_niveleEleveScoreNoteNiveauNormalise
01DM115/09/1611.1CalPrio1.01ABDOU Asmahane2.01.02.01.0
11DM115/09/1611.2CalPrio1.01ABDOU Asmahane3.01.03.01.0
21DM115/09/1611.3CalPrio1.01ABDOU Asmahane2.01.02.01.0
31DM115/09/1611.4CalPrio1.01ABDOU Asmahane2.01.02.01.0
41DM115/09/1611.5CalPrio1.01ABDOU Asmahane2.01.02.01.0
\n", "
" ], "text/plain": [ " Trimestre Nom Date Exercice Question Competence Domaine Commentaire \\\n", "0 1 DM1 15/09/16 1 1.1 Cal Prio \n", "1 1 DM1 15/09/16 1 1.2 Cal Prio \n", "2 1 DM1 15/09/16 1 1.3 Cal Prio \n", "3 1 DM1 15/09/16 1 1.4 Cal Prio \n", "4 1 DM1 15/09/16 1 1.5 Cal Prio \n", "\n", " Bareme Est_nivele Eleve Score Note Niveau Normalise \n", "0 1.0 1 ABDOU Asmahane 2.0 1.0 2.0 1.0 \n", "1 1.0 1 ABDOU Asmahane 3.0 1.0 3.0 1.0 \n", "2 1.0 1 ABDOU Asmahane 2.0 1.0 2.0 1.0 \n", "3 1.0 1 ABDOU Asmahane 2.0 1.0 2.0 1.0 \n", "4 1.0 1 ABDOU Asmahane 2.0 1.0 2.0 1.0 " ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stack_scores = pd.read_csv(csv_file, encoding=\"latin_1\")\n", "scores = flat_df_students(stack_scores).dropna(subset=[\"Score\"])\n", "scores = pp_q_scores(scores)\n", "scores.head()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": {}, "report_default": { "hidden": true } } } } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NoteBareme
ExerciceEleve
1ABDOU Asmahane5.06.0
ABOU Roihim0.06.0
AHMED BOINALI Kouraichia2.06.0
AHMED Rahada3.06.0
ALI SAID Anchourati0.06.0
\n", "
" ], "text/plain": [ " Note Bareme\n", "Exercice Eleve \n", "1 ABDOU Asmahane 5.0 6.0\n", " ABOU Roihim 0.0 6.0\n", " AHMED BOINALI Kouraichia 2.0 6.0\n", " AHMED Rahada 3.0 6.0\n", " ALI SAID Anchourati 0.0 6.0" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "exercises_scores = scores.groupby([\"Exercice\", \"Eleve\"]).agg({\"Note\": \"sum\", \"Bareme\": \"sum\"})\n", "exercises_scores.head()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": {}, "report_default": { "hidden": false } } } } }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Note Bareme
Eleve
ABDOU Asmahane6.512
ABOU Roihim012
AHMED BOINALI Kouraichia3.512
AHMED Rahada712
ALI SAID Anchourati012
ASSANE Noussouraniya5.512
BACAR Issiaka012
BACAR Samina412
CHAIHANE Said612
COMBO Houzaimati612
DAOUD Anzilati7.512
DAOUD Talaenti812
DARKAOUI Rachma812
DHAKIOINE Nabaouya112
DJANFAR Soioutinour7.512
DRISSA Ibrahim012
HACHIM SIDI Assani8.512
HAFIDHUI Zalifa812
HOUMADI Marie7.512
HOUMADI Sania5.512
MAANDHUI Halouoi8.512
MASSONDI Nasma812
SAIDALI Irichad712
" ], "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assessment_scores = scores.groupby([\"Eleve\"]).agg({\"Note\": \"sum\", \"Bareme\": \"sum\"})\n", "#assessment_scores.style.background_gradient(cmap=cm, subset=[\"Note\"])\n", "assessment_scores.style.bar(subset=[\"Note\"])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "12.0" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assessment_scores.Bareme.max()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": {}, "report_default": { "hidden": false } } } } }, "outputs": [ { "data": { "text/plain": [ "count 23.00\n", "mean 5.37\n", "std 3.08\n", "min 0.00\n", "25% 3.75\n", "50% 6.50\n", "75% 7.75\n", "max 8.50\n", "Name: Note, dtype: float64" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assessment_scores[\"Note\"].describe()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "dp = sns.distplot(assessment_scores.Note, bins=int(assessment_scores.Bareme[0])*2)\n", "dp.set(xlim=(0, assessment_scores.Bareme[0]))\n", "dp" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NoteBareme
ExerciceEleve
1ABDOU Asmahane5.06.0
ABOU Roihim0.06.0
AHMED BOINALI Kouraichia2.06.0
AHMED Rahada3.06.0
ALI SAID Anchourati0.06.0
\n", "
" ], "text/plain": [ " Note Bareme\n", "Exercice Eleve \n", "1 ABDOU Asmahane 5.0 6.0\n", " ABOU Roihim 0.0 6.0\n", " AHMED BOINALI Kouraichia 2.0 6.0\n", " AHMED Rahada 3.0 6.0\n", " ALI SAID Anchourati 0.0 6.0" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "exercises_scores.head()" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "extensions": { "jupyter_dashboards": { "version": 1, "views": { "grid_default": {}, "report_default": { "hidden": true } } } } }, "outputs": [], "source": [ "def st_results(student):\n", " html = \"
\"\n", " html += \"
\"\n", " \n", " ass = assessment_scores.loc[student]\n", " exercices = exercises_scores.xs(student, level=\"Eleve\")\n", " \n", " html += f\"

{student} -- {assessment}

\"\n", " html += f\"

{ass.Note} / {ass.Bareme}

\"\n", " for (i, ex) in exercices.iterrows():\n", " if not ex.Bareme == 0:\n", " html += f\"

Exercice {i} ({ex.Note}/{ex.Bareme})

\"\n", " html += scores.loc[(scores.Exercice==i) & (scores.Eleve==student)][[\"Question\", \"Commentaire\", \"Note\", \"Bareme\"]].to_html()\n", " html += \"
\"\n", " html += \"
\"\n", " return HTML(html)\n", " " ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "scrolled": false }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "788cdf676be445669085d7de593a8eeb", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(Dropdown(description='student', options=('ABDOU Asmahane', 'ABOU Roihim', 'AHMED BOINALI…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "widgets.interact(st_results, student=list(assessment_scores.index))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "celltoolbar": "Tags", "extensions": { "jupyter_dashboards": { "activeView": "grid_default", "version": 1, "views": { "grid_default": { "cellMargin": 10, "defaultCellHeight": 20, "maxColumns": 12, "name": "grid", "type": "grid" }, "report_default": { "name": "report", "type": "report" } } } }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }