2017-2018/Notes/DB vers xlsx.ipynb

4267 lines
164 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": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import xlsxwriter"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from repytex.worksheets.worksheet import pull_datas\n",
"from repytex.reports.eval import pull_datas as pull_sqlite\n",
"import pandas as pd\n",
"import numpy as np\n",
"import sqlite3"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"conn = sqlite3.connect('./recopytex.db')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# to xlxs"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datas = pull_datas(1, conn)\n",
"datas"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'DS1 mise en jambe'"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datas['evaluation'][\"name\"][0]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"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": 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>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",
" <th>Nom</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Cher</td>\n",
" <td>Grandeurs</td>\n",
" <td>Lecture du thermomètre</td>\n",
" <td>1 Lecture du thermomètre</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Cal</td>\n",
" <td>Grandeurs</td>\n",
" <td>Suivre programme de calculs</td>\n",
" <td>2 Suivre programme de calculs</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>2.c</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>Cal</td>\n",
" <td>Grandeurs</td>\n",
" <td>Renverser un programme de calculs</td>\n",
" <td>2.c Renverser un programme de calculs</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4</td>\n",
" <td></td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>Cher</td>\n",
" <td>4opérations</td>\n",
" <td>Lire le tableau et le graphique</td>\n",
" <td>Lire le tableau et le graphique</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>5</td>\n",
" <td></td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>Cher</td>\n",
" <td>4opérations</td>\n",
" <td>Décomposer le problème</td>\n",
" <td>Décomposer le problème</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 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": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"q_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>1</td>\n",
" <td>1 - Prendre la température</td>\n",
" <td>1</td>\n",
" <td>2017-09-05 00:00:00.000000</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>2 - Maladroite!</td>\n",
" <td>1</td>\n",
" <td>2017-09-05 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 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": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datas[\"exercises\"]"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"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": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"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": 11,
"metadata": {
"collapsed": true
},
"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": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#workbook = writer.book\n",
"#worksheet = writer.sheets['DNB blanc 2']"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"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": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#writer.save()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## From xlsx"
]
},
{
"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>competence</th>\n",
" <th>Barème</th>\n",
" <th>ABDALLAH ALAOUI Taiassima</th>\n",
" <th>ADANI Ismou</th>\n",
" <th>AHAMADA Dhoulkamal</th>\n",
" <th>AHAMADI Asbahati</th>\n",
" <th>AHAMADI OUSSENI Ansufidine</th>\n",
" <th>AHAMED Fayadhi</th>\n",
" <th>AHMED SAID Hadaita</th>\n",
" <th>ALI MADI Anissa</th>\n",
" <th>...</th>\n",
" <th>MOUSSRI Bakari</th>\n",
" <th>SAID Ftoumia</th>\n",
" <th>ZAKOTRA Claudian</th>\n",
" <th>TOUFAIL Salahou</th>\n",
" <th>moyenne</th>\n",
" <th>Min</th>\n",
" <th>Q1</th>\n",
" <th>ME</th>\n",
" <th>Q3</th>\n",
" <th>Max</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>DNB blanc 2 général</th>\n",
" <td>NaN</td>\n",
" <td>112</td>\n",
" <td>24</td>\n",
" <td>52.0</td>\n",
" <td>46.5</td>\n",
" <td>65</td>\n",
" <td>27.0</td>\n",
" <td>25.5</td>\n",
" <td>75</td>\n",
" <td>72</td>\n",
" <td>...</td>\n",
" <td>40</td>\n",
" <td>50</td>\n",
" <td>60</td>\n",
" <td>58.5</td>\n",
" <td>43.403846</td>\n",
" <td>21</td>\n",
" <td>27.125</td>\n",
" <td>41.25</td>\n",
" <td>56.875</td>\n",
" <td>75.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ex 1 - Programme de calculs</th>\n",
" <td>NaN</td>\n",
" <td>15</td>\n",
" <td>3</td>\n",
" <td>11.0</td>\n",
" <td>3.0</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>10</td>\n",
" <td>...</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>7</td>\n",
" <td>2.0</td>\n",
" <td>4.019231</td>\n",
" <td>0</td>\n",
" <td>1.250</td>\n",
" <td>3.00</td>\n",
" <td>6.875</td>\n",
" <td>11.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 et 2 Suivre le programme</th>\n",
" <td>Cal</td>\n",
" <td>6</td>\n",
" <td>3</td>\n",
" <td>6.0</td>\n",
" <td>2.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>2.692308</td>\n",
" <td>0</td>\n",
" <td>0.250</td>\n",
" <td>2.00</td>\n",
" <td>5.750</td>\n",
" <td>6.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 Renverser le programme</th>\n",
" <td>Rai</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" <td>0.596154</td>\n",
" <td>0</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>1.125</td>\n",
" <td>3.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 Toujours la même chose</th>\n",
" <td>Rai</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.192308</td>\n",
" <td>0</td>\n",
" <td>0.000</td>\n",
" <td>0.00</td>\n",
" <td>0.000</td>\n",
" <td>3.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 35 columns</p>\n",
"</div>"
],
"text/plain": [
" competence Barème ABDALLAH ALAOUI Taiassima \\\n",
"DNB blanc 2 général NaN 112 24 \n",
"Ex 1 - Programme de calculs NaN 15 3 \n",
"1 et 2 Suivre le programme Cal 6 3 \n",
"3 Renverser le programme Rai 3 0 \n",
"4 Toujours la même chose Rai 3 0 \n",
"\n",
" ADANI Ismou AHAMADA Dhoulkamal \\\n",
"DNB blanc 2 général 52.0 46.5 \n",
"Ex 1 - Programme de calculs 11.0 3.0 \n",
"1 et 2 Suivre le programme 6.0 2.0 \n",
"3 Renverser le programme 3.0 0.0 \n",
"4 Toujours la même chose 2.0 0.0 \n",
"\n",
" AHAMADI Asbahati AHAMADI OUSSENI Ansufidine \\\n",
"DNB blanc 2 général 65 27.0 \n",
"Ex 1 - Programme de calculs 0 1.0 \n",
"1 et 2 Suivre le programme 0 0.0 \n",
"3 Renverser le programme 0 0.0 \n",
"4 Toujours la même chose 0 0.0 \n",
"\n",
" AHAMED Fayadhi AHMED SAID Hadaita \\\n",
"DNB blanc 2 général 25.5 75 \n",
"Ex 1 - Programme de calculs 0.0 3 \n",
"1 et 2 Suivre le programme 0.0 2 \n",
"3 Renverser le programme 0.0 0 \n",
"4 Toujours la même chose 0.0 0 \n",
"\n",
" ALI MADI Anissa ... MOUSSRI Bakari \\\n",
"DNB blanc 2 général 72 ... 40 \n",
"Ex 1 - Programme de calculs 10 ... 2 \n",
"1 et 2 Suivre le programme 6 ... 0 \n",
"3 Renverser le programme 0 ... 0 \n",
"4 Toujours la même chose 3 ... 0 \n",
"\n",
" SAID Ftoumia ZAKOTRA Claudian TOUFAIL Salahou \\\n",
"DNB blanc 2 général 50 60 58.5 \n",
"Ex 1 - Programme de calculs 0 7 2.0 \n",
"1 et 2 Suivre le programme 0 2 1.0 \n",
"3 Renverser le programme 0 2 0.0 \n",
"4 Toujours la même chose 0 0 0.0 \n",
"\n",
" moyenne Min Q1 ME Q3 Max \n",
"DNB blanc 2 général 43.403846 21 27.125 41.25 56.875 75.0 \n",
"Ex 1 - Programme de calculs 4.019231 0 1.250 3.00 6.875 11.0 \n",
"1 et 2 Suivre le programme 2.692308 0 0.250 2.00 5.750 6.0 \n",
"3 Renverser le programme 0.596154 0 0.000 0.00 1.125 3.0 \n",
"4 Toujours la même chose 0.192308 0 0.000 0.00 0.000 3.0 \n",
"\n",
"[5 rows x 35 columns]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_excel(\"./DNB_blanc2/DNB2_302.xlsx\")\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On enlève les colonnes inutiles et on format les prénoms"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import unicodedata\n",
"def normalize_str(s):\n",
" return unicodedata.normalize('NFD', s).encode('ascii', 'ignore').lower()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"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>b'abdallah alaoui taiassima'</th>\n",
" <th>b'adani ismou'</th>\n",
" <th>b'ahamada dhoulkamal'</th>\n",
" <th>b'ahamadi asbahati'</th>\n",
" <th>b'ahamadi ousseni ansufidine'</th>\n",
" <th>b'ahamed fayadhi'</th>\n",
" <th>b'ahmed said hadaita'</th>\n",
" <th>b'ali madi anissa'</th>\n",
" <th>b'ali raydel'</th>\n",
" <th>b'attoumane ali fatima'</th>\n",
" <th>...</th>\n",
" <th>b'hamedaly doulkifly'</th>\n",
" <th>b'ibrahim chaharzade'</th>\n",
" <th>b'ibrahim nassur'</th>\n",
" <th>b'inoussa anchoura'</th>\n",
" <th>b'mohamed nadia'</th>\n",
" <th>b'mouhoudhoire izak'</th>\n",
" <th>b'moussri bakari'</th>\n",
" <th>b'said ftoumia'</th>\n",
" <th>b'zakotra claudian'</th>\n",
" <th>b'toufail salahou'</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>DNB blanc 2 général</th>\n",
" <td>24</td>\n",
" <td>52.0</td>\n",
" <td>46.5</td>\n",
" <td>65</td>\n",
" <td>27.0</td>\n",
" <td>25.5</td>\n",
" <td>75</td>\n",
" <td>72</td>\n",
" <td>45.5</td>\n",
" <td>26.0</td>\n",
" <td>...</td>\n",
" <td>23.5</td>\n",
" <td>49.0</td>\n",
" <td>42.5</td>\n",
" <td>NaN</td>\n",
" <td>27.5</td>\n",
" <td>37</td>\n",
" <td>40</td>\n",
" <td>50</td>\n",
" <td>60</td>\n",
" <td>58.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ex 1 - Programme de calculs</th>\n",
" <td>3</td>\n",
" <td>11.0</td>\n",
" <td>3.0</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>10</td>\n",
" <td>9.0</td>\n",
" <td>6.5</td>\n",
" <td>...</td>\n",
" <td>2.0</td>\n",
" <td>4.5</td>\n",
" <td>7.5</td>\n",
" <td>NaN</td>\n",
" <td>2.5</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>7</td>\n",
" <td>2.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 et 2 Suivre le programme</th>\n",
" <td>3</td>\n",
" <td>6.0</td>\n",
" <td>2.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>6.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>6.0</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 Renverser le programme</th>\n",
" <td>0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3.0</td>\n",
" <td>1.5</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.5</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 Toujours la même chose</th>\n",
" <td>0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 27 columns</p>\n",
"</div>"
],
"text/plain": [
" b'abdallah alaoui taiassima' b'adani ismou' \\\n",
"DNB blanc 2 général 24 52.0 \n",
"Ex 1 - Programme de calculs 3 11.0 \n",
"1 et 2 Suivre le programme 3 6.0 \n",
"3 Renverser le programme 0 3.0 \n",
"4 Toujours la même chose 0 2.0 \n",
"\n",
" b'ahamada dhoulkamal' b'ahamadi asbahati' \\\n",
"DNB blanc 2 général 46.5 65 \n",
"Ex 1 - Programme de calculs 3.0 0 \n",
"1 et 2 Suivre le programme 2.0 0 \n",
"3 Renverser le programme 0.0 0 \n",
"4 Toujours la même chose 0.0 0 \n",
"\n",
" b'ahamadi ousseni ansufidine' b'ahamed fayadhi' \\\n",
"DNB blanc 2 général 27.0 25.5 \n",
"Ex 1 - Programme de calculs 1.0 0.0 \n",
"1 et 2 Suivre le programme 0.0 0.0 \n",
"3 Renverser le programme 0.0 0.0 \n",
"4 Toujours la même chose 0.0 0.0 \n",
"\n",
" b'ahmed said hadaita' b'ali madi anissa' \\\n",
"DNB blanc 2 général 75 72 \n",
"Ex 1 - Programme de calculs 3 10 \n",
"1 et 2 Suivre le programme 2 6 \n",
"3 Renverser le programme 0 0 \n",
"4 Toujours la même chose 0 3 \n",
"\n",
" b'ali raydel' b'attoumane ali fatima' \\\n",
"DNB blanc 2 général 45.5 26.0 \n",
"Ex 1 - Programme de calculs 9.0 6.5 \n",
"1 et 2 Suivre le programme 6.0 5.0 \n",
"3 Renverser le programme 3.0 1.5 \n",
"4 Toujours la même chose 0.0 0.0 \n",
"\n",
" ... b'hamedaly doulkifly' \\\n",
"DNB blanc 2 général ... 23.5 \n",
"Ex 1 - Programme de calculs ... 2.0 \n",
"1 et 2 Suivre le programme ... 2.0 \n",
"3 Renverser le programme ... 0.0 \n",
"4 Toujours la même chose ... 0.0 \n",
"\n",
" b'ibrahim chaharzade' b'ibrahim nassur' \\\n",
"DNB blanc 2 général 49.0 42.5 \n",
"Ex 1 - Programme de calculs 4.5 7.5 \n",
"1 et 2 Suivre le programme 3.0 6.0 \n",
"3 Renverser le programme 0.0 1.5 \n",
"4 Toujours la même chose 0.0 0.0 \n",
"\n",
" b'inoussa anchoura' b'mohamed nadia' \\\n",
"DNB blanc 2 général NaN 27.5 \n",
"Ex 1 - Programme de calculs NaN 2.5 \n",
"1 et 2 Suivre le programme NaN 1.0 \n",
"3 Renverser le programme NaN 0.0 \n",
"4 Toujours la même chose NaN 0.0 \n",
"\n",
" b'mouhoudhoire izak' b'moussri bakari' \\\n",
"DNB blanc 2 général 37 40 \n",
"Ex 1 - Programme de calculs 5 2 \n",
"1 et 2 Suivre le programme 4 0 \n",
"3 Renverser le programme 0 0 \n",
"4 Toujours la même chose 0 0 \n",
"\n",
" b'said ftoumia' b'zakotra claudian' \\\n",
"DNB blanc 2 général 50 60 \n",
"Ex 1 - Programme de calculs 0 7 \n",
"1 et 2 Suivre le programme 0 2 \n",
"3 Renverser le programme 0 2 \n",
"4 Toujours la même chose 0 0 \n",
"\n",
" b'toufail salahou' \n",
"DNB blanc 2 général 58.5 \n",
"Ex 1 - Programme de calculs 2.0 \n",
"1 et 2 Suivre le programme 1.0 \n",
"3 Renverser le programme 0.0 \n",
"4 Toujours la même chose 0.0 \n",
"\n",
"[5 rows x 27 columns]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = df.drop(['competence', 'Barème','moyenne',\n",
" 'Min', 'Q1', 'ME', 'Q3', 'Max'], 1)\n",
"df.columns = [normalize_str(i) for i in df.columns]\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On enlèves les lignes calculées par excel pour ne garder que les données"
]
},
{
"cell_type": "code",
"execution_count": 15,
"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>b'abdallah alaoui taiassima'</th>\n",
" <th>b'adani ismou'</th>\n",
" <th>b'ahamada dhoulkamal'</th>\n",
" <th>b'ahamadi asbahati'</th>\n",
" <th>b'ahamadi ousseni ansufidine'</th>\n",
" <th>b'ahamed fayadhi'</th>\n",
" <th>b'ahmed said hadaita'</th>\n",
" <th>b'ali madi anissa'</th>\n",
" <th>b'ali raydel'</th>\n",
" <th>b'attoumane ali fatima'</th>\n",
" <th>...</th>\n",
" <th>b'hamedaly doulkifly'</th>\n",
" <th>b'ibrahim chaharzade'</th>\n",
" <th>b'ibrahim nassur'</th>\n",
" <th>b'inoussa anchoura'</th>\n",
" <th>b'mohamed nadia'</th>\n",
" <th>b'mouhoudhoire izak'</th>\n",
" <th>b'moussri bakari'</th>\n",
" <th>b'said ftoumia'</th>\n",
" <th>b'zakotra claudian'</th>\n",
" <th>b'toufail salahou'</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1 et 2 Suivre le programme</th>\n",
" <td>3</td>\n",
" <td>6.0</td>\n",
" <td>2.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>6.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>6.0</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 Renverser le programme</th>\n",
" <td>0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3.0</td>\n",
" <td>1.5</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.5</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 Toujours la même chose</th>\n",
" <td>0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 Développer F</th>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>1.5</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>1.5</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 Fraction réponse</th>\n",
" <td>4</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>4</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>NaN</td>\n",
" <td>4.0</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 Notation et vocabulaire</th>\n",
" <td>6</td>\n",
" <td>0.0</td>\n",
" <td>6.0</td>\n",
" <td>8</td>\n",
" <td>3.0</td>\n",
" <td>6.0</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>6.0</td>\n",
" <td>6.0</td>\n",
" <td>1.0</td>\n",
" <td>NaN</td>\n",
" <td>2.0</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>3.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 Arbre de probabilité</th>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 et 2 Raisonnement pour choisir</th>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>5</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4.0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>2.5</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>NaN</td>\n",
" <td>4.0</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>5.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 et 2 Décomposer le problème</th>\n",
" <td>2</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>5</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>2.5</td>\n",
" <td>2.5</td>\n",
" <td>...</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>2.0</td>\n",
" <td>NaN</td>\n",
" <td>3.0</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>5.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 et 2 Choix des opérations et calculs</th>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 Composition des réductions</th>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 Logique de la réponse</th>\n",
" <td>0</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>3</td>\n",
" <td>1.5</td>\n",
" <td>0.5</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>3.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 Calculs des indicateurs</th>\n",
" <td>0</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>3</td>\n",
" <td>1.5</td>\n",
" <td>0.5</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>1.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 Clarté des explications</th>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>2.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 Calculs</th>\n",
" <td>0</td>\n",
" <td>1.5</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 Validité des réponses</th>\n",
" <td>0</td>\n",
" <td>1.5</td>\n",
" <td>1.5</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 Tests des possibilités</th>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Reconnaitre les théorèmes</th>\n",
" <td>2</td>\n",
" <td>2.0</td>\n",
" <td>4.0</td>\n",
" <td>3</td>\n",
" <td>5.0</td>\n",
" <td>2.0</td>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" <td>6.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>1.0</td>\n",
" <td>6.0</td>\n",
" <td>3.0</td>\n",
" <td>NaN</td>\n",
" <td>3.0</td>\n",
" <td>6</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>6.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Validité des calculs</th>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>6</td>\n",
" <td>3</td>\n",
" <td>6.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>4.0</td>\n",
" <td>2.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" <td>5.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Suivi du raisonnement géométrique</th>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>4.0</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" <td>5.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1 Quantité de sucre</th>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>1.5</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>3.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 Calcul du volume</th>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>1.5</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 Nombre de pots</th>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 Dessin de l'étiquette</th>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 Mise à l'echelle</th>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 Longueur de l'étiquette</th>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>26 rows × 27 columns</p>\n",
"</div>"
],
"text/plain": [
" b'abdallah alaoui taiassima' \\\n",
"1 et 2 Suivre le programme 3 \n",
"3 Renverser le programme 0 \n",
"4 Toujours la même chose 0 \n",
"4 Développer F 0 \n",
"1 Fraction réponse 4 \n",
"1 Notation et vocabulaire 6 \n",
"2 Arbre de probabilité 0 \n",
"1 et 2 Raisonnement pour choisir 2 \n",
"1 et 2 Décomposer le problème 2 \n",
"1 et 2 Choix des opérations et calculs 0 \n",
"3 Composition des réductions 0 \n",
"1 Logique de la réponse 0 \n",
"1 Calculs des indicateurs 0 \n",
"1 Clarté des explications 0 \n",
"2 Calculs 0 \n",
"2 Validité des réponses 0 \n",
"2 Tests des possibilités 0 \n",
" Reconnaitre les théorèmes 2 \n",
" Validité des calculs 0 \n",
" Suivi du raisonnement géométrique 0 \n",
"1 Quantité de sucre 0 \n",
"2 Calcul du volume 0 \n",
"2 Nombre de pots 0 \n",
"3 Dessin de l'étiquette 0 \n",
"3 Mise à l'echelle 0 \n",
"3 Longueur de l'étiquette 0 \n",
"\n",
" b'adani ismou' b'ahamada dhoulkamal' \\\n",
"1 et 2 Suivre le programme 6.0 2.0 \n",
"3 Renverser le programme 3.0 0.0 \n",
"4 Toujours la même chose 2.0 0.0 \n",
"4 Développer F 0.0 1.0 \n",
"1 Fraction réponse 4.0 4.0 \n",
"1 Notation et vocabulaire 0.0 6.0 \n",
"2 Arbre de probabilité 0.0 0.0 \n",
"1 et 2 Raisonnement pour choisir 1.0 3.0 \n",
"1 et 2 Décomposer le problème 2.0 3.0 \n",
"1 et 2 Choix des opérations et calculs 1.0 0.0 \n",
"3 Composition des réductions 0.0 1.0 \n",
"1 Logique de la réponse 3.0 3.0 \n",
"1 Calculs des indicateurs 2.0 3.0 \n",
"1 Clarté des explications 1.0 3.0 \n",
"2 Calculs 1.5 0.0 \n",
"2 Validité des réponses 1.5 1.5 \n",
"2 Tests des possibilités 0.0 0.0 \n",
" Reconnaitre les théorèmes 2.0 4.0 \n",
" Validité des calculs 0.0 3.0 \n",
" Suivi du raisonnement géométrique 0.0 1.0 \n",
"1 Quantité de sucre 0.0 0.0 \n",
"2 Calcul du volume 0.0 1.0 \n",
"2 Nombre de pots 0.0 0.0 \n",
"3 Dessin de l'étiquette 0.0 0.0 \n",
"3 Mise à l'echelle 0.0 0.0 \n",
"3 Longueur de l'étiquette 0.0 0.0 \n",
"\n",
" b'ahamadi asbahati' \\\n",
"1 et 2 Suivre le programme 0 \n",
"3 Renverser le programme 0 \n",
"4 Toujours la même chose 0 \n",
"4 Développer F 0 \n",
"1 Fraction réponse 4 \n",
"1 Notation et vocabulaire 8 \n",
"2 Arbre de probabilité 0 \n",
"1 et 2 Raisonnement pour choisir 5 \n",
"1 et 2 Décomposer le problème 5 \n",
"1 et 2 Choix des opérations et calculs 2 \n",
"3 Composition des réductions 1 \n",
"1 Logique de la réponse 3 \n",
"1 Calculs des indicateurs 3 \n",
"1 Clarté des explications 3 \n",
"2 Calculs 3 \n",
"2 Validité des réponses 3 \n",
"2 Tests des possibilités 3 \n",
" Reconnaitre les théorèmes 3 \n",
" Validité des calculs 3 \n",
" Suivi du raisonnement géométrique 3 \n",
"1 Quantité de sucre 3 \n",
"2 Calcul du volume 0 \n",
"2 Nombre de pots 0 \n",
"3 Dessin de l'étiquette 0 \n",
"3 Mise à l'echelle 0 \n",
"3 Longueur de l'étiquette 0 \n",
"\n",
" b'ahamadi ousseni ansufidine' \\\n",
"1 et 2 Suivre le programme 0.0 \n",
"3 Renverser le programme 0.0 \n",
"4 Toujours la même chose 0.0 \n",
"4 Développer F 1.0 \n",
"1 Fraction réponse 3.0 \n",
"1 Notation et vocabulaire 3.0 \n",
"2 Arbre de probabilité 0.0 \n",
"1 et 2 Raisonnement pour choisir 2.0 \n",
"1 et 2 Décomposer le problème 1.0 \n",
"1 et 2 Choix des opérations et calculs 0.0 \n",
"3 Composition des réductions 0.0 \n",
"1 Logique de la réponse 1.5 \n",
"1 Calculs des indicateurs 1.5 \n",
"1 Clarté des explications 1.0 \n",
"2 Calculs 0.0 \n",
"2 Validité des réponses 0.0 \n",
"2 Tests des possibilités 0.0 \n",
" Reconnaitre les théorèmes 5.0 \n",
" Validité des calculs 0.0 \n",
" Suivi du raisonnement géométrique 1.0 \n",
"1 Quantité de sucre 0.0 \n",
"2 Calcul du volume 0.0 \n",
"2 Nombre de pots 0.0 \n",
"3 Dessin de l'étiquette 0.0 \n",
"3 Mise à l'echelle 0.0 \n",
"3 Longueur de l'étiquette 0.0 \n",
"\n",
" b'ahamed fayadhi' \\\n",
"1 et 2 Suivre le programme 0.0 \n",
"3 Renverser le programme 0.0 \n",
"4 Toujours la même chose 0.0 \n",
"4 Développer F 0.0 \n",
"1 Fraction réponse 4.0 \n",
"1 Notation et vocabulaire 6.0 \n",
"2 Arbre de probabilité 0.0 \n",
"1 et 2 Raisonnement pour choisir 1.0 \n",
"1 et 2 Décomposer le problème 1.0 \n",
"1 et 2 Choix des opérations et calculs 0.0 \n",
"3 Composition des réductions 0.0 \n",
"1 Logique de la réponse 0.5 \n",
"1 Calculs des indicateurs 0.5 \n",
"1 Clarté des explications 0.0 \n",
"2 Calculs 0.0 \n",
"2 Validité des réponses 0.0 \n",
"2 Tests des possibilités 0.0 \n",
" Reconnaitre les théorèmes 2.0 \n",
" Validité des calculs 1.0 \n",
" Suivi du raisonnement géométrique 1.0 \n",
"1 Quantité de sucre 1.5 \n",
"2 Calcul du volume 0.0 \n",
"2 Nombre de pots 0.0 \n",
"3 Dessin de l'étiquette 0.0 \n",
"3 Mise à l'echelle 0.0 \n",
"3 Longueur de l'étiquette 0.0 \n",
"\n",
" b'ahmed said hadaita' \\\n",
"1 et 2 Suivre le programme 2 \n",
"3 Renverser le programme 0 \n",
"4 Toujours la même chose 0 \n",
"4 Développer F 1 \n",
"1 Fraction réponse 4 \n",
"1 Notation et vocabulaire 8 \n",
"2 Arbre de probabilité 0 \n",
"1 et 2 Raisonnement pour choisir 5 \n",
"1 et 2 Décomposer le problème 5 \n",
"1 et 2 Choix des opérations et calculs 4 \n",
"3 Composition des réductions 2 \n",
"1 Logique de la réponse 3 \n",
"1 Calculs des indicateurs 3 \n",
"1 Clarté des explications 3 \n",
"2 Calculs 3 \n",
"2 Validité des réponses 3 \n",
"2 Tests des possibilités 3 \n",
" Reconnaitre les théorèmes 6 \n",
" Validité des calculs 6 \n",
" Suivi du raisonnement géométrique 5 \n",
"1 Quantité de sucre 0 \n",
"2 Calcul du volume 0 \n",
"2 Nombre de pots 0 \n",
"3 Dessin de l'étiquette 0 \n",
"3 Mise à l'echelle 0 \n",
"3 Longueur de l'étiquette 0 \n",
"\n",
" b'ali madi anissa' b'ali raydel' \\\n",
"1 et 2 Suivre le programme 6 6.0 \n",
"3 Renverser le programme 0 3.0 \n",
"4 Toujours la même chose 3 0.0 \n",
"4 Développer F 1 0.0 \n",
"1 Fraction réponse 4 4.0 \n",
"1 Notation et vocabulaire 8 0.0 \n",
"2 Arbre de probabilité 0 0.0 \n",
"1 et 2 Raisonnement pour choisir 5 4.0 \n",
"1 et 2 Décomposer le problème 5 2.5 \n",
"1 et 2 Choix des opérations et calculs 1 0.0 \n",
"3 Composition des réductions 0 0.0 \n",
"1 Logique de la réponse 3 0.0 \n",
"1 Calculs des indicateurs 3 0.0 \n",
"1 Clarté des explications 3 0.0 \n",
"2 Calculs 3 0.0 \n",
"2 Validité des réponses 3 0.0 \n",
"2 Tests des possibilités 2 0.0 \n",
" Reconnaitre les théorèmes 4 6.0 \n",
" Validité des calculs 3 6.0 \n",
" Suivi du raisonnement géométrique 3 4.0 \n",
"1 Quantité de sucre 3 0.0 \n",
"2 Calcul du volume 0 0.0 \n",
"2 Nombre de pots 0 0.0 \n",
"3 Dessin de l'étiquette 0 0.0 \n",
"3 Mise à l'echelle 0 0.0 \n",
"3 Longueur de l'étiquette 0 0.0 \n",
"\n",
" b'attoumane ali fatima' \\\n",
"1 et 2 Suivre le programme 5.0 \n",
"3 Renverser le programme 1.5 \n",
"4 Toujours la même chose 0.0 \n",
"4 Développer F 0.0 \n",
"1 Fraction réponse 4.0 \n",
"1 Notation et vocabulaire 2.0 \n",
"2 Arbre de probabilité 0.0 \n",
"1 et 2 Raisonnement pour choisir 3.0 \n",
"1 et 2 Décomposer le problème 2.5 \n",
"1 et 2 Choix des opérations et calculs 0.0 \n",
"3 Composition des réductions 0.0 \n",
"1 Logique de la réponse 0.0 \n",
"1 Calculs des indicateurs 0.0 \n",
"1 Clarté des explications 0.0 \n",
"2 Calculs 0.0 \n",
"2 Validité des réponses 0.0 \n",
"2 Tests des possibilités 0.0 \n",
" Reconnaitre les théorèmes 0.0 \n",
" Validité des calculs 0.0 \n",
" Suivi du raisonnement géométrique 1.0 \n",
"1 Quantité de sucre 0.0 \n",
"2 Calcul du volume 0.0 \n",
"2 Nombre de pots 0.0 \n",
"3 Dessin de l'étiquette 0.0 \n",
"3 Mise à l'echelle 0.0 \n",
"3 Longueur de l'étiquette 0.0 \n",
"\n",
" ... \\\n",
"1 et 2 Suivre le programme ... \n",
"3 Renverser le programme ... \n",
"4 Toujours la même chose ... \n",
"4 Développer F ... \n",
"1 Fraction réponse ... \n",
"1 Notation et vocabulaire ... \n",
"2 Arbre de probabilité ... \n",
"1 et 2 Raisonnement pour choisir ... \n",
"1 et 2 Décomposer le problème ... \n",
"1 et 2 Choix des opérations et calculs ... \n",
"3 Composition des réductions ... \n",
"1 Logique de la réponse ... \n",
"1 Calculs des indicateurs ... \n",
"1 Clarté des explications ... \n",
"2 Calculs ... \n",
"2 Validité des réponses ... \n",
"2 Tests des possibilités ... \n",
" Reconnaitre les théorèmes ... \n",
" Validité des calculs ... \n",
" Suivi du raisonnement géométrique ... \n",
"1 Quantité de sucre ... \n",
"2 Calcul du volume ... \n",
"2 Nombre de pots ... \n",
"3 Dessin de l'étiquette ... \n",
"3 Mise à l'echelle ... \n",
"3 Longueur de l'étiquette ... \n",
"\n",
" b'hamedaly doulkifly' \\\n",
"1 et 2 Suivre le programme 2.0 \n",
"3 Renverser le programme 0.0 \n",
"4 Toujours la même chose 0.0 \n",
"4 Développer F 0.0 \n",
"1 Fraction réponse 3.0 \n",
"1 Notation et vocabulaire 6.0 \n",
"2 Arbre de probabilité 0.0 \n",
"1 et 2 Raisonnement pour choisir 2.5 \n",
"1 et 2 Décomposer le problème 2.0 \n",
"1 et 2 Choix des opérations et calculs 0.0 \n",
"3 Composition des réductions 0.0 \n",
"1 Logique de la réponse 0.0 \n",
"1 Calculs des indicateurs 0.0 \n",
"1 Clarté des explications 0.0 \n",
"2 Calculs 0.0 \n",
"2 Validité des réponses 0.0 \n",
"2 Tests des possibilités 0.0 \n",
" Reconnaitre les théorèmes 1.0 \n",
" Validité des calculs 0.0 \n",
" Suivi du raisonnement géométrique 0.0 \n",
"1 Quantité de sucre 0.0 \n",
"2 Calcul du volume 0.0 \n",
"2 Nombre de pots 0.0 \n",
"3 Dessin de l'étiquette 0.0 \n",
"3 Mise à l'echelle 0.0 \n",
"3 Longueur de l'étiquette 0.0 \n",
"\n",
" b'ibrahim chaharzade' \\\n",
"1 et 2 Suivre le programme 3.0 \n",
"3 Renverser le programme 0.0 \n",
"4 Toujours la même chose 0.0 \n",
"4 Développer F 1.5 \n",
"1 Fraction réponse 4.0 \n",
"1 Notation et vocabulaire 6.0 \n",
"2 Arbre de probabilité 0.0 \n",
"1 et 2 Raisonnement pour choisir 2.0 \n",
"1 et 2 Décomposer le problème 2.0 \n",
"1 et 2 Choix des opérations et calculs 0.0 \n",
"3 Composition des réductions 0.0 \n",
"1 Logique de la réponse 1.0 \n",
"1 Calculs des indicateurs 1.0 \n",
"1 Clarté des explications 0.0 \n",
"2 Calculs 1.0 \n",
"2 Validité des réponses 3.0 \n",
"2 Tests des possibilités 0.0 \n",
" Reconnaitre les théorèmes 6.0 \n",
" Validité des calculs 4.0 \n",
" Suivi du raisonnement géométrique 4.0 \n",
"1 Quantité de sucre 0.0 \n",
"2 Calcul du volume 1.5 \n",
"2 Nombre de pots 0.0 \n",
"3 Dessin de l'étiquette 0.0 \n",
"3 Mise à l'echelle 0.0 \n",
"3 Longueur de l'étiquette 0.0 \n",
"\n",
" b'ibrahim nassur' \\\n",
"1 et 2 Suivre le programme 6.0 \n",
"3 Renverser le programme 1.5 \n",
"4 Toujours la même chose 0.0 \n",
"4 Développer F 0.0 \n",
"1 Fraction réponse 4.0 \n",
"1 Notation et vocabulaire 1.0 \n",
"2 Arbre de probabilité 0.0 \n",
"1 et 2 Raisonnement pour choisir 2.0 \n",
"1 et 2 Décomposer le problème 2.0 \n",
"1 et 2 Choix des opérations et calculs 0.0 \n",
"3 Composition des réductions 1.0 \n",
"1 Logique de la réponse 3.0 \n",
"1 Calculs des indicateurs 3.0 \n",
"1 Clarté des explications 3.0 \n",
"2 Calculs 0.0 \n",
"2 Validité des réponses 0.0 \n",
"2 Tests des possibilités 0.0 \n",
" Reconnaitre les théorèmes 3.0 \n",
" Validité des calculs 2.0 \n",
" Suivi du raisonnement géométrique 0.0 \n",
"1 Quantité de sucre 3.0 \n",
"2 Calcul du volume 0.0 \n",
"2 Nombre de pots 0.0 \n",
"3 Dessin de l'étiquette 0.0 \n",
"3 Mise à l'echelle 0.0 \n",
"3 Longueur de l'étiquette 0.0 \n",
"\n",
" b'inoussa anchoura' b'mohamed nadia' \\\n",
"1 et 2 Suivre le programme NaN 1.0 \n",
"3 Renverser le programme NaN 0.0 \n",
"4 Toujours la même chose NaN 0.0 \n",
"4 Développer F NaN 1.5 \n",
"1 Fraction réponse NaN 4.0 \n",
"1 Notation et vocabulaire NaN 2.0 \n",
"2 Arbre de probabilité NaN 0.0 \n",
"1 et 2 Raisonnement pour choisir NaN 4.0 \n",
"1 et 2 Décomposer le problème NaN 3.0 \n",
"1 et 2 Choix des opérations et calculs NaN 1.0 \n",
"3 Composition des réductions NaN 0.0 \n",
"1 Logique de la réponse NaN 0.0 \n",
"1 Calculs des indicateurs NaN 1.0 \n",
"1 Clarté des explications NaN 0.0 \n",
"2 Calculs NaN 0.0 \n",
"2 Validité des réponses NaN 0.0 \n",
"2 Tests des possibilités NaN 0.0 \n",
" Reconnaitre les théorèmes NaN 3.0 \n",
" Validité des calculs NaN 0.0 \n",
" Suivi du raisonnement géométrique NaN 1.0 \n",
"1 Quantité de sucre NaN 0.0 \n",
"2 Calcul du volume NaN 0.0 \n",
"2 Nombre de pots NaN 0.0 \n",
"3 Dessin de l'étiquette NaN 0.0 \n",
"3 Mise à l'echelle NaN 0.0 \n",
"3 Longueur de l'étiquette NaN 0.0 \n",
"\n",
" b'mouhoudhoire izak' \\\n",
"1 et 2 Suivre le programme 4 \n",
"3 Renverser le programme 0 \n",
"4 Toujours la même chose 0 \n",
"4 Développer F 1 \n",
"1 Fraction réponse 4 \n",
"1 Notation et vocabulaire 6 \n",
"2 Arbre de probabilité 0 \n",
"1 et 2 Raisonnement pour choisir 2 \n",
"1 et 2 Décomposer le problème 1 \n",
"1 et 2 Choix des opérations et calculs 0 \n",
"3 Composition des réductions 0 \n",
"1 Logique de la réponse 0 \n",
"1 Calculs des indicateurs 0 \n",
"1 Clarté des explications 0 \n",
"2 Calculs 0 \n",
"2 Validité des réponses 0 \n",
"2 Tests des possibilités 0 \n",
" Reconnaitre les théorèmes 6 \n",
" Validité des calculs 3 \n",
" Suivi du raisonnement géométrique 4 \n",
"1 Quantité de sucre 0 \n",
"2 Calcul du volume 0 \n",
"2 Nombre de pots 0 \n",
"3 Dessin de l'étiquette 0 \n",
"3 Mise à l'echelle 0 \n",
"3 Longueur de l'étiquette 0 \n",
"\n",
" b'moussri bakari' b'said ftoumia' \\\n",
"1 et 2 Suivre le programme 0 0 \n",
"3 Renverser le programme 0 0 \n",
"4 Toujours la même chose 0 0 \n",
"4 Développer F 2 0 \n",
"1 Fraction réponse 4 4 \n",
"1 Notation et vocabulaire 5 6 \n",
"2 Arbre de probabilité 0 0 \n",
"1 et 2 Raisonnement pour choisir 4 1 \n",
"1 et 2 Décomposer le problème 4 1 \n",
"1 et 2 Choix des opérations et calculs 1 0 \n",
"3 Composition des réductions 0 0 \n",
"1 Logique de la réponse 0 3 \n",
"1 Calculs des indicateurs 0 3 \n",
"1 Clarté des explications 0 3 \n",
"2 Calculs 0 0 \n",
"2 Validité des réponses 0 3 \n",
"2 Tests des possibilités 0 0 \n",
" Reconnaitre les théorèmes 3 5 \n",
" Validité des calculs 4 6 \n",
" Suivi du raisonnement géométrique 3 6 \n",
"1 Quantité de sucre 3 0 \n",
"2 Calcul du volume 1 1 \n",
"2 Nombre de pots 0 0 \n",
"3 Dessin de l'étiquette 0 0 \n",
"3 Mise à l'echelle 0 0 \n",
"3 Longueur de l'étiquette 0 0 \n",
"\n",
" b'zakotra claudian' \\\n",
"1 et 2 Suivre le programme 2 \n",
"3 Renverser le programme 2 \n",
"4 Toujours la même chose 0 \n",
"4 Développer F 3 \n",
"1 Fraction réponse 4 \n",
"1 Notation et vocabulaire 8 \n",
"2 Arbre de probabilité 0 \n",
"1 et 2 Raisonnement pour choisir 3 \n",
"1 et 2 Décomposer le problème 3 \n",
"1 et 2 Choix des opérations et calculs 0 \n",
"3 Composition des réductions 0 \n",
"1 Logique de la réponse 3 \n",
"1 Calculs des indicateurs 3 \n",
"1 Clarté des explications 3 \n",
"2 Calculs 0 \n",
"2 Validité des réponses 0 \n",
"2 Tests des possibilités 0 \n",
" Reconnaitre les théorèmes 6 \n",
" Validité des calculs 4 \n",
" Suivi du raisonnement géométrique 4 \n",
"1 Quantité de sucre 3 \n",
"2 Calcul du volume 0 \n",
"2 Nombre de pots 0 \n",
"3 Dessin de l'étiquette 0 \n",
"3 Mise à l'echelle 0 \n",
"3 Longueur de l'étiquette 0 \n",
"\n",
" b'toufail salahou' \n",
"1 et 2 Suivre le programme 1.0 \n",
"3 Renverser le programme 0.0 \n",
"4 Toujours la même chose 0.0 \n",
"4 Développer F 1.0 \n",
"1 Fraction réponse 4.0 \n",
"1 Notation et vocabulaire 3.0 \n",
"2 Arbre de probabilité 0.0 \n",
"1 et 2 Raisonnement pour choisir 5.0 \n",
"1 et 2 Décomposer le problème 5.0 \n",
"1 et 2 Choix des opérations et calculs 3.0 \n",
"3 Composition des réductions 1.0 \n",
"1 Logique de la réponse 3.0 \n",
"1 Calculs des indicateurs 1.5 \n",
"1 Clarté des explications 2.0 \n",
"2 Calculs 0.0 \n",
"2 Validité des réponses 0.0 \n",
"2 Tests des possibilités 0.0 \n",
" Reconnaitre les théorèmes 6.0 \n",
" Validité des calculs 5.0 \n",
" Suivi du raisonnement géométrique 5.0 \n",
"1 Quantité de sucre 3.0 \n",
"2 Calcul du volume 1.0 \n",
"2 Nombre de pots 0.0 \n",
"3 Dessin de l'étiquette 0.0 \n",
"3 Mise à l'echelle 0.0 \n",
"3 Longueur de l'étiquette 0.0 \n",
"\n",
"[26 rows x 27 columns]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = df[list(~df.reset_index()[\"index\"].apply(lambda x: x.startswith(\"Ex\") or x.startswith(\"DNB\")))]\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 16,
"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>index</th>\n",
" <th>b'abdallah alaoui taiassima'</th>\n",
" <th>b'adani ismou'</th>\n",
" <th>b'ahamada dhoulkamal'</th>\n",
" <th>b'ahamadi asbahati'</th>\n",
" <th>b'ahamadi ousseni ansufidine'</th>\n",
" <th>b'ahamed fayadhi'</th>\n",
" <th>b'ahmed said hadaita'</th>\n",
" <th>b'ali madi anissa'</th>\n",
" <th>b'ali raydel'</th>\n",
" <th>...</th>\n",
" <th>b'hamedaly doulkifly'</th>\n",
" <th>b'ibrahim chaharzade'</th>\n",
" <th>b'ibrahim nassur'</th>\n",
" <th>b'inoussa anchoura'</th>\n",
" <th>b'mohamed nadia'</th>\n",
" <th>b'mouhoudhoire izak'</th>\n",
" <th>b'moussri bakari'</th>\n",
" <th>b'said ftoumia'</th>\n",
" <th>b'zakotra claudian'</th>\n",
" <th>b'toufail salahou'</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1 et 2 Suivre le programme</td>\n",
" <td>3</td>\n",
" <td>6.0</td>\n",
" <td>2.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>6.0</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3 Renverser le programme</td>\n",
" <td>0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1.5</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4 Toujours la même chose</td>\n",
" <td>0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4 Développer F</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>1.5</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>1.5</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1 Fraction réponse</td>\n",
" <td>4</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>4</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>NaN</td>\n",
" <td>4.0</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 28 columns</p>\n",
"</div>"
],
"text/plain": [
" index b'abdallah alaoui taiassima' b'adani ismou' \\\n",
"0 1 et 2 Suivre le programme 3 6.0 \n",
"1 3 Renverser le programme 0 3.0 \n",
"2 4 Toujours la même chose 0 2.0 \n",
"3 4 Développer F 0 0.0 \n",
"4 1 Fraction réponse 4 4.0 \n",
"\n",
" b'ahamada dhoulkamal' b'ahamadi asbahati' b'ahamadi ousseni ansufidine' \\\n",
"0 2.0 0 0.0 \n",
"1 0.0 0 0.0 \n",
"2 0.0 0 0.0 \n",
"3 1.0 0 1.0 \n",
"4 4.0 4 3.0 \n",
"\n",
" b'ahamed fayadhi' b'ahmed said hadaita' b'ali madi anissa' \\\n",
"0 0.0 2 6 \n",
"1 0.0 0 0 \n",
"2 0.0 0 3 \n",
"3 0.0 1 1 \n",
"4 4.0 4 4 \n",
"\n",
" b'ali raydel' ... b'hamedaly doulkifly' \\\n",
"0 6.0 ... 2.0 \n",
"1 3.0 ... 0.0 \n",
"2 0.0 ... 0.0 \n",
"3 0.0 ... 0.0 \n",
"4 4.0 ... 3.0 \n",
"\n",
" b'ibrahim chaharzade' b'ibrahim nassur' b'inoussa anchoura' \\\n",
"0 3.0 6.0 NaN \n",
"1 0.0 1.5 NaN \n",
"2 0.0 0.0 NaN \n",
"3 1.5 0.0 NaN \n",
"4 4.0 4.0 NaN \n",
"\n",
" b'mohamed nadia' b'mouhoudhoire izak' b'moussri bakari' b'said ftoumia' \\\n",
"0 1.0 4 0 0 \n",
"1 0.0 0 0 0 \n",
"2 0.0 0 0 0 \n",
"3 1.5 1 2 0 \n",
"4 4.0 4 4 4 \n",
"\n",
" b'zakotra claudian' b'toufail salahou' \n",
"0 2 1.0 \n",
"1 2 0.0 \n",
"2 0 0.0 \n",
"3 3 1.0 \n",
"4 4 4.0 \n",
"\n",
"[5 rows x 28 columns]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = df.reset_index()\n",
"df.head()"
]
},
{
"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>index</th>\n",
" <th>b'abdallah alaoui taiassima'</th>\n",
" <th>b'adani ismou'</th>\n",
" <th>b'ahamada dhoulkamal'</th>\n",
" <th>b'ahamadi asbahati'</th>\n",
" <th>b'ahamadi ousseni ansufidine'</th>\n",
" <th>b'ahamed fayadhi'</th>\n",
" <th>b'ahmed said hadaita'</th>\n",
" <th>b'ali madi anissa'</th>\n",
" <th>b'ali raydel'</th>\n",
" <th>...</th>\n",
" <th>b'ibrahim nassur'</th>\n",
" <th>b'inoussa anchoura'</th>\n",
" <th>b'mohamed nadia'</th>\n",
" <th>b'mouhoudhoire izak'</th>\n",
" <th>b'moussri bakari'</th>\n",
" <th>b'said ftoumia'</th>\n",
" <th>b'zakotra claudian'</th>\n",
" <th>b'toufail salahou'</th>\n",
" <th>q_comment</th>\n",
" <th>q_name</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1 et 2 Suivre le programme</td>\n",
" <td>3</td>\n",
" <td>6.0</td>\n",
" <td>2.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>6.0</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>et 2 Suivre le programme</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3 Renverser le programme</td>\n",
" <td>0</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>1.5</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" <td>Renverser le programme</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4 Toujours la même chose</td>\n",
" <td>0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>Toujours la même chose</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4 Développer F</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>1.5</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" <td>Développer F</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1 Fraction réponse</td>\n",
" <td>4</td>\n",
" <td>4.0</td>\n",
" <td>4.0</td>\n",
" <td>4</td>\n",
" <td>3.0</td>\n",
" <td>4.0</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>4.0</td>\n",
" <td>NaN</td>\n",
" <td>4.0</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>4.0</td>\n",
" <td>Fraction réponse</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1 Notation et vocabulaire</td>\n",
" <td>6</td>\n",
" <td>0.0</td>\n",
" <td>6.0</td>\n",
" <td>8</td>\n",
" <td>3.0</td>\n",
" <td>6.0</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>1.0</td>\n",
" <td>NaN</td>\n",
" <td>2.0</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>3.0</td>\n",
" <td>Notation et vocabulaire</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2 Arbre de probabilité</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>Arbre de probabilité</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1 et 2 Raisonnement pour choisir</td>\n",
" <td>2</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>5</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>2.0</td>\n",
" <td>NaN</td>\n",
" <td>4.0</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>5.0</td>\n",
" <td>et 2 Raisonnement pour choisir</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1 et 2 Décomposer le problème</td>\n",
" <td>2</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>5</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>2.5</td>\n",
" <td>...</td>\n",
" <td>2.0</td>\n",
" <td>NaN</td>\n",
" <td>3.0</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>5.0</td>\n",
" <td>et 2 Décomposer le problème</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1 et 2 Choix des opérations et calculs</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3.0</td>\n",
" <td>et 2 Choix des opérations et calculs</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>3 Composition des réductions</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>1.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>Composition des réductions</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>1 Logique de la réponse</td>\n",
" <td>0</td>\n",
" <td>3.0</td>\n",
" <td>3.0</td>\n",
" <td>3</td>\n",
" <td>1.5</td>\n",
" <td>0.5</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>3.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>3.0</td>\n",
" <td>Logique de la réponse</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>1 Calculs des indicateurs</td>\n",
" <td>0</td>\n",
" <td>2.0</td>\n",
" <td>3.0</td>\n",
" <td>3</td>\n",
" <td>1.5</td>\n",
" <td>0.5</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>3.0</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>1.5</td>\n",
" <td>Calculs des indicateurs</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>1 Clarté des explications</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>3.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>2.0</td>\n",
" <td>Clarté des explications</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>2 Calculs</td>\n",
" <td>0</td>\n",
" <td>1.5</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>Calculs</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>2 Validité des réponses</td>\n",
" <td>0</td>\n",
" <td>1.5</td>\n",
" <td>1.5</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>Validité des réponses</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>2 Tests des possibilités</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>Tests des possibilités</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Reconnaitre les théorèmes</td>\n",
" <td>2</td>\n",
" <td>2.0</td>\n",
" <td>4.0</td>\n",
" <td>3</td>\n",
" <td>5.0</td>\n",
" <td>2.0</td>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>3.0</td>\n",
" <td>NaN</td>\n",
" <td>3.0</td>\n",
" <td>6</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>6.0</td>\n",
" <td>Reconnaitre les théorèmes</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>Validité des calculs</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>6</td>\n",
" <td>3</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>2.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" <td>5.0</td>\n",
" <td>Validité des calculs</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Suivi du raisonnement géométrique</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>3</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" <td>5.0</td>\n",
" <td>Suivi du raisonnement géométrique</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>1 Quantité de sucre</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>1.5</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>3.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>3.0</td>\n",
" <td>Quantité de sucre</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>2 Calcul du volume</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>Calcul du volume</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>2 Nombre de pots</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>Nombre de pots</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>3 Dessin de l'étiquette</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>Dessin de l'étiquette</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>3 Mise à l'echelle</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>Mise à l'echelle</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>3 Longueur de l'étiquette</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>Longueur de l'étiquette</td>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>26 rows × 30 columns</p>\n",
"</div>"
],
"text/plain": [
" index b'abdallah alaoui taiassima' \\\n",
"0 1 et 2 Suivre le programme 3 \n",
"1 3 Renverser le programme 0 \n",
"2 4 Toujours la même chose 0 \n",
"3 4 Développer F 0 \n",
"4 1 Fraction réponse 4 \n",
"5 1 Notation et vocabulaire 6 \n",
"6 2 Arbre de probabilité 0 \n",
"7 1 et 2 Raisonnement pour choisir 2 \n",
"8 1 et 2 Décomposer le problème 2 \n",
"9 1 et 2 Choix des opérations et calculs 0 \n",
"10 3 Composition des réductions 0 \n",
"11 1 Logique de la réponse 0 \n",
"12 1 Calculs des indicateurs 0 \n",
"13 1 Clarté des explications 0 \n",
"14 2 Calculs 0 \n",
"15 2 Validité des réponses 0 \n",
"16 2 Tests des possibilités 0 \n",
"17 Reconnaitre les théorèmes 2 \n",
"18 Validité des calculs 0 \n",
"19 Suivi du raisonnement géométrique 0 \n",
"20 1 Quantité de sucre 0 \n",
"21 2 Calcul du volume 0 \n",
"22 2 Nombre de pots 0 \n",
"23 3 Dessin de l'étiquette 0 \n",
"24 3 Mise à l'echelle 0 \n",
"25 3 Longueur de l'étiquette 0 \n",
"\n",
" b'adani ismou' b'ahamada dhoulkamal' b'ahamadi asbahati' \\\n",
"0 6.0 2.0 0 \n",
"1 3.0 0.0 0 \n",
"2 2.0 0.0 0 \n",
"3 0.0 1.0 0 \n",
"4 4.0 4.0 4 \n",
"5 0.0 6.0 8 \n",
"6 0.0 0.0 0 \n",
"7 1.0 3.0 5 \n",
"8 2.0 3.0 5 \n",
"9 1.0 0.0 2 \n",
"10 0.0 1.0 1 \n",
"11 3.0 3.0 3 \n",
"12 2.0 3.0 3 \n",
"13 1.0 3.0 3 \n",
"14 1.5 0.0 3 \n",
"15 1.5 1.5 3 \n",
"16 0.0 0.0 3 \n",
"17 2.0 4.0 3 \n",
"18 0.0 3.0 3 \n",
"19 0.0 1.0 3 \n",
"20 0.0 0.0 3 \n",
"21 0.0 1.0 0 \n",
"22 0.0 0.0 0 \n",
"23 0.0 0.0 0 \n",
"24 0.0 0.0 0 \n",
"25 0.0 0.0 0 \n",
"\n",
" b'ahamadi ousseni ansufidine' b'ahamed fayadhi' b'ahmed said hadaita' \\\n",
"0 0.0 0.0 2 \n",
"1 0.0 0.0 0 \n",
"2 0.0 0.0 0 \n",
"3 1.0 0.0 1 \n",
"4 3.0 4.0 4 \n",
"5 3.0 6.0 8 \n",
"6 0.0 0.0 0 \n",
"7 2.0 1.0 5 \n",
"8 1.0 1.0 5 \n",
"9 0.0 0.0 4 \n",
"10 0.0 0.0 2 \n",
"11 1.5 0.5 3 \n",
"12 1.5 0.5 3 \n",
"13 1.0 0.0 3 \n",
"14 0.0 0.0 3 \n",
"15 0.0 0.0 3 \n",
"16 0.0 0.0 3 \n",
"17 5.0 2.0 6 \n",
"18 0.0 1.0 6 \n",
"19 1.0 1.0 5 \n",
"20 0.0 1.5 0 \n",
"21 0.0 0.0 0 \n",
"22 0.0 0.0 0 \n",
"23 0.0 0.0 0 \n",
"24 0.0 0.0 0 \n",
"25 0.0 0.0 0 \n",
"\n",
" b'ali madi anissa' b'ali raydel' ... b'ibrahim nassur' \\\n",
"0 6 6.0 ... 6.0 \n",
"1 0 3.0 ... 1.5 \n",
"2 3 0.0 ... 0.0 \n",
"3 1 0.0 ... 0.0 \n",
"4 4 4.0 ... 4.0 \n",
"5 8 0.0 ... 1.0 \n",
"6 0 0.0 ... 0.0 \n",
"7 5 4.0 ... 2.0 \n",
"8 5 2.5 ... 2.0 \n",
"9 1 0.0 ... 0.0 \n",
"10 0 0.0 ... 1.0 \n",
"11 3 0.0 ... 3.0 \n",
"12 3 0.0 ... 3.0 \n",
"13 3 0.0 ... 3.0 \n",
"14 3 0.0 ... 0.0 \n",
"15 3 0.0 ... 0.0 \n",
"16 2 0.0 ... 0.0 \n",
"17 4 6.0 ... 3.0 \n",
"18 3 6.0 ... 2.0 \n",
"19 3 4.0 ... 0.0 \n",
"20 3 0.0 ... 3.0 \n",
"21 0 0.0 ... 0.0 \n",
"22 0 0.0 ... 0.0 \n",
"23 0 0.0 ... 0.0 \n",
"24 0 0.0 ... 0.0 \n",
"25 0 0.0 ... 0.0 \n",
"\n",
" b'inoussa anchoura' b'mohamed nadia' b'mouhoudhoire izak' \\\n",
"0 NaN 1.0 4 \n",
"1 NaN 0.0 0 \n",
"2 NaN 0.0 0 \n",
"3 NaN 1.5 1 \n",
"4 NaN 4.0 4 \n",
"5 NaN 2.0 6 \n",
"6 NaN 0.0 0 \n",
"7 NaN 4.0 2 \n",
"8 NaN 3.0 1 \n",
"9 NaN 1.0 0 \n",
"10 NaN 0.0 0 \n",
"11 NaN 0.0 0 \n",
"12 NaN 1.0 0 \n",
"13 NaN 0.0 0 \n",
"14 NaN 0.0 0 \n",
"15 NaN 0.0 0 \n",
"16 NaN 0.0 0 \n",
"17 NaN 3.0 6 \n",
"18 NaN 0.0 3 \n",
"19 NaN 1.0 4 \n",
"20 NaN 0.0 0 \n",
"21 NaN 0.0 0 \n",
"22 NaN 0.0 0 \n",
"23 NaN 0.0 0 \n",
"24 NaN 0.0 0 \n",
"25 NaN 0.0 0 \n",
"\n",
" b'moussri bakari' b'said ftoumia' b'zakotra claudian' \\\n",
"0 0 0 2 \n",
"1 0 0 2 \n",
"2 0 0 0 \n",
"3 2 0 3 \n",
"4 4 4 4 \n",
"5 5 6 8 \n",
"6 0 0 0 \n",
"7 4 1 3 \n",
"8 4 1 3 \n",
"9 1 0 0 \n",
"10 0 0 0 \n",
"11 0 3 3 \n",
"12 0 3 3 \n",
"13 0 3 3 \n",
"14 0 0 0 \n",
"15 0 3 0 \n",
"16 0 0 0 \n",
"17 3 5 6 \n",
"18 4 6 4 \n",
"19 3 6 4 \n",
"20 3 0 3 \n",
"21 1 1 0 \n",
"22 0 0 0 \n",
"23 0 0 0 \n",
"24 0 0 0 \n",
"25 0 0 0 \n",
"\n",
" b'toufail salahou' q_comment q_name \n",
"0 1.0 et 2 Suivre le programme 1 \n",
"1 0.0 Renverser le programme 3 \n",
"2 0.0 Toujours la même chose 4 \n",
"3 1.0 Développer F 4 \n",
"4 4.0 Fraction réponse 1 \n",
"5 3.0 Notation et vocabulaire 1 \n",
"6 0.0 Arbre de probabilité 2 \n",
"7 5.0 et 2 Raisonnement pour choisir 1 \n",
"8 5.0 et 2 Décomposer le problème 1 \n",
"9 3.0 et 2 Choix des opérations et calculs 1 \n",
"10 1.0 Composition des réductions 3 \n",
"11 3.0 Logique de la réponse 1 \n",
"12 1.5 Calculs des indicateurs 1 \n",
"13 2.0 Clarté des explications 1 \n",
"14 0.0 Calculs 2 \n",
"15 0.0 Validité des réponses 2 \n",
"16 0.0 Tests des possibilités 2 \n",
"17 6.0 Reconnaitre les théorèmes \n",
"18 5.0 Validité des calculs \n",
"19 5.0 Suivi du raisonnement géométrique \n",
"20 3.0 Quantité de sucre 1 \n",
"21 1.0 Calcul du volume 2 \n",
"22 0.0 Nombre de pots 2 \n",
"23 0.0 Dessin de l'étiquette 3 \n",
"24 0.0 Mise à l'echelle 3 \n",
"25 0.0 Longueur de l'étiquette 3 \n",
"\n",
"[26 rows x 30 columns]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = df.assign(\n",
" q_name = df[\"index\"].apply(lambda x: x.split(\" \")[0]),\n",
" q_comment = df[\"index\"].apply(lambda x: \" \".join(x.split(\" \")[1:])),\n",
" )\n",
"df"
]
},
{
"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>index</th>\n",
" <th>q_name</th>\n",
" <th>q_comment</th>\n",
" <th>level_3</th>\n",
" <th>0</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1 et 2 Suivre le programme</td>\n",
" <td>1</td>\n",
" <td>et 2 Suivre le programme</td>\n",
" <td>b'abdallah alaoui taiassima'</td>\n",
" <td>3.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1 et 2 Suivre le programme</td>\n",
" <td>1</td>\n",
" <td>et 2 Suivre le programme</td>\n",
" <td>b'adani ismou'</td>\n",
" <td>6.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1 et 2 Suivre le programme</td>\n",
" <td>1</td>\n",
" <td>et 2 Suivre le programme</td>\n",
" <td>b'ahamada dhoulkamal'</td>\n",
" <td>2.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1 et 2 Suivre le programme</td>\n",
" <td>1</td>\n",
" <td>et 2 Suivre le programme</td>\n",
" <td>b'ahamadi asbahati'</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1 et 2 Suivre le programme</td>\n",
" <td>1</td>\n",
" <td>et 2 Suivre le programme</td>\n",
" <td>b'ahamadi ousseni ansufidine'</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" index q_name q_comment \\\n",
"0 1 et 2 Suivre le programme 1 et 2 Suivre le programme \n",
"1 1 et 2 Suivre le programme 1 et 2 Suivre le programme \n",
"2 1 et 2 Suivre le programme 1 et 2 Suivre le programme \n",
"3 1 et 2 Suivre le programme 1 et 2 Suivre le programme \n",
"4 1 et 2 Suivre le programme 1 et 2 Suivre le programme \n",
"\n",
" level_3 0 \n",
"0 b'abdallah alaoui taiassima' 3.0 \n",
"1 b'adani ismou' 6.0 \n",
"2 b'ahamada dhoulkamal' 2.0 \n",
"3 b'ahamadi asbahati' 0.0 \n",
"4 b'ahamadi ousseni ansufidine' 0.0 "
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = df.set_index([\"index\", \"q_name\", \"q_comment\"]).stack().reset_index()\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = df.rename(columns={0:\"value\", \"level_3\": \"norm_surname\"})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Il ne reste plus qu'à trouver les correspondances avec la base de données."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"sqlite_datas = pull_sqlite(34, conn)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Les élèves"
]
},
{
"cell_type": "code",
"execution_count": 27,
"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",
" <th>norm_surname</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>ABDALLAH ALLAOUI</td>\n",
" <td>Taiassima</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>ADANI</td>\n",
" <td>Ismou</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>AHAMADA</td>\n",
" <td>Dhoulkamal</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>AHAMADI</td>\n",
" <td>Asbahati</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>AHAMADI OUSSENI</td>\n",
" <td>Ansufiddine</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id name surname mail commment tribe_id norm_surname\n",
"0 1 ABDALLAH ALLAOUI Taiassima None 1 NaN\n",
"1 2 ADANI Ismou None 1 NaN\n",
"2 3 AHAMADA Dhoulkamal None 1 NaN\n",
"3 4 AHAMADI Asbahati None 1 NaN\n",
"4 5 AHAMADI OUSSENI Ansufiddine None 1 NaN"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def tmp()\n",
"st_df = sqlite_datas[\"students\"]\n",
"st_df = st_df.assign(\n",
" norm_surname = st_df[[\"surname\", \"name\"]].apply(lambda x: normalize_str(\" \".join(x)))\n",
")\n",
"st_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = pd.merge(df, st_df, left_on='norm_surname', right_on=\"norm_surname\")[[\"q_comment\", \"id\", \"value\"]]"
]
},
{
"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>q_comment</th>\n",
" <th>id</th>\n",
" <th>value</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Empty DataFrame\n",
"Columns: [q_comment, id, value]\n",
"Index: []"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Les questions"
]
},
{
"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>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>369</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>114</td>\n",
" <td>Mod</td>\n",
" <td>Geometrie</td>\n",
" <td>Reconnaitre Pythagore</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>370</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>114</td>\n",
" <td>Cal</td>\n",
" <td>Geometrie</td>\n",
" <td>Calculs</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>371</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>114</td>\n",
" <td>Rep</td>\n",
" <td>Geometrie</td>\n",
" <td>Calcul de l'aire</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>372</td>\n",
" <td>1.a</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>115</td>\n",
" <td>Cher</td>\n",
" <td>Statistiques</td>\n",
" <td>Lecture de tableau</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>373</td>\n",
" <td>1.b et 2.b</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>115</td>\n",
" <td>Rep</td>\n",
" <td>Statistiques</td>\n",
" <td>Minimum et maximum</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id name score_rate is_leveled exercise_id competence \\\n",
"0 369 1 3 0 114 Mod \n",
"1 370 1 3 0 114 Cal \n",
"2 371 2 4 0 114 Rep \n",
"0 372 1.a 3 0 115 Cher \n",
"1 373 1.b et 2.b 3 0 115 Rep \n",
"\n",
" domain comment \n",
"0 Geometrie Reconnaitre Pythagore \n",
"1 Geometrie Calculs \n",
"2 Geometrie Calcul de l'aire \n",
"0 Statistiques Lecture de tableau \n",
"1 Statistiques Minimum et maximum "
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"q_df = sqlite_datas[\"questions\"]\n",
"q_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = pd.merge(df, q_df, left_on=\"q_comment\", right_on=\"comment\")[[\"id_x\", \"id_y\", \"value\"]]\\\n",
" .rename(columns={\"id_x\": \"student_id\", \"id_y\": \"question_id\"})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Yes ça y est je dois les avoir!"
]
},
{
"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>value</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>27</td>\n",
" <td>369</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>28</td>\n",
" <td>369</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>29</td>\n",
" <td>369</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>30</td>\n",
" <td>369</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>32</td>\n",
" <td>369</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" student_id question_id value\n",
"0 27 369 3\n",
"1 28 369 0\n",
"2 29 369 3\n",
"3 30 369 3\n",
"4 32 369 1"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Et maintenant on sauvegarde tout!"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df.to_sql(\"score\", conn, if_exists='append', index=False)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'fdsqfdsq' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-30-a7adbbdd0ac1>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mfdsqfdsq\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mNameError\u001b[0m: name 'fdsqfdsq' is not defined"
]
}
],
"source": [
"fdsqfdsq"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Fait au DNB blanc 1"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"wb = xlsxwriter.Workbook(\"DNB_BLANC_pro1.xlsx\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Formatages"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"eval_format = wb.add_format({'bold': True, 'font_color': 'red'})\n",
"eval_cell = wb.add_format()\n",
"eval_cell.set_bg_color(\"red\")\n",
"# exo_cell"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La feuille de calcul"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"wb = xlsxwriter.Workbook(\"DS4_302.xlsx\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ws = wb.add_worksheet()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"En tête du tableau"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ws.write(0,1,\"Competence\")\n",
"ws.write(0,2,\"Barème\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Toutes les questions et exercices"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def q_line(q, row, ws):\n",
" ws.write(row, 0, f\"{q.name} - {q.comment}\")\n",
" ws.write(row, 1, f\"{q.competence}\")\n",
" ws.write(row, 2, q.score_rate)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def exo_block(exo, row, ws):\n",
" qrow = row\n",
" for q in exo[\"questions\"]:\n",
" qrow += 1\n",
" q_line(q, qrow, ws)\n",
" ws.write(row, 0, f\"Ex {exo['name']}\")\n",
" row_range = \", \".join([f\"C{i}\" for i in range(row+2, qrow+2)])\n",
" for i in range(30):\n",
" ws.write(row, i+2, f\"=SUM({row_range})\")\n",
" return qrow"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"scrolled": false
},
"outputs": [],
"source": [
"row = 2\n",
"exo_rows = []\n",
"for exo in ev.exercises:\n",
" exo_rows.append(row)\n",
" row = exo_block(exo, row, ws) + 1\n",
"ws.write(1,0, ev.name, eval_format)\n",
"exo_xls_range = \", \".join([f\"C{i+1}\" for i in exo_rows])\n",
"for i in range(30):\n",
" ws.write(1,i+2, f\"=SUM({exo_xls_range})\", eval_format)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"wb.close()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Avec openpyxl"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from openpyxl import Workbook\n",
"from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font, colors"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"colors.RED"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"wb = Workbook()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ws = wb.create_sheet(ev.name)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ws.cell(1,2,\"Competence\")\n",
"ws.cell(1,3,\"Barème\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def q_line(q, row, ws):\n",
" ws.cell(row, 1, f\"{q.name} - {q.comment}\")\n",
" ws.cell(row, 2, f\"{q.competence}\")\n",
" ws.cell(row, 3, q.score_rate)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def exo_block(exo, row, ws):\n",
" qrow = row\n",
" for q in exo[\"questions\"]:\n",
" qrow += 1\n",
" q_line(q, qrow, ws)\n",
" ws.cell(row, 1, f\"Ex {exo['name']}\")\n",
" row_range = \", \".join([f\"C{i}\" for i in range(row+1, qrow+1)])\n",
" ws.cell(row, 3, f\"=SUM({row_range})\")\n",
" return qrow"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"row = 3\n",
"exo_rows = []\n",
"for exo in ev.exercises:\n",
" exo_rows.append(row)\n",
" row = exo_block(exo, row, ws) + 1\n",
"eval_row = ws.row_dimensions[2]\n",
"eval_row.fill = PatternFill(bgColor=colors.RED)\n",
"ws.cell(2,1, ev.name)\n",
"exo_xls_range = \", \".join([f\"C{i}\" for i in exo_rows])\n",
"ws.cell(2,3, f\"=SUM({exo_xls_range})\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ev.tribe"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"wb.save(f\"./{ev.name}-{ev.tribe}.xlsx\")"
]
},
{
"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.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}