From 9d0e6716714551273f9a8c73453e110724703388 Mon Sep 17 00:00:00 2001 From: Bertrand Benjamin Date: Sun, 10 Sep 2017 18:41:11 +0300 Subject: [PATCH] make a report for D1 for 302 --- Notes/302.ipynb | 482 +---- Notes/302/302_DS1.pdf | Bin 0 -> 82333 bytes Notes/302/302_DS1.tex | 1346 ++++++++++++ Notes/recopytex.db | Bin 86016 -> 86016 bytes Notes/reports.py | 128 ++ Notes/tests reports.ipynb | 4136 +++++++++++++++++++++++++++++++++++++ Notes/tpl_report.tex | 61 + tools/style/base.sty | 2 +- tools/style/shortcuts.sty | 9 + 9 files changed, 5793 insertions(+), 371 deletions(-) create mode 100644 Notes/302/302_DS1.pdf create mode 100644 Notes/302/302_DS1.tex create mode 100644 Notes/reports.py create mode 100644 Notes/tests reports.ipynb create mode 100644 Notes/tpl_report.tex diff --git a/Notes/302.ipynb b/Notes/302.ipynb index 3b7fa2d..8f59ad2 100644 --- a/Notes/302.ipynb +++ b/Notes/302.ipynb @@ -10,7 +10,9 @@ { "cell_type": "code", "execution_count": 1, - "metadata": {}, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "import sqlite3\n", @@ -141,12 +143,17 @@ { "cell_type": "code", "execution_count": 9, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ - "questions_scores = pd.read_sql_query(\"SELECT student.name, student.surname, score.value, question.competence\\\n", + "questions_scores = pd.read_sql_query(\"SELECT \\\n", + " student.name as name,\\\n", + " student.surname as surname,\\\n", + " score.value as value, \\\n", + " question.competence as competence,\\\n", + " question.name as question,\\\n", + " exercise.name as exercise, \\\n", + " eval.name as eval\\\n", " FROM score\\\n", " JOIN question ON score.question_id==question.id \\\n", " JOIN exercise ON question.exercise_id==exercise.id \\\n", @@ -157,6 +164,13 @@ " params = (eval_id,))" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On efface les lignes sans \"value\"" + ] + }, { "cell_type": "code", "execution_count": 10, @@ -168,6 +182,13 @@ "questions_scores = questions_scores[questions_scores[\"value\"]!='']" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On transforme les \"value\" en score" + ] + }, { "cell_type": "code", "execution_count": 11, @@ -199,109 +220,34 @@ "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
namesurnamevaluecompetencescore
0ABDALLAH ALLAOUITaiassima1Cher1
1ABDALLAH ALLAOUITaiassima2Cal2
2ABDALLAH ALLAOUITaiassima.Cal0
3ADANIIsmou2Cher2
4ADANIIsmou2Cal2
\n", - "
" - ], - "text/plain": [ - " name surname value competence score\n", - "0 ABDALLAH ALLAOUI Taiassima 1 Cher 1\n", - "1 ABDALLAH ALLAOUI Taiassima 2 Cal 2\n", - "2 ABDALLAH ALLAOUI Taiassima . Cal 0\n", - "3 ADANI Ismou 2 Cher 2\n", - "4 ADANI Ismou 2 Cal 2" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "questions_scores.head()" + "#questions_scores.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Nom des élèves en entier" ] }, { "cell_type": "code", "execution_count": 14, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "questions_scores[\"fullname\"] = questions_scores[\"name\"] + \" \" + questions_scores[\"surname\"]" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Nom des compétences en entier" + ] + }, { "cell_type": "code", "execution_count": 15, @@ -309,6 +255,40 @@ "collapsed": true }, "outputs": [], + "source": [ + "def competence_fullname(x):\n", + " competences = {\n", + " \"Cher\": \"Chercher\",\n", + " \"Mod\": \"Modéliser\",\n", + " \"Rep\": \"Représenter\",\n", + " \"Rai\": \"Raisonner\",\n", + " \"Cal\": \"Calculer\",\n", + " \"Com\": \"Communiquer\",\n", + " \"Con\": \"Connaître\"\n", + " }\n", + " try:\n", + " return competences[x['competence']]\n", + " except KeyError:\n", + " return \"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "questions_scores[\"abv_competence\"] = questions_scores[\"competence\"]\n", + "questions_scores[\"competence\"] = questions_scores.apply(competence_fullname, axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": true + }, + "outputs": [], "source": [ "def score_mean(x):\n", " mean = np.mean(x)\n", @@ -319,8 +299,10 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": {}, + "execution_count": 18, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "report_comp = pd.pivot_table(questions_scores,\n", @@ -339,8 +321,10 @@ }, { "cell_type": "code", - "execution_count": 17, - "metadata": {}, + "execution_count": 19, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "report_comp.columns = report_comp.columns.levels[-1]" @@ -348,292 +332,50 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 20, "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", - " \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", - " \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", - "
competenceCalCherComRai
fullname
ABDALLAH ALLAOUI Taiassima2222
ADANI Ismou1212
AHAMADA Dhoulkamal0310
AHAMADI Asbahati3333
AHAMADI OUSSENI Ansufiddine1110
AHAMED Fayadhi1321
AHMED SAID Hadaïta2333
ALI MADI Anissa2323
ALI Raydel3222
ATTOUMANE ALI Fatima1100
BACHIROU Elzame0210
BINALI Zalida1220
BOINA Abdillah Mze Limassi2223
BOUDRA Zaankidine0000
HALADI Asna2333
HALIDI Soibrata1220
HAMEDALY Doulkifly1011
IBRAHIM Nassur1211
INOUSSA Anchoura1222
MOHAMED Nadia0100
MOUHOUDHOIRE Izak0100
MOUSSRI Bakari0211
SAKOTRA Claudiana1010
SAÏD Fatoumia2323
TOUFAIL Salahou1233
\n", - "
" - ], - "text/plain": [ - "competence Cal Cher Com Rai\n", - "fullname \n", - "ABDALLAH ALLAOUI Taiassima 2 2 2 2\n", - "ADANI Ismou 1 2 1 2\n", - "AHAMADA Dhoulkamal 0 3 1 0\n", - "AHAMADI Asbahati 3 3 3 3\n", - "AHAMADI OUSSENI Ansufiddine 1 1 1 0\n", - "AHAMED Fayadhi 1 3 2 1\n", - "AHMED SAID Hadaïta 2 3 3 3\n", - "ALI MADI Anissa 2 3 2 3\n", - "ALI Raydel 3 2 2 2\n", - "ATTOUMANE ALI Fatima 1 1 0 0\n", - "BACHIROU Elzame 0 2 1 0\n", - "BINALI Zalida 1 2 2 0\n", - "BOINA Abdillah Mze Limassi 2 2 2 3\n", - "BOUDRA Zaankidine 0 0 0 0\n", - "HALADI Asna 2 3 3 3\n", - "HALIDI Soibrata 1 2 2 0\n", - "HAMEDALY Doulkifly 1 0 1 1\n", - "IBRAHIM Nassur 1 2 1 1\n", - "INOUSSA Anchoura 1 2 2 2\n", - "MOHAMED Nadia 0 1 0 0\n", - "MOUHOUDHOIRE Izak 0 1 0 0\n", - "MOUSSRI Bakari 0 2 1 1\n", - "SAKOTRA Claudiana 1 0 1 0\n", - "SAÏD Fatoumia 2 3 2 3\n", - "TOUFAIL Salahou 1 2 3 3" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" + "ename": "TypeError", + "evalue": "cannot do slice indexing on with these indexers [ name surname value competence question \\\n0 ABDALLAH ALLAOUI Taiassima 2 Chercher 1 \n1 ABDALLAH ALLAOUI Taiassima 2 Calculer 2 \n2 ABDALLAH ALLAOUI Taiassima . Calculer 2.c \n3 ADANI Ismou 2 Chercher 1 \n4 ADANI Ismou 2 Calculer 2 \n5 ADANI Ismou 1 Calculer 2.c \n6 AHAMADA Dhoulkamal 3 Chercher 1 \n7 AHAMADA Dhoulkamal 0 Calculer 2 \n8 AHAMADA Dhoulkamal 0 Calculer 2.c \n9 AHAMADI Asbahati 3 Chercher 1 \n10 AHAMADI Asbahati 3 Calculer 2 \n11 AHAMADI Asbahati 0 Calculer 2.c \n12 AHAMADI OUSSENI Ansufiddine 1 Chercher 1 \n13 AHAMADI OUSSENI Ansufiddine 2 Calculer 2 \n14 AHAMADI OUSSENI Ansufiddine . Calculer 2.c \n15 AHAMED Fayadhi 3 Chercher 1 \n16 AHAMED Fayadhi 2 Calculer 2 \n17 AHAMED Fayadhi 0 Calculer 2.c \n18 AHMED SAID Hadaïta 2 Chercher 1 \n19 AHMED SAID Hadaïta 2 Calculer 2 \n20 AHMED SAID Hadaïta 2 Calculer 2.c \n21 ALI Raydel 2 Chercher 1 \n22 ALI Raydel 0 Calculer 2 \n23 ALI Raydel 2 Calculer 2.c \n24 ALI MADI Anissa 3 Chercher 1 \n25 ALI MADI Anissa 1 Calculer 2 \n26 ALI MADI Anissa 0 Calculer 2.c \n27 ATTOUMANE ALI Fatima 1 Chercher 1 \n28 ATTOUMANE ALI Fatima 2 Calculer 2 \n29 ATTOUMANE ALI Fatima 0 Calculer 2.c \n... ... ... ... ... ... \n3922 MOHAMED Nadia . Chercher \n3923 MOHAMED Nadia . Chercher \n3924 MOHAMED Nadia . Raisonner \n3925 MOHAMED Nadia . Calculer \n3926 MOHAMED Nadia . Communiquer \n3927 MOUHOUDHOIRE Izak 0 Chercher \n3928 MOUHOUDHOIRE Izak . Chercher \n3929 MOUHOUDHOIRE Izak . Raisonner \n3930 MOUHOUDHOIRE Izak . Calculer \n3931 MOUHOUDHOIRE Izak . Communiquer \n3932 MOUSSRI Bakari 3 Chercher \n3933 MOUSSRI Bakari 1 Chercher \n3934 MOUSSRI Bakari 1 Raisonner \n3935 MOUSSRI Bakari 1 Calculer \n3936 MOUSSRI Bakari 1 Communiquer \n3937 SAKOTRA Claudiana . Chercher \n3938 SAKOTRA Claudiana . Chercher \n3939 SAKOTRA Claudiana . Raisonner \n3940 SAKOTRA Claudiana . Calculer \n3941 SAKOTRA Claudiana 1 Communiquer \n3942 SAÏD Fatoumia 3 Chercher \n3943 SAÏD Fatoumia 3 Chercher \n3944 SAÏD Fatoumia 3 Raisonner \n3945 SAÏD Fatoumia 2 Calculer \n3946 SAÏD Fatoumia 2 Communiquer \n3947 TOUFAIL Salahou 3 Chercher \n3948 TOUFAIL Salahou 3 Chercher \n3949 TOUFAIL Salahou 3 Raisonner \n3950 TOUFAIL Salahou 3 Calculer \n3951 TOUFAIL Salahou 3 Communiquer \n\n exercise eval score \\\n0 1 - Prendre la température DS1 mise en jambe 2 \n1 1 - Prendre la température DS1 mise en jambe 2 \n2 1 - Prendre la température DS1 mise en jambe 0 \n3 1 - Prendre la température DS1 mise en jambe 2 \n4 1 - Prendre la température DS1 mise en jambe 2 \n5 1 - Prendre la température DS1 mise en jambe 1 \n6 1 - Prendre la température DS1 mise en jambe 3 \n7 1 - Prendre la température DS1 mise en jambe 0 \n8 1 - Prendre la température DS1 mise en jambe 0 \n9 1 - Prendre la température DS1 mise en jambe 3 \n10 1 - Prendre la température DS1 mise en jambe 3 \n11 1 - Prendre la température DS1 mise en jambe 0 \n12 1 - Prendre la température DS1 mise en jambe 1 \n13 1 - Prendre la température DS1 mise en jambe 2 \n14 1 - Prendre la température DS1 mise en jambe 0 \n15 1 - Prendre la température DS1 mise en jambe 3 \n16 1 - Prendre la température DS1 mise en jambe 2 \n17 1 - Prendre la température DS1 mise en jambe 0 \n18 1 - Prendre la température DS1 mise en jambe 2 \n19 1 - Prendre la température DS1 mise en jambe 2 \n20 1 - Prendre la température DS1 mise en jambe 2 \n21 1 - Prendre la température DS1 mise en jambe 2 \n22 1 - Prendre la température DS1 mise en jambe 0 \n23 1 - Prendre la température DS1 mise en jambe 2 \n24 1 - Prendre la température DS1 mise en jambe 3 \n25 1 - Prendre la température DS1 mise en jambe 1 \n26 1 - Prendre la température DS1 mise en jambe 0 \n27 1 - Prendre la température DS1 mise en jambe 1 \n28 1 - Prendre la température DS1 mise en jambe 2 \n29 1 - Prendre la température DS1 mise en jambe 0 \n... ... ... ... \n3922 2 - Maladroite! DS1 mise en jambe 0 \n3923 2 - Maladroite! DS1 mise en jambe 0 \n3924 2 - Maladroite! DS1 mise en jambe 0 \n3925 2 - Maladroite! DS1 mise en jambe 0 \n3926 2 - Maladroite! DS1 mise en jambe 0 \n3927 2 - Maladroite! DS1 mise en jambe 0 \n3928 2 - Maladroite! DS1 mise en jambe 0 \n3929 2 - Maladroite! DS1 mise en jambe 0 \n3930 2 - Maladroite! DS1 mise en jambe 0 \n3931 2 - Maladroite! DS1 mise en jambe 0 \n3932 2 - Maladroite! DS1 mise en jambe 3 \n3933 2 - Maladroite! DS1 mise en jambe 1 \n3934 2 - Maladroite! DS1 mise en jambe 1 \n3935 2 - Maladroite! DS1 mise en jambe 1 \n3936 2 - Maladroite! DS1 mise en jambe 1 \n3937 2 - Maladroite! DS1 mise en jambe 0 \n3938 2 - Maladroite! DS1 mise en jambe 0 \n3939 2 - Maladroite! DS1 mise en jambe 0 \n3940 2 - Maladroite! DS1 mise en jambe 0 \n3941 2 - Maladroite! DS1 mise en jambe 1 \n3942 2 - Maladroite! DS1 mise en jambe 3 \n3943 2 - Maladroite! DS1 mise en jambe 3 \n3944 2 - Maladroite! DS1 mise en jambe 3 \n3945 2 - Maladroite! DS1 mise en jambe 2 \n3946 2 - Maladroite! DS1 mise en jambe 2 \n3947 2 - Maladroite! DS1 mise en jambe 3 \n3948 2 - Maladroite! DS1 mise en jambe 3 \n3949 2 - Maladroite! DS1 mise en jambe 3 \n3950 2 - Maladroite! DS1 mise en jambe 3 \n3951 2 - Maladroite! DS1 mise en jambe 3 \n\n fullname abv_competence \n0 ABDALLAH ALLAOUI Taiassima Cher \n1 ABDALLAH ALLAOUI Taiassima Cal \n2 ABDALLAH ALLAOUI Taiassima Cal \n3 ADANI Ismou Cher \n4 ADANI Ismou Cal \n5 ADANI Ismou Cal \n6 AHAMADA Dhoulkamal Cher \n7 AHAMADA Dhoulkamal Cal \n8 AHAMADA Dhoulkamal Cal \n9 AHAMADI Asbahati Cher \n10 AHAMADI Asbahati Cal \n11 AHAMADI Asbahati Cal \n12 AHAMADI OUSSENI Ansufiddine Cher \n13 AHAMADI OUSSENI Ansufiddine Cal \n14 AHAMADI OUSSENI Ansufiddine Cal \n15 AHAMED Fayadhi Cher \n16 AHAMED Fayadhi Cal \n17 AHAMED Fayadhi Cal \n18 AHMED SAID Hadaïta Cher \n19 AHMED SAID Hadaïta Cal \n20 AHMED SAID Hadaïta Cal \n21 ALI Raydel Cher \n22 ALI Raydel Cal \n23 ALI Raydel Cal \n24 ALI MADI Anissa Cher \n25 ALI MADI Anissa Cal \n26 ALI MADI Anissa Cal \n27 ATTOUMANE ALI Fatima Cher \n28 ATTOUMANE ALI Fatima Cal \n29 ATTOUMANE ALI Fatima Cal \n... ... ... \n3922 MOHAMED Nadia Cher \n3923 MOHAMED Nadia Cher \n3924 MOHAMED Nadia Rai \n3925 MOHAMED Nadia Cal \n3926 MOHAMED Nadia Com \n3927 MOUHOUDHOIRE Izak Cher \n3928 MOUHOUDHOIRE Izak Cher \n3929 MOUHOUDHOIRE Izak Rai \n3930 MOUHOUDHOIRE Izak Cal \n3931 MOUHOUDHOIRE Izak Com \n3932 MOUSSRI Bakari Cher \n3933 MOUSSRI Bakari Cher \n3934 MOUSSRI Bakari Rai \n3935 MOUSSRI Bakari Cal \n3936 MOUSSRI Bakari Com \n3937 SAKOTRA Claudiana Cher \n3938 SAKOTRA Claudiana Cher \n3939 SAKOTRA Claudiana Rai \n3940 SAKOTRA Claudiana Cal \n3941 SAKOTRA Claudiana Com \n3942 SAÏD Fatoumia Cher \n3943 SAÏD Fatoumia Cher \n3944 SAÏD Fatoumia Rai \n3945 SAÏD Fatoumia Cal \n3946 SAÏD Fatoumia Com \n3947 TOUFAIL Salahou Cher \n3948 TOUFAIL Salahou Cher \n3949 TOUFAIL Salahou Rai \n3950 TOUFAIL Salahou Cal \n3951 TOUFAIL Salahou Com \n\n[2347 rows x 10 columns]] of ", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mreport_comp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mquestions_scores\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/Cours/Prof/Enseignements/2017-2018/.venv/lib/python3.6/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36mhead\u001b[0;34m(self, n)\u001b[0m\n\u001b[1;32m 2731\u001b[0m \u001b[0mReturns\u001b[0m \u001b[0mfirst\u001b[0m \u001b[0mn\u001b[0m \u001b[0mrows\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2732\u001b[0m \"\"\"\n\u001b[0;32m-> 2733\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miloc\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2734\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2735\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mtail\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Cours/Prof/Enseignements/2017-2018/.venv/lib/python3.6/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 1326\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1327\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcom\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_apply_if_callable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1328\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1329\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1330\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_is_scalar_access\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Cours/Prof/Enseignements/2017-2018/.venv/lib/python3.6/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_getitem_axis\u001b[0;34m(self, key, axis)\u001b[0m\n\u001b[1;32m 1722\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mslice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1723\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_has_valid_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1724\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_slice_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1725\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1726\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Cours/Prof/Enseignements/2017-2018/.venv/lib/python3.6/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_get_slice_axis\u001b[0;34m(self, slice_obj, axis)\u001b[0m\n\u001b[1;32m 1693\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1694\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1695\u001b[0;31m \u001b[0mslice_obj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_convert_slice_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mslice_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1696\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mslice_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mslice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1697\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_slice\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mslice_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'iloc'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Cours/Prof/Enseignements/2017-2018/.venv/lib/python3.6/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_convert_slice_indexer\u001b[0;34m(self, key, axis)\u001b[0m\n\u001b[1;32m 239\u001b[0m \u001b[0;31m# if we are accessing via lowered dim, use the last dim\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 240\u001b[0m \u001b[0max\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_axis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 241\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_convert_slice_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 242\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_has_valid_setitem_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Cours/Prof/Enseignements/2017-2018/.venv/lib/python3.6/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36m_convert_slice_indexer\u001b[0;34m(self, key, kind)\u001b[0m\n\u001b[1;32m 1360\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mkind\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'iloc'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1361\u001b[0m return slice(self._validate_indexer('slice', key.start, kind),\n\u001b[0;32m-> 1362\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'slice'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstop\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1363\u001b[0m self._validate_indexer('slice', key.step, kind))\n\u001b[1;32m 1364\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Cours/Prof/Enseignements/2017-2018/.venv/lib/python3.6/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36m_validate_indexer\u001b[0;34m(self, form, key, kind)\u001b[0m\n\u001b[1;32m 3386\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3387\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mkind\u001b[0m \u001b[0;32min\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m'iloc'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'getitem'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3388\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_invalid_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mform\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3389\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3390\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/Cours/Prof/Enseignements/2017-2018/.venv/lib/python3.6/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36m_invalid_indexer\u001b[0;34m(self, form, key)\u001b[0m\n\u001b[1;32m 1517\u001b[0m \"indexers [{key}] of {kind}\".format(\n\u001b[1;32m 1518\u001b[0m \u001b[0mform\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mform\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mklass\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1519\u001b[0;31m kind=type(key)))\n\u001b[0m\u001b[1;32m 1520\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1521\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget_duplicates\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: cannot do slice indexing on with these indexers [ name surname value competence question \\\n0 ABDALLAH ALLAOUI Taiassima 2 Chercher 1 \n1 ABDALLAH ALLAOUI Taiassima 2 Calculer 2 \n2 ABDALLAH ALLAOUI Taiassima . Calculer 2.c \n3 ADANI Ismou 2 Chercher 1 \n4 ADANI Ismou 2 Calculer 2 \n5 ADANI Ismou 1 Calculer 2.c \n6 AHAMADA Dhoulkamal 3 Chercher 1 \n7 AHAMADA Dhoulkamal 0 Calculer 2 \n8 AHAMADA Dhoulkamal 0 Calculer 2.c \n9 AHAMADI Asbahati 3 Chercher 1 \n10 AHAMADI Asbahati 3 Calculer 2 \n11 AHAMADI Asbahati 0 Calculer 2.c \n12 AHAMADI OUSSENI Ansufiddine 1 Chercher 1 \n13 AHAMADI OUSSENI Ansufiddine 2 Calculer 2 \n14 AHAMADI OUSSENI Ansufiddine . Calculer 2.c \n15 AHAMED Fayadhi 3 Chercher 1 \n16 AHAMED Fayadhi 2 Calculer 2 \n17 AHAMED Fayadhi 0 Calculer 2.c \n18 AHMED SAID Hadaïta 2 Chercher 1 \n19 AHMED SAID Hadaïta 2 Calculer 2 \n20 AHMED SAID Hadaïta 2 Calculer 2.c \n21 ALI Raydel 2 Chercher 1 \n22 ALI Raydel 0 Calculer 2 \n23 ALI Raydel 2 Calculer 2.c \n24 ALI MADI Anissa 3 Chercher 1 \n25 ALI MADI Anissa 1 Calculer 2 \n26 ALI MADI Anissa 0 Calculer 2.c \n27 ATTOUMANE ALI Fatima 1 Chercher 1 \n28 ATTOUMANE ALI Fatima 2 Calculer 2 \n29 ATTOUMANE ALI Fatima 0 Calculer 2.c \n... ... ... ... ... ... \n3922 MOHAMED Nadia . Chercher \n3923 MOHAMED Nadia . Chercher \n3924 MOHAMED Nadia . Raisonner \n3925 MOHAMED Nadia . Calculer \n3926 MOHAMED Nadia . Communiquer \n3927 MOUHOUDHOIRE Izak 0 Chercher \n3928 MOUHOUDHOIRE Izak . Chercher \n3929 MOUHOUDHOIRE Izak . Raisonner \n3930 MOUHOUDHOIRE Izak . Calculer \n3931 MOUHOUDHOIRE Izak . Communiquer \n3932 MOUSSRI Bakari 3 Chercher \n3933 MOUSSRI Bakari 1 Chercher \n3934 MOUSSRI Bakari 1 Raisonner \n3935 MOUSSRI Bakari 1 Calculer \n3936 MOUSSRI Bakari 1 Communiquer \n3937 SAKOTRA Claudiana . Chercher \n3938 SAKOTRA Claudiana . Chercher \n3939 SAKOTRA Claudiana . Raisonner \n3940 SAKOTRA Claudiana . Calculer \n3941 SAKOTRA Claudiana 1 Communiquer \n3942 SAÏD Fatoumia 3 Chercher \n3943 SAÏD Fatoumia 3 Chercher \n3944 SAÏD Fatoumia 3 Raisonner \n3945 SAÏD Fatoumia 2 Calculer \n3946 SAÏD Fatoumia 2 Communiquer \n3947 TOUFAIL Salahou 3 Chercher \n3948 TOUFAIL Salahou 3 Chercher \n3949 TOUFAIL Salahou 3 Raisonner \n3950 TOUFAIL Salahou 3 Calculer \n3951 TOUFAIL Salahou 3 Communiquer \n\n exercise eval score \\\n0 1 - Prendre la température DS1 mise en jambe 2 \n1 1 - Prendre la température DS1 mise en jambe 2 \n2 1 - Prendre la température DS1 mise en jambe 0 \n3 1 - Prendre la température DS1 mise en jambe 2 \n4 1 - Prendre la température DS1 mise en jambe 2 \n5 1 - Prendre la température DS1 mise en jambe 1 \n6 1 - Prendre la température DS1 mise en jambe 3 \n7 1 - Prendre la température DS1 mise en jambe 0 \n8 1 - Prendre la température DS1 mise en jambe 0 \n9 1 - Prendre la température DS1 mise en jambe 3 \n10 1 - Prendre la température DS1 mise en jambe 3 \n11 1 - Prendre la température DS1 mise en jambe 0 \n12 1 - Prendre la température DS1 mise en jambe 1 \n13 1 - Prendre la température DS1 mise en jambe 2 \n14 1 - Prendre la température DS1 mise en jambe 0 \n15 1 - Prendre la température DS1 mise en jambe 3 \n16 1 - Prendre la température DS1 mise en jambe 2 \n17 1 - Prendre la température DS1 mise en jambe 0 \n18 1 - Prendre la température DS1 mise en jambe 2 \n19 1 - Prendre la température DS1 mise en jambe 2 \n20 1 - Prendre la température DS1 mise en jambe 2 \n21 1 - Prendre la température DS1 mise en jambe 2 \n22 1 - Prendre la température DS1 mise en jambe 0 \n23 1 - Prendre la température DS1 mise en jambe 2 \n24 1 - Prendre la température DS1 mise en jambe 3 \n25 1 - Prendre la température DS1 mise en jambe 1 \n26 1 - Prendre la température DS1 mise en jambe 0 \n27 1 - Prendre la température DS1 mise en jambe 1 \n28 1 - Prendre la température DS1 mise en jambe 2 \n29 1 - Prendre la température DS1 mise en jambe 0 \n... ... ... ... \n3922 2 - Maladroite! DS1 mise en jambe 0 \n3923 2 - Maladroite! DS1 mise en jambe 0 \n3924 2 - Maladroite! DS1 mise en jambe 0 \n3925 2 - Maladroite! DS1 mise en jambe 0 \n3926 2 - Maladroite! DS1 mise en jambe 0 \n3927 2 - Maladroite! DS1 mise en jambe 0 \n3928 2 - Maladroite! DS1 mise en jambe 0 \n3929 2 - Maladroite! DS1 mise en jambe 0 \n3930 2 - Maladroite! DS1 mise en jambe 0 \n3931 2 - Maladroite! DS1 mise en jambe 0 \n3932 2 - Maladroite! DS1 mise en jambe 3 \n3933 2 - Maladroite! DS1 mise en jambe 1 \n3934 2 - Maladroite! DS1 mise en jambe 1 \n3935 2 - Maladroite! DS1 mise en jambe 1 \n3936 2 - Maladroite! DS1 mise en jambe 1 \n3937 2 - Maladroite! DS1 mise en jambe 0 \n3938 2 - Maladroite! DS1 mise en jambe 0 \n3939 2 - Maladroite! DS1 mise en jambe 0 \n3940 2 - Maladroite! DS1 mise en jambe 0 \n3941 2 - Maladroite! DS1 mise en jambe 1 \n3942 2 - Maladroite! DS1 mise en jambe 3 \n3943 2 - Maladroite! DS1 mise en jambe 3 \n3944 2 - Maladroite! DS1 mise en jambe 3 \n3945 2 - Maladroite! DS1 mise en jambe 2 \n3946 2 - Maladroite! DS1 mise en jambe 2 \n3947 2 - Maladroite! DS1 mise en jambe 3 \n3948 2 - Maladroite! DS1 mise en jambe 3 \n3949 2 - Maladroite! DS1 mise en jambe 3 \n3950 2 - Maladroite! DS1 mise en jambe 3 \n3951 2 - Maladroite! DS1 mise en jambe 3 \n\n fullname abv_competence \n0 ABDALLAH ALLAOUI Taiassima Cher \n1 ABDALLAH ALLAOUI Taiassima Cal \n2 ABDALLAH ALLAOUI Taiassima Cal \n3 ADANI Ismou Cher \n4 ADANI Ismou Cal \n5 ADANI Ismou Cal \n6 AHAMADA Dhoulkamal Cher \n7 AHAMADA Dhoulkamal Cal \n8 AHAMADA Dhoulkamal Cal \n9 AHAMADI Asbahati Cher \n10 AHAMADI Asbahati Cal \n11 AHAMADI Asbahati Cal \n12 AHAMADI OUSSENI Ansufiddine Cher \n13 AHAMADI OUSSENI Ansufiddine Cal \n14 AHAMADI OUSSENI Ansufiddine Cal \n15 AHAMED Fayadhi Cher \n16 AHAMED Fayadhi Cal \n17 AHAMED Fayadhi Cal \n18 AHMED SAID Hadaïta Cher \n19 AHMED SAID Hadaïta Cal \n20 AHMED SAID Hadaïta Cal \n21 ALI Raydel Cher \n22 ALI Raydel Cal \n23 ALI Raydel Cal \n24 ALI MADI Anissa Cher \n25 ALI MADI Anissa Cal \n26 ALI MADI Anissa Cal \n27 ATTOUMANE ALI Fatima Cher \n28 ATTOUMANE ALI Fatima Cal \n29 ATTOUMANE ALI Fatima Cal \n... ... ... \n3922 MOHAMED Nadia Cher \n3923 MOHAMED Nadia Cher \n3924 MOHAMED Nadia Rai \n3925 MOHAMED Nadia Cal \n3926 MOHAMED Nadia Com \n3927 MOUHOUDHOIRE Izak Cher \n3928 MOUHOUDHOIRE Izak Cher \n3929 MOUHOUDHOIRE Izak Rai \n3930 MOUHOUDHOIRE Izak Cal \n3931 MOUHOUDHOIRE Izak Com \n3932 MOUSSRI Bakari Cher \n3933 MOUSSRI Bakari Cher \n3934 MOUSSRI Bakari Rai \n3935 MOUSSRI Bakari Cal \n3936 MOUSSRI Bakari Com \n3937 SAKOTRA Claudiana Cher \n3938 SAKOTRA Claudiana Cher \n3939 SAKOTRA Claudiana Rai \n3940 SAKOTRA Claudiana Cal \n3941 SAKOTRA Claudiana Com \n3942 SAÏD Fatoumia Cher \n3943 SAÏD Fatoumia Cher \n3944 SAÏD Fatoumia Rai \n3945 SAÏD Fatoumia Cal \n3946 SAÏD Fatoumia Com \n3947 TOUFAIL Salahou Cher \n3948 TOUFAIL Salahou Cher \n3949 TOUFAIL Salahou Rai \n3950 TOUFAIL Salahou Cal \n3951 TOUFAIL Salahou Com \n\n[2347 rows x 10 columns]] of " + ] } ], "source": [ - "report_comp" + "report_comp.head(questions_scores)" ] }, { - "cell_type": "code", - "execution_count": 32, + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], "source": [ - "plt.figure(figsize=(10, 10))\n", - "ax = sns.heatmap(report_comp, cmap='YlOrRd', linewidths=.5)\n", - "ax.tick_params(labelbottom='on',labeltop='on')" + "Heapmap des competences et des élèves" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], - "source": [] + "source": [ + "plt.figure(figsize=(10, 10))\n", + "ax = sns.heatmap(report_comp, cmap='YlOrRd', linewidths=.5)\n", + "ax.tick_params(labelbottom='on',labeltop='on')" + ] } ], "metadata": { diff --git a/Notes/302/302_DS1.pdf b/Notes/302/302_DS1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3cc8cca3c0c8f65a59d25ddddfa7cecccbda4a1c GIT binary patch literal 82333 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�B5mO6+{q;gj%TgCA~~l*{-Z|3&UE?6 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 L3JP&W355R#TX&|_ literal 0 HcmV?d00001 diff --git a/Notes/302/302_DS1.tex b/Notes/302/302_DS1.tex new file mode 100644 index 0000000..38c2764 --- /dev/null +++ b/Notes/302/302_DS1.tex @@ -0,0 +1,1346 @@ +\documentclass[a5paper,12pt]{article} +\usepackage{myXsim} + + +% Title Page +%\title{} +%\tribe{} +%\date{eval.date} + +\title{DS1 mise en jambe} +\tribe{302} +\date{} + +\begin{document} + +\maketitle + +{\Large ABDALLAH ALLAOUI Taiassima} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepU \\ + \hline + 2 Suivre programme de calculs& \RepD \\ + \hline + 2.c Renverser un programme de calculs& \NoRep \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepD \\ + \hline + Manipuler les grandeurs& \RepD \\ + \hline + Mener à bien les calculs& \RepT \\ + \hline + Rédaction& \RepD \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepD + \item \Rai Raisonner : \RepD + \item \Cal Calculer : \RepD + \item \Com Communiquer : \RepD +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large ADANI Ismou} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepD \\ + \hline + 2 Suivre programme de calculs& \RepD \\ + \hline + 2.c Renverser un programme de calculs& \RepU \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepD \\ + \hline + Manipuler les grandeurs& \RepD \\ + \hline + Mener à bien les calculs& \RepU \\ + \hline + Rédaction& \RepU \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepD + \item \Rai Raisonner : \RepD + \item \Cal Calculer : \RepU + \item \Com Communiquer : \RepU +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large AHAMADA Dhoulkamal} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepT \\ + \hline + 2 Suivre programme de calculs& \RepZ \\ + \hline + 2.c Renverser un programme de calculs& \RepZ \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepZ \\ + \hline + Manipuler les grandeurs& \RepZ \\ + \hline + Mener à bien les calculs& \RepZ \\ + \hline + Rédaction& \RepU \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepT + \item \Rai Raisonner : \RepZ + \item \Cal Calculer : \RepZ + \item \Com Communiquer : \RepU +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large AHAMADI Asbahati} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepT \\ + \hline + 2 Suivre programme de calculs& \RepT \\ + \hline + 2.c Renverser un programme de calculs& \RepZ \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepT \\ + \hline + Manipuler les grandeurs& \RepT \\ + \hline + Mener à bien les calculs& \RepT \\ + \hline + Rédaction& \RepT \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepT + \item \Rai Raisonner : \RepT + \item \Cal Calculer : \RepT + \item \Com Communiquer : \RepT +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large AHAMADI OUSSENI Ansufiddine} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepU \\ + \hline + 2 Suivre programme de calculs& \RepD \\ + \hline + 2.c Renverser un programme de calculs& \NoRep \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepZ \\ + \hline + Manipuler les grandeurs& \RepZ \\ + \hline + Mener à bien les calculs& \RepU \\ + \hline + Rédaction& \RepU \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepU + \item \Rai Raisonner : \RepZ + \item \Cal Calculer : \RepU + \item \Com Communiquer : \RepU +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large AHAMED Fayadhi} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepT \\ + \hline + 2 Suivre programme de calculs& \RepD \\ + \hline + 2.c Renverser un programme de calculs& \RepZ \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepD \\ + \hline + Manipuler les grandeurs& \RepU \\ + \hline + Mener à bien les calculs& \RepU \\ + \hline + Rédaction& \RepD \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepT + \item \Rai Raisonner : \RepU + \item \Cal Calculer : \RepU + \item \Com Communiquer : \RepD +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large AHMED SAID Hadaïta} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepD \\ + \hline + 2 Suivre programme de calculs& \RepD \\ + \hline + 2.c Renverser un programme de calculs& \RepD \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepT \\ + \hline + Manipuler les grandeurs& \RepT \\ + \hline + Mener à bien les calculs& \RepD \\ + \hline + Rédaction& \RepT \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepT + \item \Rai Raisonner : \RepT + \item \Cal Calculer : \RepD + \item \Com Communiquer : \RepT +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large ALI MADI Anissa} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepT \\ + \hline + 2 Suivre programme de calculs& \RepU \\ + \hline + 2.c Renverser un programme de calculs& \RepZ \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepD \\ + \hline + Manipuler les grandeurs& \RepT \\ + \hline + Mener à bien les calculs& \RepT \\ + \hline + Rédaction& \RepD \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepT + \item \Rai Raisonner : \RepT + \item \Cal Calculer : \RepD + \item \Com Communiquer : \RepD +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large ALI Raydel} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepD \\ + \hline + 2 Suivre programme de calculs& \RepZ \\ + \hline + 2.c Renverser un programme de calculs& \RepD \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepD \\ + \hline + Manipuler les grandeurs& \RepD \\ + \hline + Mener à bien les calculs& \RepT \\ + \hline + Rédaction& \RepD \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepD + \item \Rai Raisonner : \RepD + \item \Cal Calculer : \RepT + \item \Com Communiquer : \RepD +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large ATTOUMANE ALI Fatima} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepU \\ + \hline + 2 Suivre programme de calculs& \RepD \\ + \hline + 2.c Renverser un programme de calculs& \RepZ \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepZ \\ + \hline + Manipuler les grandeurs& \RepZ \\ + \hline + Mener à bien les calculs& \RepU \\ + \hline + Rédaction& \RepZ \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepU + \item \Rai Raisonner : \RepZ + \item \Cal Calculer : \RepU + \item \Com Communiquer : \RepZ +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large BACHIROU Elzame} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepT \\ + \hline + 2 Suivre programme de calculs& \RepZ \\ + \hline + 2.c Renverser un programme de calculs& \NoRep \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepU \\ + \hline + Manipuler les grandeurs& \NoRep \\ + \hline + Mener à bien les calculs& \NoRep \\ + \hline + Rédaction& \RepU \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepD + \item \Rai Raisonner : \RepZ + \item \Cal Calculer : \RepZ + \item \Com Communiquer : \RepU +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large BINALI Zalida} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepD \\ + \hline + 2 Suivre programme de calculs& \RepT \\ + \hline + 2.c Renverser un programme de calculs& \NoRep \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \NoRep \\ + \hline + Manipuler les grandeurs& \NoRep \\ + \hline + Mener à bien les calculs& \NoRep \\ + \hline + Rédaction& \RepD \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepD + \item \Rai Raisonner : \RepZ + \item \Cal Calculer : \RepU + \item \Com Communiquer : \RepD +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large BOINA Abdillah Mze Limassi} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepD \\ + \hline + 2 Suivre programme de calculs& \RepT \\ + \hline + 2.c Renverser un programme de calculs& \NoRep \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepD \\ + \hline + Manipuler les grandeurs& \RepT \\ + \hline + Mener à bien les calculs& \RepT \\ + \hline + Rédaction& \RepD \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepD + \item \Rai Raisonner : \RepT + \item \Cal Calculer : \RepD + \item \Com Communiquer : \RepD +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large BOUDRA Zaankidine} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepZ \\ + \hline + 2 Suivre programme de calculs& \RepU \\ + \hline + 2.c Renverser un programme de calculs& \RepZ \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \NoRep \\ + \hline + Décomposer le problème& \NoRep \\ + \hline + Manipuler les grandeurs& \NoRep \\ + \hline + Mener à bien les calculs& \NoRep \\ + \hline + Rédaction& \NoRep \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepZ + \item \Rai Raisonner : \RepZ + \item \Cal Calculer : \RepZ + \item \Com Communiquer : \RepZ +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large HALADI Asna} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepD \\ + \hline + 2 Suivre programme de calculs& \RepU \\ + \hline + 2.c Renverser un programme de calculs& \RepD \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepT \\ + \hline + Manipuler les grandeurs& \RepT \\ + \hline + Mener à bien les calculs& \RepT \\ + \hline + Rédaction& \RepT \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepT + \item \Rai Raisonner : \RepT + \item \Cal Calculer : \RepD + \item \Com Communiquer : \RepT +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large HALIDI Soibrata} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepZ \\ + \hline + 2 Suivre programme de calculs& \RepU \\ + \hline + 2.c Renverser un programme de calculs& \NoRep \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepU \\ + \hline + Manipuler les grandeurs& \RepZ \\ + \hline + Mener à bien les calculs& \RepU \\ + \hline + Rédaction& \RepD \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepD + \item \Rai Raisonner : \RepZ + \item \Cal Calculer : \RepU + \item \Com Communiquer : \RepD +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large HAMEDALY Doulkifly} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepZ \\ + \hline + 2 Suivre programme de calculs& \RepZ \\ + \hline + 2.c Renverser un programme de calculs& \RepZ \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepZ \\ + \hline + Décomposer le problème& \RepU \\ + \hline + Manipuler les grandeurs& \RepU \\ + \hline + Mener à bien les calculs& \RepD \\ + \hline + Rédaction& \RepU \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepZ + \item \Rai Raisonner : \RepU + \item \Cal Calculer : \RepU + \item \Com Communiquer : \RepU +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large IBRAHIM Nassur} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepD \\ + \hline + 2 Suivre programme de calculs& \RepD \\ + \hline + 2.c Renverser un programme de calculs& \RepZ \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepD \\ + \hline + Manipuler les grandeurs& \RepU \\ + \hline + Mener à bien les calculs& \RepD \\ + \hline + Rédaction& \RepU \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepD + \item \Rai Raisonner : \RepU + \item \Cal Calculer : \RepU + \item \Com Communiquer : \RepU +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large INOUSSA Anchoura} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepT \\ + \hline + 2 Suivre programme de calculs& \NoRep \\ + \hline + 2.c Renverser un programme de calculs& \NoRep \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepU \\ + \hline + Manipuler les grandeurs& \RepD \\ + \hline + Mener à bien les calculs& \RepU \\ + \hline + Rédaction& \RepD \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepD + \item \Rai Raisonner : \RepD + \item \Cal Calculer : \RepU + \item \Com Communiquer : \RepD +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large MOHAMED Nadia} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepT \\ + \hline + 2 Suivre programme de calculs& \RepZ \\ + \hline + 2.c Renverser un programme de calculs& \RepZ \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \NoRep \\ + \hline + Décomposer le problème& \NoRep \\ + \hline + Manipuler les grandeurs& \NoRep \\ + \hline + Mener à bien les calculs& \NoRep \\ + \hline + Rédaction& \NoRep \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepU + \item \Rai Raisonner : \RepZ + \item \Cal Calculer : \RepZ + \item \Com Communiquer : \RepZ +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large MOUHOUDHOIRE Izak} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepT \\ + \hline + 2 Suivre programme de calculs& \RepZ \\ + \hline + 2.c Renverser un programme de calculs& \RepZ \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepZ \\ + \hline + Décomposer le problème& \NoRep \\ + \hline + Manipuler les grandeurs& \NoRep \\ + \hline + Mener à bien les calculs& \NoRep \\ + \hline + Rédaction& \NoRep \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepU + \item \Rai Raisonner : \RepZ + \item \Cal Calculer : \RepZ + \item \Com Communiquer : \RepZ +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large MOUSSRI Bakari} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepZ \\ + \hline + 2 Suivre programme de calculs& \RepZ \\ + \hline + 2.c Renverser un programme de calculs& \NoRep \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepU \\ + \hline + Manipuler les grandeurs& \RepU \\ + \hline + Mener à bien les calculs& \RepU \\ + \hline + Rédaction& \RepU \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepD + \item \Rai Raisonner : \RepU + \item \Cal Calculer : \RepZ + \item \Com Communiquer : \RepU +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large SAKOTRA Claudiana} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepT \\ + \hline + 2 Suivre programme de calculs& \RepD \\ + \hline + 2.c Renverser un programme de calculs& \RepU \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \NoRep \\ + \hline + Décomposer le problème& \NoRep \\ + \hline + Manipuler les grandeurs& \NoRep \\ + \hline + Mener à bien les calculs& \NoRep \\ + \hline + Rédaction& \RepU \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepZ + \item \Rai Raisonner : \RepZ + \item \Cal Calculer : \RepU + \item \Com Communiquer : \RepU +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large SAÏD Fatoumia} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepU \\ + \hline + 2 Suivre programme de calculs& \RepD \\ + \hline + 2.c Renverser un programme de calculs& \RepZ \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepT \\ + \hline + Manipuler les grandeurs& \RepT \\ + \hline + Mener à bien les calculs& \RepD \\ + \hline + Rédaction& \RepD \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepT + \item \Rai Raisonner : \RepT + \item \Cal Calculer : \RepD + \item \Com Communiquer : \RepD +\end{itemize} + + +\vfill +\pagebreak +\maketitle + +{\Large TOUFAIL Salahou} + +\vfill + +Réussite aux exercices + +\begin{center} +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 1 - Prendre la température}\\ + \hline + + 1 Lecture du thermomètre& \RepD \\ + \hline + 2 Suivre programme de calculs& \RepU \\ + \hline + 2.c Renverser un programme de calculs& \NoRep \\ + \hline +\end{tabular} +\vfill +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice 2 - Maladroite!}\\ + \hline + + Lire le tableau et le graphique& \RepT \\ + \hline + Décomposer le problème& \RepT \\ + \hline + Manipuler les grandeurs& \RepT \\ + \hline + Mener à bien les calculs& \RepT \\ + \hline + Rédaction& \RepT \\ + \hline +\end{tabular} +\vfill +\end{center} + +Bilan par compétences + +\begin{itemize} + \item \Cher Chercher : \RepD + \item \Rai Raisonner : \RepT + \item \Cal Calculer : \RepU + \item \Com Communiquer : \RepT +\end{itemize} + + +\vfill +\pagebreak +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: diff --git a/Notes/recopytex.db b/Notes/recopytex.db index 160d5ee90c8c3ab3287aebac15ab8cad9e1cc175..6e77fa268e4a069985603d1fe7da56d03afde864 100644 GIT binary patch delta 70 zcmZozz}m2Yb%Hcw#6%fq#)ypxE9#k8k8S2^P+(@9zp-&P6FVy-D+4Dd=jOAm@?0X~ O3=qHpr9sr92?qeO_Ydp< delta 62 zcmZozz}m2Yb%Hcw*hCp;#;}bEE9#l}e{SY#P+(?Uwy|*$)8@0S@?0VU3=qHpqF5PO M88|sP7fm<-09@k`B>(^b diff --git a/Notes/reports.py b/Notes/reports.py new file mode 100644 index 0000000..fac7175 --- /dev/null +++ b/Notes/reports.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python +# encoding: utf-8 + +import sqlite3 +import pandas as pd +import numpy as np +from math import ceil + +NOANSWER = "." +NOTRATED = "" +COMPETENCES = { + "Cher": {"fullname": "Chercher", "latex": "\\Cher"}, + "Mod": {"fullname": "Modéliser", "latex": "\\Mod"}, + "Rep": {"fullname": "Représenter", "latex": "\\Rep"}, + "Rai": {"fullname": "Raisonner", "latex": "\\Rai"}, + "Cal": {"fullname": "Calculer", "latex": "\\Cal"}, + "Com": {"fullname": "Communiquer", "latex": "\\Com"}, + "Con": {"fullname": "Connaître", "latex": "\\Con"}, + } + +# Pick from db + +def df_from_db(eval_id): + db = "recopytex.db" + conn = sqlite3.connect(db) + df = pd.read_sql_query("SELECT \ + student.name as name,\ + student.surname as surname,\ + score.value as value, \ + question.competence as competence,\ + question.name as question,\ + question.comment as comment,\ + exercise.name as exercise, \ + eval.name as eval\ + FROM score\ + JOIN question ON score.question_id==question.id \ + JOIN exercise ON question.exercise_id==exercise.id \ + JOIN eval ON exercise.eval_id==eval.id \ + JOIN student ON score.student_id==student.id\ + WHERE eval.id == (?)", + conn, + params = (eval_id,)) + return df + +def prepare_df(df): + df = df[df["value"]!=NOTRATED] + df["score"] = df.apply(col2score, axis=1) + df["fullname"] = df["name"] + " " + df["surname"] + df['competence'] = df["competence"].astype("category", + categories = list(COMPETENCES.keys()), ordered=True,) + #df["abv_competence"] = df["competence"] + #df["competence"] = df.apply(competence_fullname, axis=1) + df["latex"] = df.apply(col2latex, axis=1) + #df["latex_competence"] = df.apply(competence_latex, axis=1) + return df + +# Value transformations + +def val2score(x): + if x == '.': + return 0 + if x not in [0, 1, 2, 3]: + raise ValueError(f"The evaluation is out of range. Got {x}") + return x + +def val2latex(x): + latex_caract = ["\\NoRep", "\\RepZ", "\\RepU", "\\RepD", "\\RepT"] + if x == NOANSWER: + return latex_caract[0] + elif x in range(4): + return latex_caract[int(x)+1] + return x +val2latex.__name__ = "Aquisition" + +def rounded_mean(x, rounded=0): + """ Rounded x mean """ + mean = np.mean(x) + return round(mean, rounded) +rounded_mean.__name__ = "Moyenne discrète" + +# Columns transformations + +def col2score(x): + return val2score(x["value"]) + +def col2latex(x): + return val2latex(x["value"]) + +def competence_fullname(x): + try: + return COMPETENCES[x['competence']]["fullname"] + except KeyError: + return "" + +def competence_latex(x): + try: + return COMPETENCES[x['competence']]["latex"] + except KeyError: + return "" + + +# Df transforms + +def competence_report(df): + report_comp = pd.pivot_table(df, + index=["competence"], + columns = ['fullname'], + values = ["score"], + aggfunc = [rounded_mean]) + return report_comp.dropna() + +def exercise_gpby(df): + """ Group the dataframe in exercise POV """ + pass + +def eval_gpby(df): + """ Group the dataframe in eval POV """ + pass + +def term_gpby(df): + """ Group the dataframe in term POV """ + pass + + +# ----------------------------- +# Reglages pour 'vim' +# vim:set autoindent expandtab tabstop=4 shiftwidth=4: +# cursor: 16 del diff --git a/Notes/tests reports.ipynb b/Notes/tests reports.ipynb new file mode 100644 index 0000000..4d5e582 --- /dev/null +++ b/Notes/tests reports.ipynb @@ -0,0 +1,4136 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tests pour reports.py" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from pprint import pprint" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from reports import *" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "df = df_from_db(1)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "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", + " \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", + "
namesurnamevaluecompetencequestioncommentexerciseeval
0ABDALLAH ALLAOUITaiassima1Cher1Lecture du thermomètre1 - Prendre la températureDS1 mise en jambe
1ABDALLAH ALLAOUITaiassima2Cal2Suivre programme de calculs1 - Prendre la températureDS1 mise en jambe
2ABDALLAH ALLAOUITaiassima.Cal2.cRenverser un programme de calculs1 - Prendre la températureDS1 mise en jambe
3ADANIIsmou2Cher1Lecture du thermomètre1 - Prendre la températureDS1 mise en jambe
4ADANIIsmou2Cal2Suivre programme de calculs1 - Prendre la températureDS1 mise en jambe
\n", + "
" + ], + "text/plain": [ + " name surname value competence question \\\n", + "0 ABDALLAH ALLAOUI Taiassima 1 Cher 1 \n", + "1 ABDALLAH ALLAOUI Taiassima 2 Cal 2 \n", + "2 ABDALLAH ALLAOUI Taiassima . Cal 2.c \n", + "3 ADANI Ismou 2 Cher 1 \n", + "4 ADANI Ismou 2 Cal 2 \n", + "\n", + " comment exercise \\\n", + "0 Lecture du thermomètre 1 - Prendre la température \n", + "1 Suivre programme de calculs 1 - Prendre la température \n", + "2 Renverser un programme de calculs 1 - Prendre la température \n", + "3 Lecture du thermomètre 1 - Prendre la température \n", + "4 Suivre programme de calculs 1 - Prendre la température \n", + "\n", + " eval \n", + "0 DS1 mise en jambe \n", + "1 DS1 mise en jambe \n", + "2 DS1 mise en jambe \n", + "3 DS1 mise en jambe \n", + "4 DS1 mise en jambe " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/lafrite/Cours/Prof/Enseignements/2017-2018/Notes/reports.py:47: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " df[\"score\"] = df.apply(col2score, axis=1)\n", + "/home/lafrite/Cours/Prof/Enseignements/2017-2018/Notes/reports.py:48: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " df[\"fullname\"] = df[\"name\"] + \" \" + df[\"surname\"]\n", + "/home/lafrite/Cours/Prof/Enseignements/2017-2018/Notes/reports.py:50: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " categories = list(COMPETENCES.keys()), ordered=True,)\n", + "/home/lafrite/Cours/Prof/Enseignements/2017-2018/Notes/reports.py:53: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " df[\"latex\"] = df.apply(col2latex, axis=1)\n" + ] + } + ], + "source": [ + "df = prepare_df(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "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", + " \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", + "
namesurnamevaluecompetencequestioncommentexerciseevalscorefullnamelatex
0ABDALLAH ALLAOUITaiassima1Cher1Lecture du thermomètre1 - Prendre la températureDS1 mise en jambe1ABDALLAH ALLAOUI Taiassima\\RepU
1ABDALLAH ALLAOUITaiassima2Cal2Suivre programme de calculs1 - Prendre la températureDS1 mise en jambe2ABDALLAH ALLAOUI Taiassima\\RepD
2ABDALLAH ALLAOUITaiassima.Cal2.cRenverser un programme de calculs1 - Prendre la températureDS1 mise en jambe0ABDALLAH ALLAOUI Taiassima\\NoRep
3ADANIIsmou2Cher1Lecture du thermomètre1 - Prendre la températureDS1 mise en jambe2ADANI Ismou\\RepD
4ADANIIsmou2Cal2Suivre programme de calculs1 - Prendre la températureDS1 mise en jambe2ADANI Ismou\\RepD
\n", + "
" + ], + "text/plain": [ + " name surname value competence question \\\n", + "0 ABDALLAH ALLAOUI Taiassima 1 Cher 1 \n", + "1 ABDALLAH ALLAOUI Taiassima 2 Cal 2 \n", + "2 ABDALLAH ALLAOUI Taiassima . Cal 2.c \n", + "3 ADANI Ismou 2 Cher 1 \n", + "4 ADANI Ismou 2 Cal 2 \n", + "\n", + " comment exercise \\\n", + "0 Lecture du thermomètre 1 - Prendre la température \n", + "1 Suivre programme de calculs 1 - Prendre la température \n", + "2 Renverser un programme de calculs 1 - Prendre la température \n", + "3 Lecture du thermomètre 1 - Prendre la température \n", + "4 Suivre programme de calculs 1 - Prendre la température \n", + "\n", + " eval score fullname latex \n", + "0 DS1 mise en jambe 1 ABDALLAH ALLAOUI Taiassima \\RepU \n", + "1 DS1 mise en jambe 2 ABDALLAH ALLAOUI Taiassima \\RepD \n", + "2 DS1 mise en jambe 0 ABDALLAH ALLAOUI Taiassima \\NoRep \n", + "3 DS1 mise en jambe 2 ADANI Ismou \\RepD \n", + "4 DS1 mise en jambe 2 ADANI Ismou \\RepD " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Bilan des compétences" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "comp = competence_report(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "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", + " \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", + "
Moyenne discrète
score
fullnameABDALLAH ALLAOUI TaiassimaADANI IsmouAHAMADA DhoulkamalAHAMADI AsbahatiAHAMADI OUSSENI AnsufiddineAHAMED FayadhiAHMED SAID HadaïtaALI MADI AnissaALI RaydelATTOUMANE ALI Fatima...HALIDI SoibrataHAMEDALY DoulkiflyIBRAHIM NassurINOUSSA AnchouraMOHAMED NadiaMOUHOUDHOIRE IzakMOUSSRI BakariSAKOTRA ClaudianaSAÏD FatoumiaTOUFAIL Salahou
competence
Cher2.02.03.03.01.03.03.03.02.01.0...2.00.02.02.01.01.02.00.03.02.0
Rai2.02.00.03.00.01.03.03.02.00.0...0.01.01.02.00.00.01.00.03.03.0
Cal2.01.00.03.01.01.02.02.03.01.0...1.01.01.01.00.00.00.01.02.01.0
Com2.01.01.03.01.02.03.02.02.00.0...2.01.01.02.00.00.01.01.02.03.0
\n", + "

4 rows × 25 columns

\n", + "
" + ], + "text/plain": [ + " Moyenne discrète \\\n", + " score \n", + "fullname ABDALLAH ALLAOUI Taiassima ADANI Ismou AHAMADA Dhoulkamal \n", + "competence \n", + "Cher 2.0 2.0 3.0 \n", + "Rai 2.0 2.0 0.0 \n", + "Cal 2.0 1.0 0.0 \n", + "Com 2.0 1.0 1.0 \n", + "\n", + " \\\n", + " \n", + "fullname AHAMADI Asbahati AHAMADI OUSSENI Ansufiddine AHAMED Fayadhi \n", + "competence \n", + "Cher 3.0 1.0 3.0 \n", + "Rai 3.0 0.0 1.0 \n", + "Cal 3.0 1.0 1.0 \n", + "Com 3.0 1.0 2.0 \n", + "\n", + " \\\n", + " \n", + "fullname AHMED SAID Hadaïta ALI MADI Anissa ALI Raydel ATTOUMANE ALI Fatima \n", + "competence \n", + "Cher 3.0 3.0 2.0 1.0 \n", + "Rai 3.0 3.0 2.0 0.0 \n", + "Cal 2.0 2.0 3.0 1.0 \n", + "Com 3.0 2.0 2.0 0.0 \n", + "\n", + " ... \\\n", + " ... \n", + "fullname ... HALIDI Soibrata HAMEDALY Doulkifly IBRAHIM Nassur \n", + "competence ... \n", + "Cher ... 2.0 0.0 2.0 \n", + "Rai ... 0.0 1.0 1.0 \n", + "Cal ... 1.0 1.0 1.0 \n", + "Com ... 2.0 1.0 1.0 \n", + "\n", + " \\\n", + " \n", + "fullname INOUSSA Anchoura MOHAMED Nadia MOUHOUDHOIRE Izak MOUSSRI Bakari \n", + "competence \n", + "Cher 2.0 1.0 1.0 2.0 \n", + "Rai 2.0 0.0 0.0 1.0 \n", + "Cal 1.0 0.0 0.0 0.0 \n", + "Com 2.0 0.0 0.0 1.0 \n", + "\n", + " \n", + " \n", + "fullname SAKOTRA Claudiana SAÏD Fatoumia TOUFAIL Salahou \n", + "competence \n", + "Cher 0.0 3.0 2.0 \n", + "Rai 0.0 3.0 3.0 \n", + "Cal 1.0 2.0 1.0 \n", + "Com 1.0 2.0 3.0 \n", + "\n", + "[4 rows x 25 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comp" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "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", + " \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", + "
Moyenne discrète
score
fullnameABDALLAH ALLAOUI TaiassimaADANI IsmouAHAMADA DhoulkamalAHAMADI AsbahatiAHAMADI OUSSENI AnsufiddineAHAMED FayadhiAHMED SAID HadaïtaALI MADI AnissaALI RaydelATTOUMANE ALI Fatima...HALIDI SoibrataHAMEDALY DoulkiflyIBRAHIM NassurINOUSSA AnchouraMOHAMED NadiaMOUHOUDHOIRE IzakMOUSSRI BakariSAKOTRA ClaudianaSAÏD FatoumiaTOUFAIL Salahou
competence
Cher\\RepD\\RepD\\RepT\\RepT\\RepU\\RepT\\RepT\\RepT\\RepD\\RepU...\\RepD\\RepZ\\RepD\\RepD\\RepU\\RepU\\RepD\\RepZ\\RepT\\RepD
Rai\\RepD\\RepD\\RepZ\\RepT\\RepZ\\RepU\\RepT\\RepT\\RepD\\RepZ...\\RepZ\\RepU\\RepU\\RepD\\RepZ\\RepZ\\RepU\\RepZ\\RepT\\RepT
Cal\\RepD\\RepU\\RepZ\\RepT\\RepU\\RepU\\RepD\\RepD\\RepT\\RepU...\\RepU\\RepU\\RepU\\RepU\\RepZ\\RepZ\\RepZ\\RepU\\RepD\\RepU
Com\\RepD\\RepU\\RepU\\RepT\\RepU\\RepD\\RepT\\RepD\\RepD\\RepZ...\\RepD\\RepU\\RepU\\RepD\\RepZ\\RepZ\\RepU\\RepU\\RepD\\RepT
\n", + "

4 rows × 25 columns

\n", + "
" + ], + "text/plain": [ + " Moyenne discrète \\\n", + " score \n", + "fullname ABDALLAH ALLAOUI Taiassima ADANI Ismou AHAMADA Dhoulkamal \n", + "competence \n", + "Cher \\RepD \\RepD \\RepT \n", + "Rai \\RepD \\RepD \\RepZ \n", + "Cal \\RepD \\RepU \\RepZ \n", + "Com \\RepD \\RepU \\RepU \n", + "\n", + " \\\n", + " \n", + "fullname AHAMADI Asbahati AHAMADI OUSSENI Ansufiddine AHAMED Fayadhi \n", + "competence \n", + "Cher \\RepT \\RepU \\RepT \n", + "Rai \\RepT \\RepZ \\RepU \n", + "Cal \\RepT \\RepU \\RepU \n", + "Com \\RepT \\RepU \\RepD \n", + "\n", + " \\\n", + " \n", + "fullname AHMED SAID Hadaïta ALI MADI Anissa ALI Raydel ATTOUMANE ALI Fatima \n", + "competence \n", + "Cher \\RepT \\RepT \\RepD \\RepU \n", + "Rai \\RepT \\RepT \\RepD \\RepZ \n", + "Cal \\RepD \\RepD \\RepT \\RepU \n", + "Com \\RepT \\RepD \\RepD \\RepZ \n", + "\n", + " ... \\\n", + " ... \n", + "fullname ... HALIDI Soibrata HAMEDALY Doulkifly IBRAHIM Nassur \n", + "competence ... \n", + "Cher ... \\RepD \\RepZ \\RepD \n", + "Rai ... \\RepZ \\RepU \\RepU \n", + "Cal ... \\RepU \\RepU \\RepU \n", + "Com ... \\RepD \\RepU \\RepU \n", + "\n", + " \\\n", + " \n", + "fullname INOUSSA Anchoura MOHAMED Nadia MOUHOUDHOIRE Izak MOUSSRI Bakari \n", + "competence \n", + "Cher \\RepD \\RepU \\RepU \\RepD \n", + "Rai \\RepD \\RepZ \\RepZ \\RepU \n", + "Cal \\RepU \\RepZ \\RepZ \\RepZ \n", + "Com \\RepD \\RepZ \\RepZ \\RepU \n", + "\n", + " \n", + " \n", + "fullname SAKOTRA Claudiana SAÏD Fatoumia TOUFAIL Salahou \n", + "competence \n", + "Cher \\RepZ \\RepT \\RepD \n", + "Rai \\RepZ \\RepT \\RepT \n", + "Cal \\RepU \\RepD \\RepU \n", + "Com \\RepU \\RepD \\RepT \n", + "\n", + "[4 rows x 25 columns]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comp.applymap(val2latex)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Bilan d'un sur élève" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'ABDALLAH ALLAOUI Taiassima'" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fullname = df[\"fullname\"].unique()[0]\n", + "fullname" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "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", + " \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", + "
namesurnamevaluecompetencequestioncommentexerciseevalscorefullnamelatex
0ABDALLAH ALLAOUITaiassima1Cher1Lecture du thermomètre1 - Prendre la températureDS1 mise en jambe1ABDALLAH ALLAOUI Taiassima\\RepU
1ABDALLAH ALLAOUITaiassima2Cal2Suivre programme de calculs1 - Prendre la températureDS1 mise en jambe2ABDALLAH ALLAOUI Taiassima\\RepD
2ABDALLAH ALLAOUITaiassima.Cal2.cRenverser un programme de calculs1 - Prendre la températureDS1 mise en jambe0ABDALLAH ALLAOUI Taiassima\\NoRep
156ABDALLAH ALLAOUITaiassima1Cher1Lecture du thermomètre1 - Prendre la températureDS1 mise en jambe1ABDALLAH ALLAOUI Taiassima\\RepU
157ABDALLAH ALLAOUITaiassima2Cal2Suivre programme de calculs1 - Prendre la températureDS1 mise en jambe2ABDALLAH ALLAOUI Taiassima\\RepD
\n", + "
" + ], + "text/plain": [ + " name surname value competence question \\\n", + "0 ABDALLAH ALLAOUI Taiassima 1 Cher 1 \n", + "1 ABDALLAH ALLAOUI Taiassima 2 Cal 2 \n", + "2 ABDALLAH ALLAOUI Taiassima . Cal 2.c \n", + "156 ABDALLAH ALLAOUI Taiassima 1 Cher 1 \n", + "157 ABDALLAH ALLAOUI Taiassima 2 Cal 2 \n", + "\n", + " comment exercise \\\n", + "0 Lecture du thermomètre 1 - Prendre la température \n", + "1 Suivre programme de calculs 1 - Prendre la température \n", + "2 Renverser un programme de calculs 1 - Prendre la température \n", + "156 Lecture du thermomètre 1 - Prendre la température \n", + "157 Suivre programme de calculs 1 - Prendre la température \n", + "\n", + " eval score fullname latex \n", + "0 DS1 mise en jambe 1 ABDALLAH ALLAOUI Taiassima \\RepU \n", + "1 DS1 mise en jambe 2 ABDALLAH ALLAOUI Taiassima \\RepD \n", + "2 DS1 mise en jambe 0 ABDALLAH ALLAOUI Taiassima \\NoRep \n", + "156 DS1 mise en jambe 1 ABDALLAH ALLAOUI Taiassima \\RepU \n", + "157 DS1 mise en jambe 2 ABDALLAH ALLAOUI Taiassima \\RepD " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "student_df = df[df['fullname'] == fullname]\n", + "student_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "name object\n", + "surname object\n", + "value object\n", + "competence category\n", + "question object\n", + "comment object\n", + "exercise object\n", + "eval object\n", + "score int64\n", + "fullname object\n", + "latex object\n", + "dtype: object" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "student_df.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "comp = competence_report(student_df)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "#ind = comp.columns.levels[-1]" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "#ind.sort_values(lambda x : COMPETENCES[x][\"index\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "#comp.columns = comp.columns.levels[-1]" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "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", + "
Moyenne discrète
score
fullnameABDALLAH ALLAOUI Taiassima
competence
Cher2.0
Rai2.0
Cal2.0
Com2.0
\n", + "
" + ], + "text/plain": [ + " Moyenne discrète\n", + " score\n", + "fullname ABDALLAH ALLAOUI Taiassima\n", + "competence \n", + "Cher 2.0\n", + "Rai 2.0\n", + "Cal 2.0\n", + "Com 2.0" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comp.dropna()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "#comp_dict = comp.to_dict()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cher -> 2.0\n", + "Rai -> 2.0\n", + "Cal -> 2.0\n", + "Com -> 2.0\n" + ] + } + ], + "source": [ + "for k,v in comp.iterrows():\n", + " print(f\"{k} -> {v[0]}\")\n", + " #for c, val in v.items():\n", + " # print(f\"{c} -> {val}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Résumé des exercices" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "gpd_df = df.groupby('fullname')" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--------------------\n", + "ABDALLAH ALLAOUI Taiassima\n", + " Moyenne discrète\n", + " score\n", + "fullname ABDALLAH ALLAOUI Taiassima\n", + "competence \n", + "Cher \\RepD\n", + "Rai \\RepD\n", + "Cal \\RepD\n", + "Com \\RepD\n", + "--------------------\n", + "ADANI Ismou\n", + " Moyenne discrète\n", + " score\n", + "fullname ADANI Ismou\n", + "competence \n", + "Cher \\RepD\n", + "Rai \\RepD\n", + "Cal \\RepU\n", + "Com \\RepU\n", + "--------------------\n", + "AHAMADA Dhoulkamal\n", + " Moyenne discrète\n", + " score\n", + "fullname AHAMADA Dhoulkamal\n", + "competence \n", + "Cher \\RepT\n", + "Rai \\RepZ\n", + "Cal \\RepZ\n", + "Com \\RepU\n", + "--------------------\n", + "AHAMADI Asbahati\n", + " Moyenne discrète\n", + " score\n", + "fullname AHAMADI Asbahati\n", + "competence \n", + "Cher \\RepT\n", + "Rai \\RepT\n", + "Cal \\RepT\n", + "Com \\RepT\n", + "--------------------\n", + "AHAMADI OUSSENI Ansufiddine\n", + " Moyenne discrète\n", + " score\n", + "fullname AHAMADI OUSSENI Ansufiddine\n", + "competence \n", + "Cher \\RepU\n", + "Rai \\RepZ\n", + "Cal \\RepU\n", + "Com \\RepU\n", + "--------------------\n", + "AHAMED Fayadhi\n", + " Moyenne discrète\n", + " score\n", + "fullname AHAMED Fayadhi\n", + "competence \n", + "Cher \\RepT\n", + "Rai \\RepU\n", + "Cal \\RepU\n", + "Com \\RepD\n", + "--------------------\n", + "AHMED SAID Hadaïta\n", + " Moyenne discrète\n", + " score\n", + "fullname AHMED SAID Hadaïta\n", + "competence \n", + "Cher \\RepT\n", + "Rai \\RepT\n", + "Cal \\RepD\n", + "Com \\RepT\n", + "--------------------\n", + "ALI MADI Anissa\n", + " Moyenne discrète\n", + " score\n", + "fullname ALI MADI Anissa\n", + "competence \n", + "Cher \\RepT\n", + "Rai \\RepT\n", + "Cal \\RepD\n", + "Com \\RepD\n", + "--------------------\n", + "ALI Raydel\n", + " Moyenne discrète\n", + " score\n", + "fullname ALI Raydel\n", + "competence \n", + "Cher \\RepD\n", + "Rai \\RepD\n", + "Cal \\RepT\n", + "Com \\RepD\n", + "--------------------\n", + "ATTOUMANE ALI Fatima\n", + " Moyenne discrète\n", + " score\n", + "fullname ATTOUMANE ALI Fatima\n", + "competence \n", + "Cher \\RepU\n", + "Rai \\RepZ\n", + "Cal \\RepU\n", + "Com \\RepZ\n", + "--------------------\n", + "BACHIROU Elzame\n", + " Moyenne discrète\n", + " score\n", + "fullname BACHIROU Elzame\n", + "competence \n", + "Cher \\RepD\n", + "Rai \\RepZ\n", + "Cal \\RepZ\n", + "Com \\RepU\n", + "--------------------\n", + "BINALI Zalida\n", + " Moyenne discrète\n", + " score\n", + "fullname BINALI Zalida\n", + "competence \n", + "Cher \\RepD\n", + "Rai \\RepZ\n", + "Cal \\RepU\n", + "Com \\RepD\n", + "--------------------\n", + "BOINA Abdillah Mze Limassi\n", + " Moyenne discrète\n", + " score\n", + "fullname BOINA Abdillah Mze Limassi\n", + "competence \n", + "Cher \\RepD\n", + "Rai \\RepT\n", + "Cal \\RepD\n", + "Com \\RepD\n", + "--------------------\n", + "BOUDRA Zaankidine\n", + " Moyenne discrète\n", + " score\n", + "fullname BOUDRA Zaankidine\n", + "competence \n", + "Cher \\RepZ\n", + "Rai \\RepZ\n", + "Cal \\RepZ\n", + "Com \\RepZ\n", + "--------------------\n", + "HALADI Asna\n", + " Moyenne discrète\n", + " score\n", + "fullname HALADI Asna\n", + "competence \n", + "Cher \\RepT\n", + "Rai \\RepT\n", + "Cal \\RepD\n", + "Com \\RepT\n", + "--------------------\n", + "HALIDI Soibrata\n", + " Moyenne discrète\n", + " score\n", + "fullname HALIDI Soibrata\n", + "competence \n", + "Cher \\RepD\n", + "Rai \\RepZ\n", + "Cal \\RepU\n", + "Com \\RepD\n", + "--------------------\n", + "HAMEDALY Doulkifly\n", + " Moyenne discrète\n", + " score\n", + "fullname HAMEDALY Doulkifly\n", + "competence \n", + "Cher \\RepZ\n", + "Rai \\RepU\n", + "Cal \\RepU\n", + "Com \\RepU\n", + "--------------------\n", + "IBRAHIM Nassur\n", + " Moyenne discrète\n", + " score\n", + "fullname IBRAHIM Nassur\n", + "competence \n", + "Cher \\RepD\n", + "Rai \\RepU\n", + "Cal \\RepU\n", + "Com \\RepU\n", + "--------------------\n", + "INOUSSA Anchoura\n", + " Moyenne discrète\n", + " score\n", + "fullname INOUSSA Anchoura\n", + "competence \n", + "Cher \\RepD\n", + "Rai \\RepD\n", + "Cal \\RepU\n", + "Com \\RepD\n", + "--------------------\n", + "MOHAMED Nadia\n", + " Moyenne discrète\n", + " score\n", + "fullname MOHAMED Nadia\n", + "competence \n", + "Cher \\RepU\n", + "Rai \\RepZ\n", + "Cal \\RepZ\n", + "Com \\RepZ\n", + "--------------------\n", + "MOUHOUDHOIRE Izak\n", + " Moyenne discrète\n", + " score\n", + "fullname MOUHOUDHOIRE Izak\n", + "competence \n", + "Cher \\RepU\n", + "Rai \\RepZ\n", + "Cal \\RepZ\n", + "Com \\RepZ\n", + "--------------------\n", + "MOUSSRI Bakari\n", + " Moyenne discrète\n", + " score\n", + "fullname MOUSSRI Bakari\n", + "competence \n", + "Cher \\RepD\n", + "Rai \\RepU\n", + "Cal \\RepZ\n", + "Com \\RepU\n", + "--------------------\n", + "SAKOTRA Claudiana\n", + " Moyenne discrète\n", + " score\n", + "fullname SAKOTRA Claudiana\n", + "competence \n", + "Cher \\RepZ\n", + "Rai \\RepZ\n", + "Cal \\RepU\n", + "Com \\RepU\n", + "--------------------\n", + "SAÏD Fatoumia\n", + " Moyenne discrète\n", + " score\n", + "fullname SAÏD Fatoumia\n", + "competence \n", + "Cher \\RepT\n", + "Rai \\RepT\n", + "Cal \\RepD\n", + "Com \\RepD\n", + "--------------------\n", + "TOUFAIL Salahou\n", + " Moyenne discrète\n", + " score\n", + "fullname TOUFAIL Salahou\n", + "competence \n", + "Cher \\RepD\n", + "Rai \\RepT\n", + "Cal \\RepU\n", + "Com \\RepT\n" + ] + } + ], + "source": [ + "stds = []\n", + "for student, student_table in gpd_df:\n", + " print(\"-\"*20)\n", + " print(student)\n", + " std ={\"name\": student, \"exercises\": []}\n", + " \n", + " # Exercises summary\n", + " gpd_table = student_table.groupby('exercise')\n", + " for exercise, exercise_table in gpd_table:\n", + " #print(exercise)\n", + " exo = {\"name\": exercise, \"questions\": []}\n", + " imin = 10000\n", + " for i,row in exercise_table.iterrows():\n", + " imin = min(i,imin)\n", + " if i in list(range(imin, imin+10)):\n", + " #print(f\"\\t {i} \\t {row['question']} {row['competence']}: {row['latex']}\")\n", + " exo[\"questions\"].append(row)\n", + " std[\"exercises\"].append(exo)\n", + " \n", + " # Competence report\n", + " std['competences'] = competence_report(student_table).applymap(val2latex,)\n", + " pprint(std['competences'])\n", + " \n", + " stds.append(std)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[{'competences': Moyenne discrète\n", + " score\n", + " fullname ABDALLAH ALLAOUI Taiassima\n", + " competence \n", + " Cher \\RepD\n", + " Rai \\RepD\n", + " Cal \\RepD\n", + " Com \\RepD,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name ABDALLAH ALLAOUI\n", + " surname Taiassima\n", + " value 1\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname ABDALLAH ALLAOUI Taiassima\n", + " latex \\RepU\n", + " Name: 0, dtype: object, name ABDALLAH ALLAOUI\n", + " surname Taiassima\n", + " value 2\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ABDALLAH ALLAOUI Taiassima\n", + " latex \\RepD\n", + " Name: 1, dtype: object, name ABDALLAH ALLAOUI\n", + " surname Taiassima\n", + " value .\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname ABDALLAH ALLAOUI Taiassima\n", + " latex \\NoRep\n", + " Name: 2, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name ABDALLAH ALLAOUI\n", + " surname Taiassima\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname ABDALLAH ALLAOUI Taiassima\n", + " latex \\RepT\n", + " Name: 1482, dtype: object, name ABDALLAH ALLAOUI\n", + " surname Taiassima\n", + " value 2\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ABDALLAH ALLAOUI Taiassima\n", + " latex \\RepD\n", + " Name: 1483, dtype: object, name ABDALLAH ALLAOUI\n", + " surname Taiassima\n", + " value 2\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ABDALLAH ALLAOUI Taiassima\n", + " latex \\RepD\n", + " Name: 1484, dtype: object, name ABDALLAH ALLAOUI\n", + " surname Taiassima\n", + " value 3\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname ABDALLAH ALLAOUI Taiassima\n", + " latex \\RepT\n", + " Name: 1485, dtype: object, name ABDALLAH ALLAOUI\n", + " surname Taiassima\n", + " value 2\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ABDALLAH ALLAOUI Taiassima\n", + " latex \\RepD\n", + " Name: 1486, dtype: object]}],\n", + " 'name': 'ABDALLAH ALLAOUI Taiassima'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname ADANI Ismou\n", + " competence \n", + " Cher \\RepD\n", + " Rai \\RepD\n", + " Cal \\RepU\n", + " Com \\RepU,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name ADANI\n", + " surname Ismou\n", + " value 2\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ADANI Ismou\n", + " latex \\RepD\n", + " Name: 3, dtype: object, name ADANI\n", + " surname Ismou\n", + " value 2\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ADANI Ismou\n", + " latex \\RepD\n", + " Name: 4, dtype: object, name ADANI\n", + " surname Ismou\n", + " value 1\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname ADANI Ismou\n", + " latex \\RepU\n", + " Name: 5, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name ADANI\n", + " surname Ismou\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname ADANI Ismou\n", + " latex \\RepT\n", + " Name: 3177, dtype: object, name ADANI\n", + " surname Ismou\n", + " value 2\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ADANI Ismou\n", + " latex \\RepD\n", + " Name: 3178, dtype: object, name ADANI\n", + " surname Ismou\n", + " value 2\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ADANI Ismou\n", + " latex \\RepD\n", + " Name: 3179, dtype: object, name ADANI\n", + " surname Ismou\n", + " value 1\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname ADANI Ismou\n", + " latex \\RepU\n", + " Name: 3180, dtype: object, name ADANI\n", + " surname Ismou\n", + " value 1\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname ADANI Ismou\n", + " latex \\RepU\n", + " Name: 3181, dtype: object]}],\n", + " 'name': 'ADANI Ismou'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname AHAMADA Dhoulkamal\n", + " competence \n", + " Cher \\RepT\n", + " Rai \\RepZ\n", + " Cal \\RepZ\n", + " Com \\RepU,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name AHAMADA\n", + " surname Dhoulkamal\n", + " value 3\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHAMADA Dhoulkamal\n", + " latex \\RepT\n", + " Name: 6, dtype: object, name AHAMADA\n", + " surname Dhoulkamal\n", + " value 0\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname AHAMADA Dhoulkamal\n", + " latex \\RepZ\n", + " Name: 7, dtype: object, name AHAMADA\n", + " surname Dhoulkamal\n", + " value 0\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname AHAMADA Dhoulkamal\n", + " latex \\RepZ\n", + " Name: 8, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name AHAMADA\n", + " surname Dhoulkamal\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHAMADA Dhoulkamal\n", + " latex \\RepT\n", + " Name: 3832, dtype: object, name AHAMADA\n", + " surname Dhoulkamal\n", + " value 0\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname AHAMADA Dhoulkamal\n", + " latex \\RepZ\n", + " Name: 3833, dtype: object, name AHAMADA\n", + " surname Dhoulkamal\n", + " value 0\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname AHAMADA Dhoulkamal\n", + " latex \\RepZ\n", + " Name: 3834, dtype: object, name AHAMADA\n", + " surname Dhoulkamal\n", + " value 0\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname AHAMADA Dhoulkamal\n", + " latex \\RepZ\n", + " Name: 3835, dtype: object, name AHAMADA\n", + " surname Dhoulkamal\n", + " value 1\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname AHAMADA Dhoulkamal\n", + " latex \\RepU\n", + " Name: 3836, dtype: object]}],\n", + " 'name': 'AHAMADA Dhoulkamal'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname AHAMADI Asbahati\n", + " competence \n", + " Cher \\RepT\n", + " Rai \\RepT\n", + " Cal \\RepT\n", + " Com \\RepT,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name AHAMADI\n", + " surname Asbahati\n", + " value 3\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHAMADI Asbahati\n", + " latex \\RepT\n", + " Name: 9, dtype: object, name AHAMADI\n", + " surname Asbahati\n", + " value 3\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHAMADI Asbahati\n", + " latex \\RepT\n", + " Name: 10, dtype: object, name AHAMADI\n", + " surname Asbahati\n", + " value 0\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname AHAMADI Asbahati\n", + " latex \\RepZ\n", + " Name: 11, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name AHAMADI\n", + " surname Asbahati\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHAMADI Asbahati\n", + " latex \\RepT\n", + " Name: 717, dtype: object, name AHAMADI\n", + " surname Asbahati\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHAMADI Asbahati\n", + " latex \\RepT\n", + " Name: 718, dtype: object, name AHAMADI\n", + " surname Asbahati\n", + " value 3\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHAMADI Asbahati\n", + " latex \\RepT\n", + " Name: 719, dtype: object, name AHAMADI\n", + " surname Asbahati\n", + " value 3\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHAMADI Asbahati\n", + " latex \\RepT\n", + " Name: 720, dtype: object, name AHAMADI\n", + " surname Asbahati\n", + " value 3\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHAMADI Asbahati\n", + " latex \\RepT\n", + " Name: 721, dtype: object]}],\n", + " 'name': 'AHAMADI Asbahati'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname AHAMADI OUSSENI Ansufiddine\n", + " competence \n", + " Cher \\RepU\n", + " Rai \\RepZ\n", + " Cal \\RepU\n", + " Com \\RepU,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name AHAMADI OUSSENI\n", + " surname Ansufiddine\n", + " value 1\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname AHAMADI OUSSENI Ansufiddine\n", + " latex \\RepU\n", + " Name: 12, dtype: object, name AHAMADI OUSSENI\n", + " surname Ansufiddine\n", + " value 2\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname AHAMADI OUSSENI Ansufiddine\n", + " latex \\RepD\n", + " Name: 13, dtype: object, name AHAMADI OUSSENI\n", + " surname Ansufiddine\n", + " value .\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname AHAMADI OUSSENI Ansufiddine\n", + " latex \\NoRep\n", + " Name: 14, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name AHAMADI OUSSENI\n", + " surname Ansufiddine\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHAMADI OUSSENI Ansufiddine\n", + " latex \\RepT\n", + " Name: 1372, dtype: object, name AHAMADI OUSSENI\n", + " surname Ansufiddine\n", + " value 0\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname AHAMADI OUSSENI Ansufiddine\n", + " latex \\RepZ\n", + " Name: 1373, dtype: object, name AHAMADI OUSSENI\n", + " surname Ansufiddine\n", + " value 0\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname AHAMADI OUSSENI Ansufiddine\n", + " latex \\RepZ\n", + " Name: 1374, dtype: object, name AHAMADI OUSSENI\n", + " surname Ansufiddine\n", + " value 1\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname AHAMADI OUSSENI Ansufiddine\n", + " latex \\RepU\n", + " Name: 1375, dtype: object, name AHAMADI OUSSENI\n", + " surname Ansufiddine\n", + " value 1\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname AHAMADI OUSSENI Ansufiddine\n", + " latex \\RepU\n", + " Name: 1376, dtype: object]}],\n", + " 'name': 'AHAMADI OUSSENI Ansufiddine'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname AHAMED Fayadhi\n", + " competence \n", + " Cher \\RepT\n", + " Rai \\RepU\n", + " Cal \\RepU\n", + " Com \\RepD,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name AHAMED\n", + " surname Fayadhi\n", + " value 3\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHAMED Fayadhi\n", + " latex \\RepT\n", + " Name: 15, dtype: object, name AHAMED\n", + " surname Fayadhi\n", + " value 2\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname AHAMED Fayadhi\n", + " latex \\RepD\n", + " Name: 16, dtype: object, name AHAMED\n", + " surname Fayadhi\n", + " value 0\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname AHAMED Fayadhi\n", + " latex \\RepZ\n", + " Name: 17, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name AHAMED\n", + " surname Fayadhi\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHAMED Fayadhi\n", + " latex \\RepT\n", + " Name: 3847, dtype: object, name AHAMED\n", + " surname Fayadhi\n", + " value 2\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname AHAMED Fayadhi\n", + " latex \\RepD\n", + " Name: 3848, dtype: object, name AHAMED\n", + " surname Fayadhi\n", + " value 1\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname AHAMED Fayadhi\n", + " latex \\RepU\n", + " Name: 3849, dtype: object, name AHAMED\n", + " surname Fayadhi\n", + " value 1\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname AHAMED Fayadhi\n", + " latex \\RepU\n", + " Name: 3850, dtype: object, name AHAMED\n", + " surname Fayadhi\n", + " value 2\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname AHAMED Fayadhi\n", + " latex \\RepD\n", + " Name: 3851, dtype: object]}],\n", + " 'name': 'AHAMED Fayadhi'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname AHMED SAID Hadaïta\n", + " competence \n", + " Cher \\RepT\n", + " Rai \\RepT\n", + " Cal \\RepD\n", + " Com \\RepT,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name AHMED SAID\n", + " surname Hadaïta\n", + " value 2\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname AHMED SAID Hadaïta\n", + " latex \\RepD\n", + " Name: 18, dtype: object, name AHMED SAID\n", + " surname Hadaïta\n", + " value 2\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname AHMED SAID Hadaïta\n", + " latex \\RepD\n", + " Name: 19, dtype: object, name AHMED SAID\n", + " surname Hadaïta\n", + " value 2\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname AHMED SAID Hadaïta\n", + " latex \\RepD\n", + " Name: 20, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name AHMED SAID\n", + " surname Hadaïta\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHMED SAID Hadaïta\n", + " latex \\RepT\n", + " Name: 1252, dtype: object, name AHMED SAID\n", + " surname Hadaïta\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHMED SAID Hadaïta\n", + " latex \\RepT\n", + " Name: 1253, dtype: object, name AHMED SAID\n", + " surname Hadaïta\n", + " value 3\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHMED SAID Hadaïta\n", + " latex \\RepT\n", + " Name: 1254, dtype: object, name AHMED SAID\n", + " surname Hadaïta\n", + " value 2\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname AHMED SAID Hadaïta\n", + " latex \\RepD\n", + " Name: 1255, dtype: object, name AHMED SAID\n", + " surname Hadaïta\n", + " value 3\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname AHMED SAID Hadaïta\n", + " latex \\RepT\n", + " Name: 1256, dtype: object]}],\n", + " 'name': 'AHMED SAID Hadaïta'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname ALI MADI Anissa\n", + " competence \n", + " Cher \\RepT\n", + " Rai \\RepT\n", + " Cal \\RepD\n", + " Com \\RepD,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name ALI MADI\n", + " surname Anissa\n", + " value 3\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname ALI MADI Anissa\n", + " latex \\RepT\n", + " Name: 24, dtype: object, name ALI MADI\n", + " surname Anissa\n", + " value 1\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname ALI MADI Anissa\n", + " latex \\RepU\n", + " Name: 25, dtype: object, name ALI MADI\n", + " surname Anissa\n", + " value 0\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname ALI MADI Anissa\n", + " latex \\RepZ\n", + " Name: 26, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name ALI MADI\n", + " surname Anissa\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname ALI MADI Anissa\n", + " latex \\RepT\n", + " Name: 1002, dtype: object, name ALI MADI\n", + " surname Anissa\n", + " value 2\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ALI MADI Anissa\n", + " latex \\RepD\n", + " Name: 1003, dtype: object, name ALI MADI\n", + " surname Anissa\n", + " value 3\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname ALI MADI Anissa\n", + " latex \\RepT\n", + " Name: 1004, dtype: object, name ALI MADI\n", + " surname Anissa\n", + " value 3\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname ALI MADI Anissa\n", + " latex \\RepT\n", + " Name: 1005, dtype: object, name ALI MADI\n", + " surname Anissa\n", + " value 2\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ALI MADI Anissa\n", + " latex \\RepD\n", + " Name: 1006, dtype: object]}],\n", + " 'name': 'ALI MADI Anissa'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname ALI Raydel\n", + " competence \n", + " Cher \\RepD\n", + " Rai \\RepD\n", + " Cal \\RepT\n", + " Com \\RepD,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name ALI\n", + " surname Raydel\n", + " value 2\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ALI Raydel\n", + " latex \\RepD\n", + " Name: 21, dtype: object, name ALI\n", + " surname Raydel\n", + " value 0\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname ALI Raydel\n", + " latex \\RepZ\n", + " Name: 22, dtype: object, name ALI\n", + " surname Raydel\n", + " value 2\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ALI Raydel\n", + " latex \\RepD\n", + " Name: 23, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name ALI\n", + " surname Raydel\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname ALI Raydel\n", + " latex \\RepT\n", + " Name: 737, dtype: object, name ALI\n", + " surname Raydel\n", + " value 2\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ALI Raydel\n", + " latex \\RepD\n", + " Name: 738, dtype: object, name ALI\n", + " surname Raydel\n", + " value 2\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ALI Raydel\n", + " latex \\RepD\n", + " Name: 739, dtype: object, name ALI\n", + " surname Raydel\n", + " value 3\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname ALI Raydel\n", + " latex \\RepT\n", + " Name: 740, dtype: object, name ALI\n", + " surname Raydel\n", + " value 2\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ALI Raydel\n", + " latex \\RepD\n", + " Name: 741, dtype: object]}],\n", + " 'name': 'ALI Raydel'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname ATTOUMANE ALI Fatima\n", + " competence \n", + " Cher \\RepU\n", + " Rai \\RepZ\n", + " Cal \\RepU\n", + " Com \\RepZ,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name ATTOUMANE ALI\n", + " surname Fatima\n", + " value 1\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname ATTOUMANE ALI Fatima\n", + " latex \\RepU\n", + " Name: 27, dtype: object, name ATTOUMANE ALI\n", + " surname Fatima\n", + " value 2\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname ATTOUMANE ALI Fatima\n", + " latex \\RepD\n", + " Name: 28, dtype: object, name ATTOUMANE ALI\n", + " surname Fatima\n", + " value 0\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname ATTOUMANE ALI Fatima\n", + " latex \\RepZ\n", + " Name: 29, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name ATTOUMANE ALI\n", + " surname Fatima\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname ATTOUMANE ALI Fatima\n", + " latex \\RepT\n", + " Name: 3347, dtype: object, name ATTOUMANE ALI\n", + " surname Fatima\n", + " value 0\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname ATTOUMANE ALI Fatima\n", + " latex \\RepZ\n", + " Name: 3348, dtype: object, name ATTOUMANE ALI\n", + " surname Fatima\n", + " value 0\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname ATTOUMANE ALI Fatima\n", + " latex \\RepZ\n", + " Name: 3349, dtype: object, name ATTOUMANE ALI\n", + " surname Fatima\n", + " value 1\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname ATTOUMANE ALI Fatima\n", + " latex \\RepU\n", + " Name: 3350, dtype: object, name ATTOUMANE ALI\n", + " surname Fatima\n", + " value 0\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname ATTOUMANE ALI Fatima\n", + " latex \\RepZ\n", + " Name: 3351, dtype: object]}],\n", + " 'name': 'ATTOUMANE ALI Fatima'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname BACHIROU Elzame\n", + " competence \n", + " Cher \\RepD\n", + " Rai \\RepZ\n", + " Cal \\RepZ\n", + " Com \\RepU,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name BACHIROU\n", + " surname Elzame\n", + " value 3\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname BACHIROU Elzame\n", + " latex \\RepT\n", + " Name: 30, dtype: object, name BACHIROU\n", + " surname Elzame\n", + " value 0\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BACHIROU Elzame\n", + " latex \\RepZ\n", + " Name: 31, dtype: object, name BACHIROU\n", + " surname Elzame\n", + " value .\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BACHIROU Elzame\n", + " latex \\NoRep\n", + " Name: 32, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name BACHIROU\n", + " surname Elzame\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname BACHIROU Elzame\n", + " latex \\RepT\n", + " Name: 882, dtype: object, name BACHIROU\n", + " surname Elzame\n", + " value 1\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname BACHIROU Elzame\n", + " latex \\RepU\n", + " Name: 883, dtype: object, name BACHIROU\n", + " surname Elzame\n", + " value .\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BACHIROU Elzame\n", + " latex \\NoRep\n", + " Name: 884, dtype: object, name BACHIROU\n", + " surname Elzame\n", + " value .\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BACHIROU Elzame\n", + " latex \\NoRep\n", + " Name: 885, dtype: object, name BACHIROU\n", + " surname Elzame\n", + " value 1\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname BACHIROU Elzame\n", + " latex \\RepU\n", + " Name: 886, dtype: object]}],\n", + " 'name': 'BACHIROU Elzame'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname BINALI Zalida\n", + " competence \n", + " Cher \\RepD\n", + " Rai \\RepZ\n", + " Cal \\RepU\n", + " Com \\RepD,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name BINALI\n", + " surname Zalida\n", + " value 2\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname BINALI Zalida\n", + " latex \\RepD\n", + " Name: 33, dtype: object, name BINALI\n", + " surname Zalida\n", + " value 3\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname BINALI Zalida\n", + " latex \\RepT\n", + " Name: 34, dtype: object, name BINALI\n", + " surname Zalida\n", + " value .\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BINALI Zalida\n", + " latex \\NoRep\n", + " Name: 35, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name BINALI\n", + " surname Zalida\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname BINALI Zalida\n", + " latex \\RepT\n", + " Name: 3877, dtype: object, name BINALI\n", + " surname Zalida\n", + " value .\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BINALI Zalida\n", + " latex \\NoRep\n", + " Name: 3878, dtype: object, name BINALI\n", + " surname Zalida\n", + " value .\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BINALI Zalida\n", + " latex \\NoRep\n", + " Name: 3879, dtype: object, name BINALI\n", + " surname Zalida\n", + " value .\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BINALI Zalida\n", + " latex \\NoRep\n", + " Name: 3880, dtype: object, name BINALI\n", + " surname Zalida\n", + " value 2\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname BINALI Zalida\n", + " latex \\RepD\n", + " Name: 3881, dtype: object]}],\n", + " 'name': 'BINALI Zalida'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname BOINA Abdillah Mze Limassi\n", + " competence \n", + " Cher \\RepD\n", + " Rai \\RepT\n", + " Cal \\RepD\n", + " Com \\RepD,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name BOINA\n", + " surname Abdillah Mze Limassi\n", + " value 2\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname BOINA Abdillah Mze Limassi\n", + " latex \\RepD\n", + " Name: 36, dtype: object, name BOINA\n", + " surname Abdillah Mze Limassi\n", + " value 3\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname BOINA Abdillah Mze Limassi\n", + " latex \\RepT\n", + " Name: 37, dtype: object, name BOINA\n", + " surname Abdillah Mze Limassi\n", + " value .\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BOINA Abdillah Mze Limassi\n", + " latex \\NoRep\n", + " Name: 38, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name BOINA\n", + " surname Abdillah Mze Limassi\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname BOINA Abdillah Mze Limassi\n", + " latex \\RepT\n", + " Name: 3362, dtype: object, name BOINA\n", + " surname Abdillah Mze Limassi\n", + " value 2\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname BOINA Abdillah Mze Limassi\n", + " latex \\RepD\n", + " Name: 3363, dtype: object, name BOINA\n", + " surname Abdillah Mze Limassi\n", + " value 3\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname BOINA Abdillah Mze Limassi\n", + " latex \\RepT\n", + " Name: 3364, dtype: object, name BOINA\n", + " surname Abdillah Mze Limassi\n", + " value 3\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname BOINA Abdillah Mze Limassi\n", + " latex \\RepT\n", + " Name: 3365, dtype: object, name BOINA\n", + " surname Abdillah Mze Limassi\n", + " value 2\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname BOINA Abdillah Mze Limassi\n", + " latex \\RepD\n", + " Name: 3366, dtype: object]}],\n", + " 'name': 'BOINA Abdillah Mze Limassi'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname BOUDRA Zaankidine\n", + " competence \n", + " Cher \\RepZ\n", + " Rai \\RepZ\n", + " Cal \\RepZ\n", + " Com \\RepZ,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name BOUDRA\n", + " surname Zaankidine\n", + " value 0\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BOUDRA Zaankidine\n", + " latex \\RepZ\n", + " Name: 39, dtype: object, name BOUDRA\n", + " surname Zaankidine\n", + " value 1\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname BOUDRA Zaankidine\n", + " latex \\RepU\n", + " Name: 40, dtype: object, name BOUDRA\n", + " surname Zaankidine\n", + " value 0\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BOUDRA Zaankidine\n", + " latex \\RepZ\n", + " Name: 41, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name BOUDRA\n", + " surname Zaankidine\n", + " value .\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BOUDRA Zaankidine\n", + " latex \\NoRep\n", + " Name: 1547, dtype: object, name BOUDRA\n", + " surname Zaankidine\n", + " value .\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BOUDRA Zaankidine\n", + " latex \\NoRep\n", + " Name: 1548, dtype: object, name BOUDRA\n", + " surname Zaankidine\n", + " value .\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BOUDRA Zaankidine\n", + " latex \\NoRep\n", + " Name: 1549, dtype: object, name BOUDRA\n", + " surname Zaankidine\n", + " value .\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BOUDRA Zaankidine\n", + " latex \\NoRep\n", + " Name: 1550, dtype: object, name BOUDRA\n", + " surname Zaankidine\n", + " value .\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname BOUDRA Zaankidine\n", + " latex \\NoRep\n", + " Name: 1551, dtype: object]}],\n", + " 'name': 'BOUDRA Zaankidine'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname HALADI Asna\n", + " competence \n", + " Cher \\RepT\n", + " Rai \\RepT\n", + " Cal \\RepD\n", + " Com \\RepT,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name HALADI\n", + " surname Asna\n", + " value 2\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname HALADI Asna\n", + " latex \\RepD\n", + " Name: 45, dtype: object, name HALADI\n", + " surname Asna\n", + " value 1\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname HALADI Asna\n", + " latex \\RepU\n", + " Name: 46, dtype: object, name HALADI\n", + " surname Asna\n", + " value 2\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname HALADI Asna\n", + " latex \\RepD\n", + " Name: 47, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name HALADI\n", + " surname Asna\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname HALADI Asna\n", + " latex \\RepT\n", + " Name: 1167, dtype: object, name HALADI\n", + " surname Asna\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname HALADI Asna\n", + " latex \\RepT\n", + " Name: 1168, dtype: object, name HALADI\n", + " surname Asna\n", + " value 3\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname HALADI Asna\n", + " latex \\RepT\n", + " Name: 1169, dtype: object, name HALADI\n", + " surname Asna\n", + " value 3\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname HALADI Asna\n", + " latex \\RepT\n", + " Name: 1170, dtype: object, name HALADI\n", + " surname Asna\n", + " value 3\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname HALADI Asna\n", + " latex \\RepT\n", + " Name: 1171, dtype: object]}],\n", + " 'name': 'HALADI Asna'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname HALIDI Soibrata\n", + " competence \n", + " Cher \\RepD\n", + " Rai \\RepZ\n", + " Cal \\RepU\n", + " Com \\RepD,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name HALIDI\n", + " surname Soibrata\n", + " value 0\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname HALIDI Soibrata\n", + " latex \\RepZ\n", + " Name: 48, dtype: object, name HALIDI\n", + " surname Soibrata\n", + " value 1\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname HALIDI Soibrata\n", + " latex \\RepU\n", + " Name: 49, dtype: object, name HALIDI\n", + " surname Soibrata\n", + " value .\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname HALIDI Soibrata\n", + " latex \\NoRep\n", + " Name: 50, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name HALIDI\n", + " surname Soibrata\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname HALIDI Soibrata\n", + " latex \\RepT\n", + " Name: 1952, dtype: object, name HALIDI\n", + " surname Soibrata\n", + " value 1\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname HALIDI Soibrata\n", + " latex \\RepU\n", + " Name: 1953, dtype: object, name HALIDI\n", + " surname Soibrata\n", + " value 0\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname HALIDI Soibrata\n", + " latex \\RepZ\n", + " Name: 1954, dtype: object, name HALIDI\n", + " surname Soibrata\n", + " value 1\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname HALIDI Soibrata\n", + " latex \\RepU\n", + " Name: 1955, dtype: object, name HALIDI\n", + " surname Soibrata\n", + " value 2\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname HALIDI Soibrata\n", + " latex \\RepD\n", + " Name: 1956, dtype: object]}],\n", + " 'name': 'HALIDI Soibrata'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname HAMEDALY Doulkifly\n", + " competence \n", + " Cher \\RepZ\n", + " Rai \\RepU\n", + " Cal \\RepU\n", + " Com \\RepU,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name HAMEDALY\n", + " surname Doulkifly\n", + " value 0\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname HAMEDALY Doulkifly\n", + " latex \\RepZ\n", + " Name: 51, dtype: object, name HAMEDALY\n", + " surname Doulkifly\n", + " value 0\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname HAMEDALY Doulkifly\n", + " latex \\RepZ\n", + " Name: 52, dtype: object, name HAMEDALY\n", + " surname Doulkifly\n", + " value 0\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname HAMEDALY Doulkifly\n", + " latex \\RepZ\n", + " Name: 53, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name HAMEDALY\n", + " surname Doulkifly\n", + " value 0\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname HAMEDALY Doulkifly\n", + " latex \\RepZ\n", + " Name: 2477, dtype: object, name HAMEDALY\n", + " surname Doulkifly\n", + " value 1\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname HAMEDALY Doulkifly\n", + " latex \\RepU\n", + " Name: 2478, dtype: object, name HAMEDALY\n", + " surname Doulkifly\n", + " value 1\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname HAMEDALY Doulkifly\n", + " latex \\RepU\n", + " Name: 2479, dtype: object, name HAMEDALY\n", + " surname Doulkifly\n", + " value 2\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname HAMEDALY Doulkifly\n", + " latex \\RepD\n", + " Name: 2480, dtype: object, name HAMEDALY\n", + " surname Doulkifly\n", + " value 1\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname HAMEDALY Doulkifly\n", + " latex \\RepU\n", + " Name: 2481, dtype: object]}],\n", + " 'name': 'HAMEDALY Doulkifly'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname IBRAHIM Nassur\n", + " competence \n", + " Cher \\RepD\n", + " Rai \\RepU\n", + " Cal \\RepU\n", + " Com \\RepU,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name IBRAHIM\n", + " surname Nassur\n", + " value 2\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname IBRAHIM Nassur\n", + " latex \\RepD\n", + " Name: 54, dtype: object, name IBRAHIM\n", + " surname Nassur\n", + " value 2\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname IBRAHIM Nassur\n", + " latex \\RepD\n", + " Name: 55, dtype: object, name IBRAHIM\n", + " surname Nassur\n", + " value 0\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname IBRAHIM Nassur\n", + " latex \\RepZ\n", + " Name: 56, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name IBRAHIM\n", + " surname Nassur\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname IBRAHIM Nassur\n", + " latex \\RepT\n", + " Name: 3912, dtype: object, name IBRAHIM\n", + " surname Nassur\n", + " value 2\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname IBRAHIM Nassur\n", + " latex \\RepD\n", + " Name: 3913, dtype: object, name IBRAHIM\n", + " surname Nassur\n", + " value 1\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname IBRAHIM Nassur\n", + " latex \\RepU\n", + " Name: 3914, dtype: object, name IBRAHIM\n", + " surname Nassur\n", + " value 2\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname IBRAHIM Nassur\n", + " latex \\RepD\n", + " Name: 3915, dtype: object, name IBRAHIM\n", + " surname Nassur\n", + " value 1\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname IBRAHIM Nassur\n", + " latex \\RepU\n", + " Name: 3916, dtype: object]}],\n", + " 'name': 'IBRAHIM Nassur'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname INOUSSA Anchoura\n", + " competence \n", + " Cher \\RepD\n", + " Rai \\RepD\n", + " Cal \\RepU\n", + " Com \\RepD,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name INOUSSA\n", + " surname Anchoura\n", + " value 3\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname INOUSSA Anchoura\n", + " latex \\RepT\n", + " Name: 57, dtype: object, name INOUSSA\n", + " surname Anchoura\n", + " value .\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname INOUSSA Anchoura\n", + " latex \\NoRep\n", + " Name: 58, dtype: object, name INOUSSA\n", + " surname Anchoura\n", + " value .\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname INOUSSA Anchoura\n", + " latex \\NoRep\n", + " Name: 59, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name INOUSSA\n", + " surname Anchoura\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname INOUSSA Anchoura\n", + " latex \\RepT\n", + " Name: 1057, dtype: object, name INOUSSA\n", + " surname Anchoura\n", + " value 1\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname INOUSSA Anchoura\n", + " latex \\RepU\n", + " Name: 1058, dtype: object, name INOUSSA\n", + " surname Anchoura\n", + " value 2\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname INOUSSA Anchoura\n", + " latex \\RepD\n", + " Name: 1059, dtype: object, name INOUSSA\n", + " surname Anchoura\n", + " value 1\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname INOUSSA Anchoura\n", + " latex \\RepU\n", + " Name: 1060, dtype: object, name INOUSSA\n", + " surname Anchoura\n", + " value 2\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname INOUSSA Anchoura\n", + " latex \\RepD\n", + " Name: 1061, dtype: object]}],\n", + " 'name': 'INOUSSA Anchoura'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname MOHAMED Nadia\n", + " competence \n", + " Cher \\RepU\n", + " Rai \\RepZ\n", + " Cal \\RepZ\n", + " Com \\RepZ,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name MOHAMED\n", + " surname Nadia\n", + " value 3\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname MOHAMED Nadia\n", + " latex \\RepT\n", + " Name: 60, dtype: object, name MOHAMED\n", + " surname Nadia\n", + " value 0\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOHAMED Nadia\n", + " latex \\RepZ\n", + " Name: 61, dtype: object, name MOHAMED\n", + " surname Nadia\n", + " value 0\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOHAMED Nadia\n", + " latex \\RepZ\n", + " Name: 62, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name MOHAMED\n", + " surname Nadia\n", + " value .\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOHAMED Nadia\n", + " latex \\NoRep\n", + " Name: 1712, dtype: object, name MOHAMED\n", + " surname Nadia\n", + " value .\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOHAMED Nadia\n", + " latex \\NoRep\n", + " Name: 1713, dtype: object, name MOHAMED\n", + " surname Nadia\n", + " value .\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOHAMED Nadia\n", + " latex \\NoRep\n", + " Name: 1714, dtype: object, name MOHAMED\n", + " surname Nadia\n", + " value .\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOHAMED Nadia\n", + " latex \\NoRep\n", + " Name: 1715, dtype: object, name MOHAMED\n", + " surname Nadia\n", + " value .\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOHAMED Nadia\n", + " latex \\NoRep\n", + " Name: 1716, dtype: object]}],\n", + " 'name': 'MOHAMED Nadia'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname MOUHOUDHOIRE Izak\n", + " competence \n", + " Cher \\RepU\n", + " Rai \\RepZ\n", + " Cal \\RepZ\n", + " Com \\RepZ,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name MOUHOUDHOIRE\n", + " surname Izak\n", + " value 3\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname MOUHOUDHOIRE Izak\n", + " latex \\RepT\n", + " Name: 63, dtype: object, name MOUHOUDHOIRE\n", + " surname Izak\n", + " value 0\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOUHOUDHOIRE Izak\n", + " latex \\RepZ\n", + " Name: 64, dtype: object, name MOUHOUDHOIRE\n", + " surname Izak\n", + " value 0\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOUHOUDHOIRE Izak\n", + " latex \\RepZ\n", + " Name: 65, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name MOUHOUDHOIRE\n", + " surname Izak\n", + " value 0\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOUHOUDHOIRE Izak\n", + " latex \\RepZ\n", + " Name: 3407, dtype: object, name MOUHOUDHOIRE\n", + " surname Izak\n", + " value .\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOUHOUDHOIRE Izak\n", + " latex \\NoRep\n", + " Name: 3408, dtype: object, name MOUHOUDHOIRE\n", + " surname Izak\n", + " value .\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOUHOUDHOIRE Izak\n", + " latex \\NoRep\n", + " Name: 3409, dtype: object, name MOUHOUDHOIRE\n", + " surname Izak\n", + " value .\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOUHOUDHOIRE Izak\n", + " latex \\NoRep\n", + " Name: 3410, dtype: object, name MOUHOUDHOIRE\n", + " surname Izak\n", + " value .\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOUHOUDHOIRE Izak\n", + " latex \\NoRep\n", + " Name: 3411, dtype: object]}],\n", + " 'name': 'MOUHOUDHOIRE Izak'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname MOUSSRI Bakari\n", + " competence \n", + " Cher \\RepD\n", + " Rai \\RepU\n", + " Cal \\RepZ\n", + " Com \\RepU,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name MOUSSRI\n", + " surname Bakari\n", + " value 0\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOUSSRI Bakari\n", + " latex \\RepZ\n", + " Name: 66, dtype: object, name MOUSSRI\n", + " surname Bakari\n", + " value 0\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOUSSRI Bakari\n", + " latex \\RepZ\n", + " Name: 67, dtype: object, name MOUSSRI\n", + " surname Bakari\n", + " value .\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname MOUSSRI Bakari\n", + " latex \\NoRep\n", + " Name: 68, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name MOUSSRI\n", + " surname Bakari\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname MOUSSRI Bakari\n", + " latex \\RepT\n", + " Name: 1852, dtype: object, name MOUSSRI\n", + " surname Bakari\n", + " value 1\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname MOUSSRI Bakari\n", + " latex \\RepU\n", + " Name: 1853, dtype: object, name MOUSSRI\n", + " surname Bakari\n", + " value 1\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname MOUSSRI Bakari\n", + " latex \\RepU\n", + " Name: 1854, dtype: object, name MOUSSRI\n", + " surname Bakari\n", + " value 1\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname MOUSSRI Bakari\n", + " latex \\RepU\n", + " Name: 1855, dtype: object, name MOUSSRI\n", + " surname Bakari\n", + " value 1\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname MOUSSRI Bakari\n", + " latex \\RepU\n", + " Name: 1856, dtype: object]}],\n", + " 'name': 'MOUSSRI Bakari'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname SAKOTRA Claudiana\n", + " competence \n", + " Cher \\RepZ\n", + " Rai \\RepZ\n", + " Cal \\RepU\n", + " Com \\RepU,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name SAKOTRA\n", + " surname Claudiana\n", + " value 3\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname SAKOTRA Claudiana\n", + " latex \\RepT\n", + " Name: 69, dtype: object, name SAKOTRA\n", + " surname Claudiana\n", + " value 2\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname SAKOTRA Claudiana\n", + " latex \\RepD\n", + " Name: 70, dtype: object, name SAKOTRA\n", + " surname Claudiana\n", + " value 1\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname SAKOTRA Claudiana\n", + " latex \\RepU\n", + " Name: 71, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name SAKOTRA\n", + " surname Claudiana\n", + " value .\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname SAKOTRA Claudiana\n", + " latex \\NoRep\n", + " Name: 1337, dtype: object, name SAKOTRA\n", + " surname Claudiana\n", + " value .\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname SAKOTRA Claudiana\n", + " latex \\NoRep\n", + " Name: 1338, dtype: object, name SAKOTRA\n", + " surname Claudiana\n", + " value .\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname SAKOTRA Claudiana\n", + " latex \\NoRep\n", + " Name: 1339, dtype: object, name SAKOTRA\n", + " surname Claudiana\n", + " value .\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname SAKOTRA Claudiana\n", + " latex \\NoRep\n", + " Name: 1340, dtype: object, name SAKOTRA\n", + " surname Claudiana\n", + " value 1\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname SAKOTRA Claudiana\n", + " latex \\RepU\n", + " Name: 1341, dtype: object]}],\n", + " 'name': 'SAKOTRA Claudiana'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname SAÏD Fatoumia\n", + " competence \n", + " Cher \\RepT\n", + " Rai \\RepT\n", + " Cal \\RepD\n", + " Com \\RepD,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name SAÏD\n", + " surname Fatoumia\n", + " value 1\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname SAÏD Fatoumia\n", + " latex \\RepU\n", + " Name: 72, dtype: object, name SAÏD\n", + " surname Fatoumia\n", + " value 2\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname SAÏD Fatoumia\n", + " latex \\RepD\n", + " Name: 73, dtype: object, name SAÏD\n", + " surname Fatoumia\n", + " value 0\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname SAÏD Fatoumia\n", + " latex \\RepZ\n", + " Name: 74, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name SAÏD\n", + " surname Fatoumia\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname SAÏD Fatoumia\n", + " latex \\RepT\n", + " Name: 822, dtype: object, name SAÏD\n", + " surname Fatoumia\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname SAÏD Fatoumia\n", + " latex \\RepT\n", + " Name: 823, dtype: object, name SAÏD\n", + " surname Fatoumia\n", + " value 3\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname SAÏD Fatoumia\n", + " latex \\RepT\n", + " Name: 824, dtype: object, name SAÏD\n", + " surname Fatoumia\n", + " value 2\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname SAÏD Fatoumia\n", + " latex \\RepD\n", + " Name: 825, dtype: object, name SAÏD\n", + " surname Fatoumia\n", + " value 2\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname SAÏD Fatoumia\n", + " latex \\RepD\n", + " Name: 826, dtype: object]}],\n", + " 'name': 'SAÏD Fatoumia'},\n", + " {'competences': Moyenne discrète\n", + " score\n", + " fullname TOUFAIL Salahou\n", + " competence \n", + " Cher \\RepD\n", + " Rai \\RepT\n", + " Cal \\RepU\n", + " Com \\RepT,\n", + " 'exercises': [{'name': '1 - Prendre la température',\n", + " 'questions': [name TOUFAIL\n", + " surname Salahou\n", + " value 2\n", + " competence Cher\n", + " question 1\n", + " comment Lecture du thermomètre\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 2\n", + " fullname TOUFAIL Salahou\n", + " latex \\RepD\n", + " Name: 75, dtype: object, name TOUFAIL\n", + " surname Salahou\n", + " value 1\n", + " competence Cal\n", + " question 2\n", + " comment Suivre programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 1\n", + " fullname TOUFAIL Salahou\n", + " latex \\RepU\n", + " Name: 76, dtype: object, name TOUFAIL\n", + " surname Salahou\n", + " value .\n", + " competence Cal\n", + " question 2.c\n", + " comment Renverser un programme de calculs\n", + " exercise 1 - Prendre la température\n", + " eval DS1 mise en jambe\n", + " score 0\n", + " fullname TOUFAIL Salahou\n", + " latex \\NoRep\n", + " Name: 77, dtype: object]},\n", + " {'name': '2 - Maladroite!',\n", + " 'questions': [name TOUFAIL\n", + " surname Salahou\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Lire le tableau et le graphique\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname TOUFAIL Salahou\n", + " latex \\RepT\n", + " Name: 3947, dtype: object, name TOUFAIL\n", + " surname Salahou\n", + " value 3\n", + " competence Cher\n", + " question \n", + " comment Décomposer le problème\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname TOUFAIL Salahou\n", + " latex \\RepT\n", + " Name: 3948, dtype: object, name TOUFAIL\n", + " surname Salahou\n", + " value 3\n", + " competence Rai\n", + " question \n", + " comment Manipuler les grandeurs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname TOUFAIL Salahou\n", + " latex \\RepT\n", + " Name: 3949, dtype: object, name TOUFAIL\n", + " surname Salahou\n", + " value 3\n", + " competence Cal\n", + " question \n", + " comment Mener à bien les calculs\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname TOUFAIL Salahou\n", + " latex \\RepT\n", + " Name: 3950, dtype: object, name TOUFAIL\n", + " surname Salahou\n", + " value 3\n", + " competence Com\n", + " question \n", + " comment Rédaction\n", + " exercise 2 - Maladroite!\n", + " eval DS1 mise en jambe\n", + " score 3\n", + " fullname TOUFAIL Salahou\n", + " latex \\RepT\n", + " Name: 3951, dtype: object]}],\n", + " 'name': 'TOUFAIL Salahou'}]" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stds" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On balance tout à pytex" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "import pytex" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "tpl = './tpl_report.tex'\n", + "output = '302_DS1.tex'\n", + "pytex.feed(tpl, {'students': stds, \"competences\": COMPETENCES}, output,1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.6.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Notes/tpl_report.tex b/Notes/tpl_report.tex new file mode 100644 index 0000000..37f23e0 --- /dev/null +++ b/Notes/tpl_report.tex @@ -0,0 +1,61 @@ +\documentclass[a5paper,12pt]{article} +\usepackage{myXsim} + + +% Title Page +%\title{\Var{eval.name}} +%\tribe{\Var{eval.tribe}} +%\date{eval.date} + +\title{DS1 mise en jambe} +\tribe{302} +\date{} + +\begin{document} + +%- for student in students + +\maketitle + +{\Large \Var{student['name']}} + +\vfill + +Réussite aux exercices + +\begin{center} +%- for exercise in student['exercises'] +\begin{tabular}{|c|c|} + \hline + \multicolumn{2}{|c|}{Exercice \Var{exercise['name']}}\\ + \hline + +%- for question in exercise['questions'] + \Var{question['question']} \Var{question['comment']}& \Var{question['latex']} \\ + \hline +%- endfor +\end{tabular} +\vfill +%- endfor +\end{center} + +Bilan par compétences + +\begin{itemize} +%- for k,v in student['competences'].iterrows() + \item \Var{competences[k]['latex']} \Var{competences[k]['fullname']} : \Var{v[0]} +%- endfor +\end{itemize} + + +\vfill +\pagebreak +%- endfor + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "master" +%%% End: + diff --git a/tools/style/base.sty b/tools/style/base.sty index 5b49044..9902182 100755 --- a/tools/style/base.sty +++ b/tools/style/base.sty @@ -11,7 +11,7 @@ \RequirePackage{amsfonts} %\RequirePackage{subfig} \RequirePackage{graphicx} -\RequirePackage{color} +\RequirePackage[table]{xcolor} \RequirePackage{gensymb} \RequirePackage{ifthen, calc} \RequirePackage{tabularx} diff --git a/tools/style/shortcuts.sty b/tools/style/shortcuts.sty index ab31c32..12b3bb5 100755 --- a/tools/style/shortcuts.sty +++ b/tools/style/shortcuts.sty @@ -91,6 +91,15 @@ \icon[#1]{book-cover} } +% Pour l'évaluation par compétence +\usepackage{tikzsymbols} + +%\newcommand{\RepT}{\color{black!10}\Changey[2][black!70]{0.8}\color{text}} +\newcommand{\RepT}{\Smiley[2][black!70]} +\newcommand{\RepD}{\Sey[2][black!40]} +\newcommand{\RepU}{\Neutrey[2][black!10]} +\newcommand{\RepZ}{\Sadey[2]} +\newcommand{\NoRep}{(??)} % ########################## % Tikz shortcuts