diff --git a/Notes/DB vers xlsx.ipynb b/Notes/DB vers xlsx.ipynb
index e2376f0..eaefe56 100644
--- a/Notes/DB vers xlsx.ipynb
+++ b/Notes/DB vers xlsx.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 2,
"metadata": {
"collapsed": true
},
@@ -13,20 +13,19 @@
},
{
"cell_type": "code",
- "execution_count": 7,
- "metadata": {
- "collapsed": true
- },
+ "execution_count": 39,
+ "metadata": {},
"outputs": [],
"source": [
- "from repytex.tools.evaluation import Evaluation\n",
- "from repytex.tools.sqlite_getters import all_ev_description\n",
+ "from repytex.worksheets.worksheet import pull_datas\n",
+ "import pandas as pd\n",
+ "import numpy as np\n",
"import sqlite3"
]
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 4,
"metadata": {
"collapsed": true
},
@@ -37,7 +36,177 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'evaluation': id name term t_id\n",
+ " 0 1 DS1 mise en jambe 1 1,\n",
+ " 'exercises': id name eval_id date comment\n",
+ " 0 1 1 - Prendre la température 1 2017-09-05 00:00:00.000000 \n",
+ " 1 2 2 - Maladroite! 1 2017-09-05 00:00:00.000000 ,\n",
+ " 'question_scores': id question_id student_id value\n",
+ " 0 1 1 1 1\n",
+ " 1 2 2 1 2\n",
+ " 2 3 3 1 .\n",
+ " 3 4 1 2 2\n",
+ " 4 5 2 2 2\n",
+ " 5 6 3 2 1\n",
+ " 6 7 1 3 3\n",
+ " 7 8 2 3 0\n",
+ " 8 9 3 3 0\n",
+ " 9 10 1 4 3\n",
+ " 10 11 2 4 3\n",
+ " 11 12 3 4 0\n",
+ " 12 13 1 5 1\n",
+ " 13 14 2 5 2\n",
+ " 14 15 3 5 .\n",
+ " 15 16 1 6 3\n",
+ " 16 17 2 6 2\n",
+ " 17 18 3 6 0\n",
+ " 18 19 1 7 2\n",
+ " 19 20 2 7 2\n",
+ " 20 21 3 7 2\n",
+ " 21 22 1 9 2\n",
+ " 22 23 2 9 1\n",
+ " 23 24 3 9 2\n",
+ " 24 25 1 8 3\n",
+ " 25 26 2 8 1\n",
+ " 26 27 3 8 .\n",
+ " 27 28 1 10 1\n",
+ " 28 29 2 10 2\n",
+ " 29 30 3 10 0\n",
+ " .. ... ... ... ...\n",
+ " 178 803 4 21 .\n",
+ " 179 804 5 21 .\n",
+ " 180 805 6 21 .\n",
+ " 181 806 7 21 .\n",
+ " 182 807 8 21 .\n",
+ " 183 808 4 22 0\n",
+ " 184 809 5 22 .\n",
+ " 185 810 6 22 .\n",
+ " 186 811 7 22 .\n",
+ " 187 812 8 22 .\n",
+ " 188 813 4 23 3\n",
+ " 189 814 5 23 1\n",
+ " 190 815 6 23 1\n",
+ " 191 816 7 23 1\n",
+ " 192 817 8 23 1\n",
+ " 193 818 4 25 .\n",
+ " 194 819 5 25 .\n",
+ " 195 820 6 25 .\n",
+ " 196 821 7 25 .\n",
+ " 197 822 8 25 1\n",
+ " 198 823 4 24 3\n",
+ " 199 824 5 24 3\n",
+ " 200 825 6 24 3\n",
+ " 201 826 7 24 2\n",
+ " 202 827 8 24 2\n",
+ " 203 828 4 26 3\n",
+ " 204 829 5 26 3\n",
+ " 205 830 6 26 3\n",
+ " 206 831 7 26 3\n",
+ " 207 832 8 26 3\n",
+ " \n",
+ " [200 rows x 4 columns],\n",
+ " 'questions': id name score_rate is_leveled exercise_id competence domain \\\n",
+ " 0 1 1 0 1 1 Cher Grandeurs \n",
+ " 1 2 2 0 1 1 Cal Grandeurs \n",
+ " 2 3 2.c 0 1 1 Cal Grandeurs \n",
+ " 0 4 0 1 2 Cher 4opérations \n",
+ " 1 5 0 1 2 Cher 4opérations \n",
+ " 2 6 0 1 2 Rai 4opérations \n",
+ " 3 7 0 1 2 Cal 4opérations \n",
+ " 4 8 0 1 2 Com 4opérations \n",
+ " \n",
+ " comment \n",
+ " 0 Lecture du thermomètre \n",
+ " 1 Suivre programme de calculs \n",
+ " 2 Renverser un programme de calculs \n",
+ " 0 Lire le tableau et le graphique \n",
+ " 1 Décomposer le problème \n",
+ " 2 Manipuler les grandeurs \n",
+ " 3 Mener à bien les calculs \n",
+ " 4 Rédaction ,\n",
+ " 'students': id name surname mail commment tribe_id\n",
+ " 0 1 ABDALLAH ALLAOUI Taiassima None 1\n",
+ " 1 2 ADANI Ismou None 1\n",
+ " 2 3 AHAMADA Dhoulkamal None 1\n",
+ " 3 4 AHAMADI Asbahati None 1\n",
+ " 4 5 AHAMADI OUSSENI Ansufiddine None 1\n",
+ " 5 6 AHAMED Fayadhi None 1\n",
+ " 6 7 AHMED SAID Hadaïta None 1\n",
+ " 7 8 ALI MADI Anissa None 1\n",
+ " 8 9 ALI Raydel None 1\n",
+ " 9 10 ATTOUMANE ALI Fatima None 1\n",
+ " 10 11 BACHIROU Elzame None 1\n",
+ " 11 12 BINALI Zalida None 1\n",
+ " 12 13 BOINA Abdillah Mze Limassi None 1\n",
+ " 13 14 BOUDRA Zaankidine None 1\n",
+ " 14 15 BOURA Kayssoiria None 1\n",
+ " 15 16 HALADI Asna None 1\n",
+ " 16 17 HALIDI Soibrata None 1\n",
+ " 17 18 HAMEDALY Doulkifly None 1\n",
+ " 18 19 IBRAHIM Nassur None 1\n",
+ " 19 20 INOUSSA Anchoura None 1\n",
+ " 20 21 MOHAMED Nadia None 1\n",
+ " 21 22 MOUHOUDHOIRE Izak None 1\n",
+ " 22 23 MOUSSRI Bakari None 1\n",
+ " 23 24 SAÏD Fatoumia None 1\n",
+ " 24 25 SAKOTRA Claudiana None 1\n",
+ " 25 26 TOUFAIL Salahou None 1\n",
+ " 26 76 Ibrahim Chaharzade None 1,\n",
+ " 'tribe': id name grade\n",
+ " 0 1 302 3e}"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "datas = pull_datas(1, conn)\n",
+ "datas"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'DS1 mise en jambe'"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "datas['evaluation'][\"name\"][0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 64,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "q_df = datas[\"questions\"]\n",
+ "q_df = q_df.assign(\n",
+ " Nom = q_df[[\"name\", \"comment\"]].apply(lambda x: \" \".join(x), 1)\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 65,
"metadata": {},
"outputs": [
{
@@ -63,220 +232,108 @@
"
| \n",
" id | \n",
" name | \n",
- " term | \n",
- " t_id | \n",
+ " score_rate | \n",
+ " is_leveled | \n",
+ " exercise_id | \n",
+ " competence | \n",
+ " domain | \n",
+ " comment | \n",
+ " Nom | \n",
" \n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
- " DS1 mise en jambe | \n",
+ " 1 | \n",
+ " 0 | \n",
" 1 | \n",
" 1 | \n",
+ " Cher | \n",
+ " Grandeurs | \n",
+ " Lecture du thermomètre | \n",
+ " 1 Lecture du thermomètre | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
- " DS1 | \n",
- " 1 | \n",
" 2 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Cal | \n",
+ " Grandeurs | \n",
+ " Suivre programme de calculs | \n",
+ " 2 Suivre programme de calculs | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
- " DS1 | \n",
+ " 2.c | \n",
+ " 0 | \n",
" 1 | \n",
- " 3 | \n",
+ " 1 | \n",
+ " Cal | \n",
+ " Grandeurs | \n",
+ " Renverser un programme de calculs | \n",
+ " 2.c Renverser un programme de calculs | \n",
"
\n",
" \n",
- " 3 | \n",
+ " 0 | \n",
" 4 | \n",
- " DS2 | \n",
+ " | \n",
+ " 0 | \n",
" 1 | \n",
" 2 | \n",
+ " Cher | \n",
+ " 4opérations | \n",
+ " Lire le tableau et le graphique | \n",
+ " Lire le tableau et le graphique | \n",
"
\n",
" \n",
- " 4 | \n",
+ " 1 | \n",
" 5 | \n",
- " DS2 | \n",
- " 1 | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 5 | \n",
- " 6 | \n",
- " DS2 | \n",
- " 1 | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 6 | \n",
- " 7 | \n",
- " DS3 | \n",
- " 1 | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 7 | \n",
- " 8 | \n",
- " Pyramide de pièces | \n",
- " 1 | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 8 | \n",
- " 9 | \n",
- " DS3 | \n",
+ " | \n",
+ " 0 | \n",
" 1 | \n",
" 2 | \n",
- "
\n",
- " \n",
- " 9 | \n",
- " 10 | \n",
- " DS3 | \n",
- " 1 | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 10 | \n",
- " 11 | \n",
- " DS4 | \n",
- " 2 | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 11 | \n",
- " 13 | \n",
- " DS5 | \n",
- " 2 | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 12 | \n",
- " 14 | \n",
- " DM noel | \n",
- " 2 | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 13 | \n",
- " 15 | \n",
- " DM noel | \n",
- " 2 | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 14 | \n",
- " 16 | \n",
- " DS4 | \n",
- " 2 | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 15 | \n",
- " 17 | \n",
- " DS4 | \n",
- " 2 | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 16 | \n",
- " 18 | \n",
- " DS6 | \n",
- " 2 | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 17 | \n",
- " 19 | \n",
- " CM1 | \n",
- " 2 | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 18 | \n",
- " 20 | \n",
- " DNB blanc1 | \n",
- " 2 | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 19 | \n",
- " 21 | \n",
- " DNB blanc1 | \n",
- " 2 | \n",
- " 1 | \n",
+ " Cher | \n",
+ " 4opérations | \n",
+ " Décomposer le problème | \n",
+ " Décomposer le problème | \n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " id name term t_id\n",
- "0 1 DS1 mise en jambe 1 1\n",
- "1 2 DS1 1 2\n",
- "2 3 DS1 1 3\n",
- "3 4 DS2 1 2\n",
- "4 5 DS2 1 1\n",
- "5 6 DS2 1 3\n",
- "6 7 DS3 1 3\n",
- "7 8 Pyramide de pièces 1 1\n",
- "8 9 DS3 1 2\n",
- "9 10 DS3 1 1\n",
- "10 11 DS4 2 3\n",
- "11 13 DS5 2 3\n",
- "12 14 DM noel 2 1\n",
- "13 15 DM noel 2 2\n",
- "14 16 DS4 2 1\n",
- "15 17 DS4 2 2\n",
- "16 18 DS6 2 3\n",
- "17 19 CM1 2 2\n",
- "18 20 DNB blanc1 2 2\n",
- "19 21 DNB blanc1 2 1"
+ " id name score_rate is_leveled exercise_id competence domain \\\n",
+ "0 1 1 0 1 1 Cher Grandeurs \n",
+ "1 2 2 0 1 1 Cal Grandeurs \n",
+ "2 3 2.c 0 1 1 Cal Grandeurs \n",
+ "0 4 0 1 2 Cher 4opérations \n",
+ "1 5 0 1 2 Cher 4opérations \n",
+ "\n",
+ " comment Nom \n",
+ "0 Lecture du thermomètre 1 Lecture du thermomètre \n",
+ "1 Suivre programme de calculs 2 Suivre programme de calculs \n",
+ "2 Renverser un programme de calculs 2.c Renverser un programme de calculs \n",
+ "0 Lire le tableau et le graphique Lire le tableau et le graphique \n",
+ "1 Décomposer le problème Décomposer le problème "
]
},
- "execution_count": 9,
+ "execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "all_ev_description(conn)"
+ "q_df.head()"
]
},
{
"cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [],
- "source": [
- "ev = Evaluation.from_sqlite(21, conn)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "'DNB blanc1'"
- ]
- },
- "execution_count": 11,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "ev.name"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
+ "execution_count": 66,
"metadata": {},
"outputs": [
{
@@ -310,58 +367,18 @@
" \n",
" \n",
" 0 | \n",
- " 64 | \n",
- " 1 - QCM | \n",
- " 21 | \n",
- " 2018-02-07 00:00:00.000000 | \n",
+ " 1 | \n",
+ " 1 - Prendre la température | \n",
+ " 1 | \n",
+ " 2017-09-05 00:00:00.000000 | \n",
" | \n",
"
\n",
" \n",
" 1 | \n",
- " 65 | \n",
- " 2 - Boite de chocolat | \n",
- " 21 | \n",
- " 2018-02-07 00:00:00.000000 | \n",
- " | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 66 | \n",
- " 3 - Scratch | \n",
- " 21 | \n",
- " 2018-02-07 00:00:00.000000 | \n",
- " | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 67 | \n",
- " 4 - Programme de calcul | \n",
- " 21 | \n",
- " 2018-02-07 00:00:00.000000 | \n",
- " | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 68 | \n",
- " 5 - Macaron | \n",
- " 21 | \n",
- " 2018-02-07 00:00:00.000000 | \n",
- " | \n",
- "
\n",
- " \n",
- " 5 | \n",
- " 69 | \n",
- " 6 - Inspecteur | \n",
- " 21 | \n",
- " 2018-02-07 00:00:00.000000 | \n",
- " | \n",
- "
\n",
- " \n",
- " 6 | \n",
- " 70 | \n",
- " 7 - La tache | \n",
- " 21 | \n",
- " 2018-02-07 00:00:00.000000 | \n",
+ " 2 | \n",
+ " 2 - Maladroite! | \n",
+ " 1 | \n",
+ " 2017-09-05 00:00:00.000000 | \n",
" | \n",
"
\n",
" \n",
@@ -369,23 +386,347 @@
""
],
"text/plain": [
- " id name eval_id date comment\n",
- "0 64 1 - QCM 21 2018-02-07 00:00:00.000000 \n",
- "1 65 2 - Boite de chocolat 21 2018-02-07 00:00:00.000000 \n",
- "2 66 3 - Scratch 21 2018-02-07 00:00:00.000000 \n",
- "3 67 4 - Programme de calcul 21 2018-02-07 00:00:00.000000 \n",
- "4 68 5 - Macaron 21 2018-02-07 00:00:00.000000 \n",
- "5 69 6 - Inspecteur 21 2018-02-07 00:00:00.000000 \n",
- "6 70 7 - La tache 21 2018-02-07 00:00:00.000000 "
+ " id name eval_id date comment\n",
+ "0 1 1 - Prendre la température 1 2017-09-05 00:00:00.000000 \n",
+ "1 2 2 - Maladroite! 1 2017-09-05 00:00:00.000000 "
]
},
- "execution_count": 12,
+ "execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "ev.ex_df"
+ "datas[\"exercises\"]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 70,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " score_rate | \n",
+ " competence | \n",
+ " id | \n",
+ " name | \n",
+ " eval_id | \n",
+ " date | \n",
+ " comment | \n",
+ " Nom | \n",
+ " exercise_id | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 0 | \n",
+ " Cher-Cal-Cal | \n",
+ " 1 | \n",
+ " 1 - Prendre la température | \n",
+ " 1 | \n",
+ " 2017-09-05 00:00:00.000000 | \n",
+ " | \n",
+ " Ex 1 - Prendre la température | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 0 | \n",
+ " Cher-Cher-Rai-Cal-Com | \n",
+ " 2 | \n",
+ " 2 - Maladroite! | \n",
+ " 1 | \n",
+ " 2017-09-05 00:00:00.000000 | \n",
+ " | \n",
+ " Ex 2 - Maladroite! | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " score_rate competence id name eval_id \\\n",
+ "0 0 Cher-Cal-Cal 1 1 - Prendre la température 1 \n",
+ "1 0 Cher-Cher-Rai-Cal-Com 2 2 - Maladroite! 1 \n",
+ "\n",
+ " date comment Nom \\\n",
+ "0 2017-09-05 00:00:00.000000 Ex 1 - Prendre la température \n",
+ "1 2017-09-05 00:00:00.000000 Ex 2 - Maladroite! \n",
+ "\n",
+ " exercise_id \n",
+ "0 1 \n",
+ "1 2 "
+ ]
+ },
+ "execution_count": 70,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ex_q = q_df.groupby(\"exercise_id\")\\\n",
+ " .agg({\"score_rate\": np.sum, \"competence\": lambda x: '-'.join(list(x))}) \\\n",
+ " .merge(datas[\"exercises\"], left_index=True, right_on='id')\n",
+ "ex_q = ex_q.assign(\n",
+ " Nom = ex_q[\"name\"].apply(lambda x: f\"Ex {x}\"),\n",
+ " exercise_id = ex_q[\"id\"]\n",
+ ")\n",
+ "ex_q"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 85,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Nom | \n",
+ " competence | \n",
+ " score_rate | \n",
+ " exercise_id | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " Ex 1 - Prendre la température | \n",
+ " Cher-Cal-Cal | \n",
+ " 0 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 0 | \n",
+ " 1 Lecture du thermomètre | \n",
+ " Cher | \n",
+ " 0 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 2 Suivre programme de calculs | \n",
+ " Cal | \n",
+ " 0 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 2.c Renverser un programme de calculs | \n",
+ " Cal | \n",
+ " 0 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " Ex 2 - Maladroite! | \n",
+ " Cher-Cher-Rai-Cal-Com | \n",
+ " 0 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 0 | \n",
+ " Lire le tableau et le graphique | \n",
+ " Cher | \n",
+ " 0 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " Décomposer le problème | \n",
+ " Cher | \n",
+ " 0 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " Manipuler les grandeurs | \n",
+ " Rai | \n",
+ " 0 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " Mener à bien les calculs | \n",
+ " Cal | \n",
+ " 0 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " Rédaction | \n",
+ " Com | \n",
+ " 0 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Nom competence score_rate \\\n",
+ "0 Ex 1 - Prendre la température Cher-Cal-Cal 0 \n",
+ "0 1 Lecture du thermomètre Cher 0 \n",
+ "1 2 Suivre programme de calculs Cal 0 \n",
+ "2 2.c Renverser un programme de calculs Cal 0 \n",
+ "1 Ex 2 - Maladroite! Cher-Cher-Rai-Cal-Com 0 \n",
+ "0 Lire le tableau et le graphique Cher 0 \n",
+ "1 Décomposer le problème Cher 0 \n",
+ "2 Manipuler les grandeurs Rai 0 \n",
+ "3 Mener à bien les calculs Cal 0 \n",
+ "4 Rédaction Com 0 \n",
+ "\n",
+ " exercise_id \n",
+ "0 1 \n",
+ "0 1 \n",
+ "1 1 \n",
+ "2 1 \n",
+ "1 2 \n",
+ "0 2 \n",
+ "1 2 \n",
+ "2 2 \n",
+ "3 2 \n",
+ "4 2 "
+ ]
+ },
+ "execution_count": 85,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "sel_fields = ['Nom', 'competence', 'score_rate', 'exercise_id']\n",
+ "xls_df = pd.concat([ex_q[sel_fields], q_df[sel_fields]]).sort_values(\"exercise_id\")\n",
+ "xls_df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 86,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "writer = pd.ExcelWriter(\"./test.xlsx\", engine=\"xlsxwriter\")\n",
+ "xls_df.to_excel(writer, index=False, sheet_name='DNB blanc 2')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 87,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "workbook = writer.book\n",
+ "worksheet = writer.sheets['DNB blanc 2']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 91,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0"
+ ]
+ },
+ "execution_count": 91,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "first_line_format = workbook.add_format({\"align\": 'center', \"rotation\":90})\n",
+ "\n",
+ "worksheet.set_column('A:D', 20)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 89,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "writer.save()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Fait au DNB blanc 1"
]
},
{