2017-2018/Notes/DNB_blanc1/Analyse 306.ipynb

2398 lines
72 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import xlsxwriter\n",
"import sqlite3\n",
"import pandas as pd\n",
"import numpy as np\n",
"from math import ceil\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"from pprint import pprint"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from repytex.tools.evaluation import Evaluation\n",
"from repytex.tools.sqlite_getters import all_ev_description"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Récupération de la structure du DNB blanc"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"conn = sqlite3.connect('../recopytex.db')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"ev = Evaluation.from_sqlite(20, conn)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>name</th>\n",
" <th>term</th>\n",
" <th>t_id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>20</td>\n",
" <td>DNB blanc1</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id name term t_id\n",
"0 20 DNB blanc1 2 2"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ev.ev_df"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>name</th>\n",
" <th>grade</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2</td>\n",
" <td>306</td>\n",
" <td>3e</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id name grade\n",
"0 2 306 3e"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ev.t_df"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>name</th>\n",
" <th>surname</th>\n",
" <th>mail</th>\n",
" <th>commment</th>\n",
" <th>tribe_id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>27</td>\n",
" <td>ABDALLAH</td>\n",
" <td>Rachma</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>28</td>\n",
" <td>ABDOU</td>\n",
" <td>Kassim</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>29</td>\n",
" <td>AHAMADI</td>\n",
" <td>Irchadi</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>30</td>\n",
" <td>AHAMED</td>\n",
" <td>Mikidadi</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>31</td>\n",
" <td>ANLI</td>\n",
" <td>El Anziz</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id name surname mail commment tribe_id\n",
"0 27 ABDALLAH Rachma None 2\n",
"1 28 ABDOU Kassim None 2\n",
"2 29 AHAMADI Irchadi None 2\n",
"3 30 AHAMED Mikidadi None 2\n",
"4 31 ANLI El Anziz None 2"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ev.s_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>name</th>\n",
" <th>eval_id</th>\n",
" <th>date</th>\n",
" <th>comment</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>58</td>\n",
" <td>1 Dalle de béton</td>\n",
" <td>20</td>\n",
" <td>2018-02-07 00:00:00.000000</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>59</td>\n",
" <td>2 Soirée Basket</td>\n",
" <td>20</td>\n",
" <td>2018-02-07 00:00:00.000000</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>60</td>\n",
" <td>3 Recette de gateau</td>\n",
" <td>20</td>\n",
" <td>2018-02-07 00:00:00.000000</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>61</td>\n",
" <td>4 Dessiner une figure</td>\n",
" <td>20</td>\n",
" <td>2018-02-07 00:00:00.000000</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>62</td>\n",
" <td>5 Cross du collège</td>\n",
" <td>20</td>\n",
" <td>2018-02-07 00:00:00.000000</td>\n",
" <td></td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id name eval_id date comment\n",
"0 58 1 Dalle de béton 20 2018-02-07 00:00:00.000000 \n",
"1 59 2 Soirée Basket 20 2018-02-07 00:00:00.000000 \n",
"2 60 3 Recette de gateau 20 2018-02-07 00:00:00.000000 \n",
"3 61 4 Dessiner une figure 20 2018-02-07 00:00:00.000000 \n",
"4 62 5 Cross du collège 20 2018-02-07 00:00:00.000000 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ev.ex_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>question_id</th>\n",
" <th>student_id</th>\n",
" <th>value</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Empty DataFrame\n",
"Columns: [id, question_id, student_id, value]\n",
"Index: []"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ev.sc_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Evaluation DNB blanc1 306 - T2\n",
"Ex 1 Dalle de béton\n",
"\tQu 1: Multiplications total HT (3, Cal)\n",
"\tQu 1: Division quantité (2, Cal)\n",
"\tQu 1: Somme Total HT et TC (4, Cal)\n",
"\tQu 2 a et b: Lecture de tableur (4, Rep)\n",
"\tQu 2 c et d: Formule tableur (4, Rep)\n",
"Ex 2 Soirée Basket\n",
"\tQu 1 à 3: Lire un tableau (6, Cher)\n",
"\tQu 4 à 5: Calculs de points (6, Mod)\n",
"\tQu 6: Paniers à 2 points (4, Rai)\n",
"\tQu 7: Champion de la soirée (3, Rai)\n",
"Ex 3 Recette de gateau\n",
"\tQu 1: Multiplier les quantités (3, Mod)\n",
"\tQu 1: Rapport 3 (3, Mod)\n",
"\tQu 1: Multiplication de la fraction (1, Mod)\n",
"\tQu 2: Quantité restante (2, Cal)\n",
"\tQu 2: Fractions (2, Cal)\n",
"Ex 4 Dessiner une figure\n",
"\tQu 1: Dessin du lutin (3, Rep)\n",
"\tQu 2: Modifications (6, Rep)\n",
"Ex 5 Cross du collège\n",
"\tQu 1 et 2: Calculs de longueur (6, Rep)\n",
"\tQu 3: Pythagore (5, Mod)\n",
"\tQu 4: Longueur d'un tour (5, Mod)\n",
"\tQu 5: Longueur pour les 3e (4, Cal)\n",
"Ex 6 Voyage en famille\n",
"\tQu 1: Calcul temps et conversion demi heure (4, Cal)\n",
"\tQu 2: Lectures graphiques (6, Rep)\n",
"\tQu 3: Véracité de l'affirmation (4, Rai)\n",
"Ex Présentation\n",
"\tQu : (10, Com)\n",
"\n"
]
}
],
"source": [
"print(ev.description())"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Construction des df à partir du tableur pour les 306"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ev_df = ev.ev_df"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"ex_df = ev.ex_df"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"q_df = ev.q_df"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"t_df = ev.t_df"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"s_df = ev.s_df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Extraction des scores"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"excelname = './306-DNB blanc1-pro.xlsx'"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"xls_df = pd.read_excel(excelname).T"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Présentation</th>\n",
" <th>Ex 1 Dalle de béton</th>\n",
" <th>0 - Multiplications total HT</th>\n",
" <th>1 - Division quantité</th>\n",
" <th>2 - Somme Total HT et TC</th>\n",
" <th>3 - Lecture de tableur</th>\n",
" <th>4 - Formule tableur</th>\n",
" <th>Ex 2 Soirée Basket</th>\n",
" <th>0 - Lire un tableau</th>\n",
" <th>1 - Calculs de points</th>\n",
" <th>...</th>\n",
" <th>1 - Modifications</th>\n",
" <th>Ex 5 Cross du collège</th>\n",
" <th>0 - Calculs de longueur</th>\n",
" <th>1 - Pythagore</th>\n",
" <th>2 - Longueur d'un tour</th>\n",
" <th>3 - Longueur pour les 3e</th>\n",
" <th>Ex 6 Voyage en famille</th>\n",
" <th>0 - Calcul temps et conversion demi heure</th>\n",
" <th>1 - Lectures graphiques</th>\n",
" <th>2 - Véracité de l'affirmation</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Competence</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>Cal</td>\n",
" <td>Cal</td>\n",
" <td>Cal</td>\n",
" <td>Rep</td>\n",
" <td>Rep</td>\n",
" <td>NaN</td>\n",
" <td>Cher</td>\n",
" <td>Mod</td>\n",
" <td>...</td>\n",
" <td>Rep</td>\n",
" <td>NaN</td>\n",
" <td>Rep</td>\n",
" <td>Mod</td>\n",
" <td>Mod</td>\n",
" <td>Cal</td>\n",
" <td>NaN</td>\n",
" <td>Cal</td>\n",
" <td>Rep</td>\n",
" <td>Rai</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Barème</th>\n",
" <td>10</td>\n",
" <td>17</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>19</td>\n",
" <td>6</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>20</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>14</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ousseni Fayadhui</th>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>BOINA Chadia</th>\n",
" <td>9</td>\n",
" <td>10</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>MAGNELE Chamsidine</th>\n",
" <td>9</td>\n",
" <td>13</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 30 columns</p>\n",
"</div>"
],
"text/plain": [
" Présentation Ex 1 Dalle de béton \\\n",
"Competence NaN NaN \n",
"Barème 10 17 \n",
"Ousseni Fayadhui 10 0 \n",
"BOINA Chadia 9 10 \n",
"MAGNELE Chamsidine 9 13 \n",
"\n",
" 0 - Multiplications total HT 1 - Division quantité \\\n",
"Competence Cal Cal \n",
"Barème 3 2 \n",
"Ousseni Fayadhui 0 0 \n",
"BOINA Chadia 2 2 \n",
"MAGNELE Chamsidine 3 2 \n",
"\n",
" 2 - Somme Total HT et TC 3 - Lecture de tableur \\\n",
"Competence Cal Rep \n",
"Barème 4 4 \n",
"Ousseni Fayadhui 0 0 \n",
"BOINA Chadia 0 4 \n",
"MAGNELE Chamsidine 4 4 \n",
"\n",
" 4 - Formule tableur Ex 2 Soirée Basket 0 - Lire un tableau \\\n",
"Competence Rep NaN Cher \n",
"Barème 4 19 6 \n",
"Ousseni Fayadhui 0 0 0 \n",
"BOINA Chadia 2 0 0 \n",
"MAGNELE Chamsidine 0 1 1 \n",
"\n",
" 1 - Calculs de points ... \\\n",
"Competence Mod ... \n",
"Barème 6 ... \n",
"Ousseni Fayadhui 0 ... \n",
"BOINA Chadia 0 ... \n",
"MAGNELE Chamsidine 0 ... \n",
"\n",
" 1 - Modifications Ex 5 Cross du collège \\\n",
"Competence Rep NaN \n",
"Barème 6 20 \n",
"Ousseni Fayadhui 0 0 \n",
"BOINA Chadia 0 0 \n",
"MAGNELE Chamsidine 0 0 \n",
"\n",
" 0 - Calculs de longueur 1 - Pythagore \\\n",
"Competence Rep Mod \n",
"Barème 6 5 \n",
"Ousseni Fayadhui 0 0 \n",
"BOINA Chadia 0 0 \n",
"MAGNELE Chamsidine 0 0 \n",
"\n",
" 2 - Longueur d'un tour 3 - Longueur pour les 3e \\\n",
"Competence Mod Cal \n",
"Barème 5 4 \n",
"Ousseni Fayadhui 0 0 \n",
"BOINA Chadia 0 0 \n",
"MAGNELE Chamsidine 0 0 \n",
"\n",
" Ex 6 Voyage en famille \\\n",
"Competence NaN \n",
"Barème 14 \n",
"Ousseni Fayadhui 0 \n",
"BOINA Chadia 0 \n",
"MAGNELE Chamsidine 0 \n",
"\n",
" 0 - Calcul temps et conversion demi heure \\\n",
"Competence Cal \n",
"Barème 4 \n",
"Ousseni Fayadhui 0 \n",
"BOINA Chadia 0 \n",
"MAGNELE Chamsidine 0 \n",
"\n",
" 1 - Lectures graphiques 2 - Véracité de l'affirmation \n",
"Competence Rep Rai \n",
"Barème 6 4 \n",
"Ousseni Fayadhui 0 0 \n",
"BOINA Chadia 0 0 \n",
"MAGNELE Chamsidine 0 0 \n",
"\n",
"[5 rows x 30 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"xls_df = xls_df.drop(\"DNB blanc1\", axis = 1)\n",
"xls_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Présentation</th>\n",
" <th>0 - Multiplications total HT</th>\n",
" <th>1 - Division quantité</th>\n",
" <th>2 - Somme Total HT et TC</th>\n",
" <th>3 - Lecture de tableur</th>\n",
" <th>4 - Formule tableur</th>\n",
" <th>0 - Lire un tableau</th>\n",
" <th>1 - Calculs de points</th>\n",
" <th>2 - Paniers à 2 points</th>\n",
" <th>3 - Champion de la soirée</th>\n",
" <th>...</th>\n",
" <th>4 - Fractions</th>\n",
" <th>0 - Dessin du lutin</th>\n",
" <th>1 - Modifications</th>\n",
" <th>0 - Calculs de longueur</th>\n",
" <th>1 - Pythagore</th>\n",
" <th>2 - Longueur d'un tour</th>\n",
" <th>3 - Longueur pour les 3e</th>\n",
" <th>0 - Calcul temps et conversion demi heure</th>\n",
" <th>1 - Lectures graphiques</th>\n",
" <th>2 - Véracité de l'affirmation</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Competence</th>\n",
" <td>NaN</td>\n",
" <td>Cal</td>\n",
" <td>Cal</td>\n",
" <td>Cal</td>\n",
" <td>Rep</td>\n",
" <td>Rep</td>\n",
" <td>Cher</td>\n",
" <td>Mod</td>\n",
" <td>Rai</td>\n",
" <td>Rai</td>\n",
" <td>...</td>\n",
" <td>Cal</td>\n",
" <td>Rep</td>\n",
" <td>Rep</td>\n",
" <td>Rep</td>\n",
" <td>Mod</td>\n",
" <td>Mod</td>\n",
" <td>Cal</td>\n",
" <td>Cal</td>\n",
" <td>Rep</td>\n",
" <td>Rai</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Barème</th>\n",
" <td>10</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>6</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ousseni Fayadhui</th>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>BOINA Chadia</th>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>MAGNELE Chamsidine</th>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 24 columns</p>\n",
"</div>"
],
"text/plain": [
" Présentation 0 - Multiplications total HT \\\n",
"Competence NaN Cal \n",
"Barème 10 3 \n",
"Ousseni Fayadhui 10 0 \n",
"BOINA Chadia 9 2 \n",
"MAGNELE Chamsidine 9 3 \n",
"\n",
" 1 - Division quantité 2 - Somme Total HT et TC \\\n",
"Competence Cal Cal \n",
"Barème 2 4 \n",
"Ousseni Fayadhui 0 0 \n",
"BOINA Chadia 2 0 \n",
"MAGNELE Chamsidine 2 4 \n",
"\n",
" 3 - Lecture de tableur 4 - Formule tableur \\\n",
"Competence Rep Rep \n",
"Barème 4 4 \n",
"Ousseni Fayadhui 0 0 \n",
"BOINA Chadia 4 2 \n",
"MAGNELE Chamsidine 4 0 \n",
"\n",
" 0 - Lire un tableau 1 - Calculs de points \\\n",
"Competence Cher Mod \n",
"Barème 6 6 \n",
"Ousseni Fayadhui 0 0 \n",
"BOINA Chadia 0 0 \n",
"MAGNELE Chamsidine 1 0 \n",
"\n",
" 2 - Paniers à 2 points 3 - Champion de la soirée \\\n",
"Competence Rai Rai \n",
"Barème 4 3 \n",
"Ousseni Fayadhui 0 0 \n",
"BOINA Chadia 0 0 \n",
"MAGNELE Chamsidine 0 0 \n",
"\n",
" ... 4 - Fractions \\\n",
"Competence ... Cal \n",
"Barème ... 2 \n",
"Ousseni Fayadhui ... 0 \n",
"BOINA Chadia ... 0 \n",
"MAGNELE Chamsidine ... 0 \n",
"\n",
" 0 - Dessin du lutin 1 - Modifications \\\n",
"Competence Rep Rep \n",
"Barème 3 6 \n",
"Ousseni Fayadhui 0 0 \n",
"BOINA Chadia 0 0 \n",
"MAGNELE Chamsidine 0 0 \n",
"\n",
" 0 - Calculs de longueur 1 - Pythagore \\\n",
"Competence Rep Mod \n",
"Barème 6 5 \n",
"Ousseni Fayadhui 0 0 \n",
"BOINA Chadia 0 0 \n",
"MAGNELE Chamsidine 0 0 \n",
"\n",
" 2 - Longueur d'un tour 3 - Longueur pour les 3e \\\n",
"Competence Mod Cal \n",
"Barème 5 4 \n",
"Ousseni Fayadhui 0 0 \n",
"BOINA Chadia 0 0 \n",
"MAGNELE Chamsidine 0 0 \n",
"\n",
" 0 - Calcul temps et conversion demi heure \\\n",
"Competence Cal \n",
"Barème 4 \n",
"Ousseni Fayadhui 0 \n",
"BOINA Chadia 0 \n",
"MAGNELE Chamsidine 0 \n",
"\n",
" 1 - Lectures graphiques 2 - Véracité de l'affirmation \n",
"Competence Rep Rai \n",
"Barème 6 4 \n",
"Ousseni Fayadhui 0 0 \n",
"BOINA Chadia 0 0 \n",
"MAGNELE Chamsidine 0 0 \n",
"\n",
"[5 rows x 24 columns]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ex_cols = [c for c in xls_df.columns if 'Ex' in c]\n",
"xls_df = xls_df.drop(ex_cols, axis=1)\n",
"xls_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"cols = {}\n",
"for c in xls_df.columns:\n",
" a = q_df[q_df['comment']==c.split(' - ')[-1]]\n",
" try:\n",
" cols[c] = a.id.values[0]\n",
" except IndexError:\n",
" # id de la question de présentation\n",
" cols[c] = 278\n",
"#cols"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>278</th>\n",
" <th>178</th>\n",
" <th>179</th>\n",
" <th>180</th>\n",
" <th>181</th>\n",
" <th>182</th>\n",
" <th>183</th>\n",
" <th>184</th>\n",
" <th>185</th>\n",
" <th>186</th>\n",
" <th>...</th>\n",
" <th>191</th>\n",
" <th>192</th>\n",
" <th>193</th>\n",
" <th>194</th>\n",
" <th>195</th>\n",
" <th>196</th>\n",
" <th>197</th>\n",
" <th>198</th>\n",
" <th>199</th>\n",
" <th>200</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Ousseni Fayadhui</th>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>BOINA Chadia</th>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>MAGNELE Chamsidine</th>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>MBAROUKOU Dania</th>\n",
" <td>10</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>TSIMPOU Zoubert</th>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 24 columns</p>\n",
"</div>"
],
"text/plain": [
" 278 178 179 180 181 182 183 184 185 186 ... 191 192 193 \\\n",
"Ousseni Fayadhui 10 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
"BOINA Chadia 9 2 2 0 4 2 0 0 0 0 ... 0 0 0 \n",
"MAGNELE Chamsidine 9 3 2 4 4 0 1 0 0 0 ... 0 0 0 \n",
"MBAROUKOU Dania 10 2 2 2 4 4 5 6 4 3 ... 0 0 0 \n",
"TSIMPOU Zoubert 10 0 0 0 0 0 0 0 0 0 ... 0 0 0 \n",
"\n",
" 194 195 196 197 198 199 200 \n",
"Ousseni Fayadhui 0 0 0 0 0 0 0 \n",
"BOINA Chadia 0 0 0 0 0 0 0 \n",
"MAGNELE Chamsidine 0 0 0 0 0 0 0 \n",
"MBAROUKOU Dania 6 0 0 1 0 0 0 \n",
"TSIMPOU Zoubert 0 0 0 0 0 0 0 \n",
"\n",
"[5 rows x 24 columns]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"xls_df = xls_df.rename(columns=cols).drop([\"Competence\", 'Barème'])\n",
"xls_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"studs = {}\n",
"for s in xls_df.index:\n",
" ss = s_df[s_df['surname'].str.contains(s.split(' ')[-1], case=False)]\n",
" ss = ss.id.values\n",
" studs[s] = ss[0]\n",
"#studs"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>278</th>\n",
" <th>178</th>\n",
" <th>179</th>\n",
" <th>180</th>\n",
" <th>181</th>\n",
" <th>182</th>\n",
" <th>183</th>\n",
" <th>184</th>\n",
" <th>185</th>\n",
" <th>186</th>\n",
" <th>...</th>\n",
" <th>191</th>\n",
" <th>192</th>\n",
" <th>193</th>\n",
" <th>194</th>\n",
" <th>195</th>\n",
" <th>196</th>\n",
" <th>197</th>\n",
" <th>198</th>\n",
" <th>199</th>\n",
" <th>200</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>10</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 24 columns</p>\n",
"</div>"
],
"text/plain": [
" 278 178 179 180 181 182 183 184 185 186 ... 191 192 193 194 195 196 197 \\\n",
"42 10 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 \n",
"34 9 2 2 0 4 2 0 0 0 0 ... 0 0 0 0 0 0 0 \n",
"38 9 3 2 4 4 0 1 0 0 0 ... 0 0 0 0 0 0 0 \n",
"39 10 2 2 2 4 4 5 6 4 3 ... 0 0 0 6 0 0 1 \n",
"46 10 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 \n",
"\n",
" 198 199 200 \n",
"42 0 0 0 \n",
"34 0 0 0 \n",
"38 0 0 0 \n",
"39 0 0 0 \n",
"46 0 0 0 \n",
"\n",
"[5 rows x 24 columns]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"xls_df = xls_df.rename(index=studs)\n",
"xls_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"42 278 10\n",
" 178 0\n",
" 179 0\n",
" 180 0\n",
" 181 0\n",
"dtype: object"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"xls_df = xls_df.stack()\n",
"xls_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>student_id</th>\n",
" <th>question_id</th>\n",
" <th>mark</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>42</td>\n",
" <td>278</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>42</td>\n",
" <td>178</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>42</td>\n",
" <td>179</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>42</td>\n",
" <td>180</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>42</td>\n",
" <td>181</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" student_id question_id mark\n",
"0 42 278 10\n",
"1 42 178 0\n",
"2 42 179 0\n",
"3 42 180 0\n",
"4 42 181 0"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sc_df = xls_df.reset_index().rename(columns={\"level_0\": \"student_id\", \"level_1\": \"question_id\", 0:'mark'})\n",
"sc_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>student_id</th>\n",
" <th>question_id</th>\n",
" <th>mark</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>42</td>\n",
" <td>278</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>42</td>\n",
" <td>178</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>42</td>\n",
" <td>179</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>42</td>\n",
" <td>180</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>42</td>\n",
" <td>181</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" student_id question_id mark\n",
"0 42 278 10\n",
"1 42 178 0\n",
"2 42 179 0\n",
"3 42 180 0\n",
"4 42 181 0"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sc_df[\"mark\"] = sc_df[\"mark\"].astype(int)\n",
"sc_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Maintenant il faut transformer tout ça en niveau de compétence"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from repytex.tools.sc_transforms import mark2level\n",
"def mark2level_row(x):\n",
" return mark2level(x[\"mark\"], x[\"score_rate\"])"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>student_id</th>\n",
" <th>question_id</th>\n",
" <th>mark</th>\n",
" <th>id</th>\n",
" <th>name</th>\n",
" <th>score_rate</th>\n",
" <th>is_leveled</th>\n",
" <th>exercise_id</th>\n",
" <th>competence</th>\n",
" <th>domain</th>\n",
" <th>comment</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>42</td>\n",
" <td>278</td>\n",
" <td>10</td>\n",
" <td>278</td>\n",
" <td></td>\n",
" <td>10</td>\n",
" <td>1</td>\n",
" <td>86</td>\n",
" <td>Com</td>\n",
" <td>Présentation</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>34</td>\n",
" <td>278</td>\n",
" <td>9</td>\n",
" <td>278</td>\n",
" <td></td>\n",
" <td>10</td>\n",
" <td>1</td>\n",
" <td>86</td>\n",
" <td>Com</td>\n",
" <td>Présentation</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>38</td>\n",
" <td>278</td>\n",
" <td>9</td>\n",
" <td>278</td>\n",
" <td></td>\n",
" <td>10</td>\n",
" <td>1</td>\n",
" <td>86</td>\n",
" <td>Com</td>\n",
" <td>Présentation</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>39</td>\n",
" <td>278</td>\n",
" <td>10</td>\n",
" <td>278</td>\n",
" <td></td>\n",
" <td>10</td>\n",
" <td>1</td>\n",
" <td>86</td>\n",
" <td>Com</td>\n",
" <td>Présentation</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>46</td>\n",
" <td>278</td>\n",
" <td>10</td>\n",
" <td>278</td>\n",
" <td></td>\n",
" <td>10</td>\n",
" <td>1</td>\n",
" <td>86</td>\n",
" <td>Com</td>\n",
" <td>Présentation</td>\n",
" <td></td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" student_id question_id mark id name score_rate is_leveled \\\n",
"0 42 278 10 278 10 1 \n",
"1 34 278 9 278 10 1 \n",
"2 38 278 9 278 10 1 \n",
"3 39 278 10 278 10 1 \n",
"4 46 278 10 278 10 1 \n",
"\n",
" exercise_id competence domain comment \n",
"0 86 Com Présentation \n",
"1 86 Com Présentation \n",
"2 86 Com Présentation \n",
"3 86 Com Présentation \n",
"4 86 Com Présentation "
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sc_q_df = pd.merge(sc_df, q_df, left_on=\"question_id\", right_on=\"id\")\n",
"sc_q_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"sc_q_df[\"value\"] = sc_q_df.apply(mark2level_row, axis=1)\n",
"sc_q_df = sc_q_df[['student_id', 'question_id', 'value']]"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"sc_df = pd.merge(sc_df, sc_q_df, on=[\"student_id\", 'question_id'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On met tout ensemble dans l'évaluation"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"dnbBlanc = Evaluation(ev_df, t_df, s_df, ex_df)\n",
"dnbBlanc.set_scores(sc_df)\n",
"dnbBlanc.set_ex_qu_structure(ex_df, q_df)\n",
"dnbBlanc.set_competence_assessment(sc_df, q_df)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exploration"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>student_id</th>\n",
" <th>question_id</th>\n",
" <th>mark</th>\n",
" <th>value</th>\n",
" <th>id</th>\n",
" <th>name</th>\n",
" <th>surname</th>\n",
" <th>mail</th>\n",
" <th>commment</th>\n",
" <th>tribe_id</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>42</td>\n",
" <td>278</td>\n",
" <td>10</td>\n",
" <td>3</td>\n",
" <td>42</td>\n",
" <td>OUSSENI</td>\n",
" <td>Fayadhui</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>42</td>\n",
" <td>178</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>42</td>\n",
" <td>OUSSENI</td>\n",
" <td>Fayadhui</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>42</td>\n",
" <td>179</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>42</td>\n",
" <td>OUSSENI</td>\n",
" <td>Fayadhui</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>42</td>\n",
" <td>180</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>42</td>\n",
" <td>OUSSENI</td>\n",
" <td>Fayadhui</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>42</td>\n",
" <td>181</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>42</td>\n",
" <td>OUSSENI</td>\n",
" <td>Fayadhui</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" student_id question_id mark value id name surname mail commment \\\n",
"0 42 278 10 3 42 OUSSENI Fayadhui None \n",
"1 42 178 0 0 42 OUSSENI Fayadhui None \n",
"2 42 179 0 0 42 OUSSENI Fayadhui None \n",
"3 42 180 0 0 42 OUSSENI Fayadhui None \n",
"4 42 181 0 0 42 OUSSENI Fayadhui None \n",
"\n",
" tribe_id \n",
"0 2 \n",
"1 2 \n",
"2 2 \n",
"3 2 \n",
"4 2 "
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sc_s_df = pd.merge(dnbBlanc.sc_df, dnbBlanc.s_df, left_on='student_id', right_on='id')\n",
"sc_s_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A priori pas de soucis avec les sommes de points"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"name surname \n",
"ABDALLAH Rachma 22\n",
"ABDOU Kassim 6\n",
"AHAMADI Irchadi 42\n",
"AHAMED Mikidadi 25\n",
"ANSSURDINE Zaidou 10\n",
"BACAR MOUSTADRANE Rakchat 13\n",
"BOINA Chadia 19\n",
"CHANFI Fayçoil 17\n",
"CHARIF Djaël 71\n",
"COMBO Doulka-Rynaini 25\n",
"IBRAHIM, Izaki 10\n",
"MAGNELE Chamsidine 24\n",
"MBAROUKOU Dania 56\n",
"MIRADJI Issoufi 68\n",
"NIDHOIMI El-Fahar 51\n",
"OUSSENI Fayadhui 10\n",
"SAID OMAR Nadjoi 43\n",
"SALIM Haïridine 10\n",
"SAÏD Dalila 50\n",
"Said Rachida 16\n",
"TSIMPOU Zoubert 10\n",
"Name: mark, dtype: int64"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sc_s_df.groupby([\"name\", \"surname\"]).sum()['mark']"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>student_id</th>\n",
" <th>question_id</th>\n",
" <th>mark</th>\n",
" <th>value</th>\n",
" <th>id_x</th>\n",
" <th>name_x</th>\n",
" <th>surname</th>\n",
" <th>mail</th>\n",
" <th>commment</th>\n",
" <th>tribe_id</th>\n",
" <th>id_y</th>\n",
" <th>name_y</th>\n",
" <th>score_rate</th>\n",
" <th>is_leveled</th>\n",
" <th>exercise_id</th>\n",
" <th>competence</th>\n",
" <th>domain</th>\n",
" <th>comment</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>42</td>\n",
" <td>278</td>\n",
" <td>10</td>\n",
" <td>3</td>\n",
" <td>42</td>\n",
" <td>OUSSENI</td>\n",
" <td>Fayadhui</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" <td>278</td>\n",
" <td></td>\n",
" <td>10</td>\n",
" <td>1</td>\n",
" <td>86</td>\n",
" <td>Com</td>\n",
" <td>Présentation</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>34</td>\n",
" <td>278</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>34</td>\n",
" <td>BOINA</td>\n",
" <td>Chadia</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" <td>278</td>\n",
" <td></td>\n",
" <td>10</td>\n",
" <td>1</td>\n",
" <td>86</td>\n",
" <td>Com</td>\n",
" <td>Présentation</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>38</td>\n",
" <td>278</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>38</td>\n",
" <td>MAGNELE</td>\n",
" <td>Chamsidine</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" <td>278</td>\n",
" <td></td>\n",
" <td>10</td>\n",
" <td>1</td>\n",
" <td>86</td>\n",
" <td>Com</td>\n",
" <td>Présentation</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>39</td>\n",
" <td>278</td>\n",
" <td>10</td>\n",
" <td>3</td>\n",
" <td>39</td>\n",
" <td>MBAROUKOU</td>\n",
" <td>Dania</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" <td>278</td>\n",
" <td></td>\n",
" <td>10</td>\n",
" <td>1</td>\n",
" <td>86</td>\n",
" <td>Com</td>\n",
" <td>Présentation</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>46</td>\n",
" <td>278</td>\n",
" <td>10</td>\n",
" <td>3</td>\n",
" <td>46</td>\n",
" <td>TSIMPOU</td>\n",
" <td>Zoubert</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>2</td>\n",
" <td>278</td>\n",
" <td></td>\n",
" <td>10</td>\n",
" <td>1</td>\n",
" <td>86</td>\n",
" <td>Com</td>\n",
" <td>Présentation</td>\n",
" <td></td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" student_id question_id mark value id_x name_x surname mail \\\n",
"0 42 278 10 3 42 OUSSENI Fayadhui \n",
"1 34 278 9 3 34 BOINA Chadia \n",
"2 38 278 9 3 38 MAGNELE Chamsidine \n",
"3 39 278 10 3 39 MBAROUKOU Dania \n",
"4 46 278 10 3 46 TSIMPOU Zoubert \n",
"\n",
" commment tribe_id id_y name_y score_rate is_leveled exercise_id \\\n",
"0 None 2 278 10 1 86 \n",
"1 None 2 278 10 1 86 \n",
"2 None 2 278 10 1 86 \n",
"3 None 2 278 10 1 86 \n",
"4 None 2 278 10 1 86 \n",
"\n",
" competence domain comment \n",
"0 Com Présentation \n",
"1 Com Présentation \n",
"2 Com Présentation \n",
"3 Com Présentation \n",
"4 Com Présentation "
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"full_df = pd.merge(dnbBlanc.sc_df, dnbBlanc.s_df, left_on=\"student_id\", right_on=\"id\")\n",
"full_df = pd.merge(full_df, dnbBlanc.q_df, left_on=\"question_id\", right_on=\"id\")\n",
"full_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## On compile?"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from repytex.reports.eval_reports import build_target_name\n",
"from repytex.reports.produce_compile import produce_compile"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Path('.//306/report_DNB blanc 1.tex')"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datas = {\"evaluation\": dnbBlanc}\n",
"target = build_target_name('306', 'DNB blanc 1')\n",
"target"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"template=\"tpl_reports_eval.tex\""
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"produce_compile(template, datas, target, force=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.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}