2526 lines
78 KiB
Plaintext
2526 lines
78 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"metadata": {
|
||
"collapsed": true
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import xlsxwriter"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"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": 3,
|
||
"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": 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>competence</th>\n",
|
||
" <th>Barème</th>\n",
|
||
" <th>A. Rachma</th>\n",
|
||
" <th>A. kassim</th>\n",
|
||
" <th>A. Irchadi</th>\n",
|
||
" <th>A. Mikidadi</th>\n",
|
||
" <th>A. Zaidou</th>\n",
|
||
" <th>B. Rakchat</th>\n",
|
||
" <th>B. Chadia</th>\n",
|
||
" <th>C. Faycoil</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>S. Nadjoi</th>\n",
|
||
" <th>S. Rachida</th>\n",
|
||
" <th>S. Hairidine</th>\n",
|
||
" <th>T. Zoubert</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</th>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>116</td>\n",
|
||
" <td>51</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>63</td>\n",
|
||
" <td>53</td>\n",
|
||
" <td>27</td>\n",
|
||
" <td>17</td>\n",
|
||
" <td>32</td>\n",
|
||
" <td>26</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>49</td>\n",
|
||
" <td>28</td>\n",
|
||
" <td>12</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>35.952381</td>\n",
|
||
" <td>10.0</td>\n",
|
||
" <td>25.0</td>\n",
|
||
" <td>32.0</td>\n",
|
||
" <td>51.0</td>\n",
|
||
" <td>70.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>Ex 1 - Le fameux triangle</th>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>5</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>9</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>5</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>7</td>\n",
|
||
" <td>6</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3.857143</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>7.0</td>\n",
|
||
" <td>10.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1 Reconnaitre Pythagore</th>\n",
|
||
" <td>Mod</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.571429</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>2.0</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1 Calculs</th>\n",
|
||
" <td>Cal</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1.428571</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>2.0</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2 Calcul de l'aire</th>\n",
|
||
" <td>Rep</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0.857143</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>4.0</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>5 rows × 29 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" competence Barème A. Rachma A. kassim \\\n",
|
||
"DNB blanc 2 NaN 116 51 10 \n",
|
||
"Ex 1 - Le fameux triangle NaN 10 5 0 \n",
|
||
"1 Reconnaitre Pythagore Mod 3 3 0 \n",
|
||
"1 Calculs Cal 3 2 0 \n",
|
||
"2 Calcul de l'aire Rep 4 0 0 \n",
|
||
"\n",
|
||
" A. Irchadi A. Mikidadi A. Zaidou B. Rakchat \\\n",
|
||
"DNB blanc 2 63 53 27 17 \n",
|
||
"Ex 1 - Le fameux triangle 10 9 3 0 \n",
|
||
"1 Reconnaitre Pythagore 3 3 1 0 \n",
|
||
"1 Calculs 3 3 2 0 \n",
|
||
"2 Calcul de l'aire 4 3 0 0 \n",
|
||
"\n",
|
||
" B. Chadia C. Faycoil ... S. Nadjoi S. Rachida \\\n",
|
||
"DNB blanc 2 32 26 ... 49 28 \n",
|
||
"Ex 1 - Le fameux triangle 5 0 ... 7 6 \n",
|
||
"1 Reconnaitre Pythagore 3 0 ... 3 3 \n",
|
||
"1 Calculs 2 0 ... 3 3 \n",
|
||
"2 Calcul de l'aire 0 0 ... 1 0 \n",
|
||
"\n",
|
||
" S. Hairidine T. Zoubert Moyenne Min Q1 \\\n",
|
||
"DNB blanc 2 12 10 35.952381 10.0 25.0 \n",
|
||
"Ex 1 - Le fameux triangle 0 0 3.857143 0.0 0.0 \n",
|
||
"1 Reconnaitre Pythagore 0 0 1.571429 0.0 0.0 \n",
|
||
"1 Calculs 0 0 1.428571 0.0 0.0 \n",
|
||
"2 Calcul de l'aire 0 0 0.857143 0.0 0.0 \n",
|
||
"\n",
|
||
" me Q3 max \n",
|
||
"DNB blanc 2 32.0 51.0 70.0 \n",
|
||
"Ex 1 - Le fameux triangle 3.0 7.0 10.0 \n",
|
||
"1 Reconnaitre Pythagore 2.0 3.0 3.0 \n",
|
||
"1 Calculs 2.0 3.0 3.0 \n",
|
||
"2 Calcul de l'aire 0.0 1.0 4.0 \n",
|
||
"\n",
|
||
"[5 rows x 29 columns]"
|
||
]
|
||
},
|
||
"execution_count": 15,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"df = pd.read_excel(\"./DNB_blanc2/DNB2_306.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": 16,
|
||
"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": 17,
|
||
"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'rachma'</th>\n",
|
||
" <th>b'kassim'</th>\n",
|
||
" <th>b'irchadi'</th>\n",
|
||
" <th>b'mikidadi'</th>\n",
|
||
" <th>b'zaidou'</th>\n",
|
||
" <th>b'rakchat'</th>\n",
|
||
" <th>b'chadia'</th>\n",
|
||
" <th>b'faycoil'</th>\n",
|
||
" <th>b'djael'</th>\n",
|
||
" <th>b'doulka-rynaini'</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>b'chamsidine'</th>\n",
|
||
" <th>b'dania'</th>\n",
|
||
" <th>b'issoufi'</th>\n",
|
||
" <th>b'el-fahar'</th>\n",
|
||
" <th>b'fayadhui'</th>\n",
|
||
" <th>b'dalila'</th>\n",
|
||
" <th>b'nadjoi'</th>\n",
|
||
" <th>b'rachida'</th>\n",
|
||
" <th>b'hairidine'</th>\n",
|
||
" <th>b'zoubert'</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>DNB blanc 2</th>\n",
|
||
" <td>51</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>63</td>\n",
|
||
" <td>53</td>\n",
|
||
" <td>27</td>\n",
|
||
" <td>17</td>\n",
|
||
" <td>32</td>\n",
|
||
" <td>26</td>\n",
|
||
" <td>39</td>\n",
|
||
" <td>27</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>33</td>\n",
|
||
" <td>67</td>\n",
|
||
" <td>70</td>\n",
|
||
" <td>59</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>47</td>\n",
|
||
" <td>49</td>\n",
|
||
" <td>28</td>\n",
|
||
" <td>12</td>\n",
|
||
" <td>10</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>Ex 1 - Le fameux triangle</th>\n",
|
||
" <td>5</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>10</td>\n",
|
||
" <td>9</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>5</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>9</td>\n",
|
||
" <td>8</td>\n",
|
||
" <td>8</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>7</td>\n",
|
||
" <td>7</td>\n",
|
||
" <td>6</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1 Reconnaitre Pythagore</th>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1 Calculs</th>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2 Calcul de l'aire</th>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>5 rows × 21 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" b'rachma' b'kassim' b'irchadi' b'mikidadi' \\\n",
|
||
"DNB blanc 2 51 10 63 53 \n",
|
||
"Ex 1 - Le fameux triangle 5 0 10 9 \n",
|
||
"1 Reconnaitre Pythagore 3 0 3 3 \n",
|
||
"1 Calculs 2 0 3 3 \n",
|
||
"2 Calcul de l'aire 0 0 4 3 \n",
|
||
"\n",
|
||
" b'zaidou' b'rakchat' b'chadia' b'faycoil' \\\n",
|
||
"DNB blanc 2 27 17 32 26 \n",
|
||
"Ex 1 - Le fameux triangle 3 0 5 0 \n",
|
||
"1 Reconnaitre Pythagore 1 0 3 0 \n",
|
||
"1 Calculs 2 0 2 0 \n",
|
||
"2 Calcul de l'aire 0 0 0 0 \n",
|
||
"\n",
|
||
" b'djael' b'doulka-rynaini' ... \\\n",
|
||
"DNB blanc 2 39 27 ... \n",
|
||
"Ex 1 - Le fameux triangle 1 0 ... \n",
|
||
"1 Reconnaitre Pythagore 0 0 ... \n",
|
||
"1 Calculs 0 0 ... \n",
|
||
"2 Calcul de l'aire 1 0 ... \n",
|
||
"\n",
|
||
" b'chamsidine' b'dania' b'issoufi' b'el-fahar' \\\n",
|
||
"DNB blanc 2 33 67 70 59 \n",
|
||
"Ex 1 - Le fameux triangle 3 9 8 8 \n",
|
||
"1 Reconnaitre Pythagore 2 3 3 3 \n",
|
||
"1 Calculs 1 2 3 3 \n",
|
||
"2 Calcul de l'aire 0 4 2 2 \n",
|
||
"\n",
|
||
" b'fayadhui' b'dalila' b'nadjoi' b'rachida' \\\n",
|
||
"DNB blanc 2 10 47 49 28 \n",
|
||
"Ex 1 - Le fameux triangle 0 7 7 6 \n",
|
||
"1 Reconnaitre Pythagore 0 3 3 3 \n",
|
||
"1 Calculs 0 3 3 3 \n",
|
||
"2 Calcul de l'aire 0 1 1 0 \n",
|
||
"\n",
|
||
" b'hairidine' b'zoubert' \n",
|
||
"DNB blanc 2 12 10 \n",
|
||
"Ex 1 - Le fameux triangle 0 0 \n",
|
||
"1 Reconnaitre Pythagore 0 0 \n",
|
||
"1 Calculs 0 0 \n",
|
||
"2 Calcul de l'aire 0 0 \n",
|
||
"\n",
|
||
"[5 rows x 21 columns]"
|
||
]
|
||
},
|
||
"execution_count": 17,
|
||
"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.split(\". \")[-1]) 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": 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>b'rachma'</th>\n",
|
||
" <th>b'kassim'</th>\n",
|
||
" <th>b'irchadi'</th>\n",
|
||
" <th>b'mikidadi'</th>\n",
|
||
" <th>b'zaidou'</th>\n",
|
||
" <th>b'rakchat'</th>\n",
|
||
" <th>b'chadia'</th>\n",
|
||
" <th>b'faycoil'</th>\n",
|
||
" <th>b'djael'</th>\n",
|
||
" <th>b'doulka-rynaini'</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>b'chamsidine'</th>\n",
|
||
" <th>b'dania'</th>\n",
|
||
" <th>b'issoufi'</th>\n",
|
||
" <th>b'el-fahar'</th>\n",
|
||
" <th>b'fayadhui'</th>\n",
|
||
" <th>b'dalila'</th>\n",
|
||
" <th>b'nadjoi'</th>\n",
|
||
" <th>b'rachida'</th>\n",
|
||
" <th>b'hairidine'</th>\n",
|
||
" <th>b'zoubert'</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>1 Reconnaitre Pythagore</th>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1 Calculs</th>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2 Calcul de l'aire</th>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3 Commentaire de Tristan</th>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1.a Lecture de tableau</th>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>5 rows × 21 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" b'rachma' b'kassim' b'irchadi' b'mikidadi' \\\n",
|
||
"1 Reconnaitre Pythagore 3 0 3 3 \n",
|
||
"1 Calculs 2 0 3 3 \n",
|
||
"2 Calcul de l'aire 0 0 4 3 \n",
|
||
"3 Commentaire de Tristan 1 0 2 2 \n",
|
||
"1.a Lecture de tableau 3 0 3 3 \n",
|
||
"\n",
|
||
" b'zaidou' b'rakchat' b'chadia' b'faycoil' \\\n",
|
||
"1 Reconnaitre Pythagore 1 0 3 0 \n",
|
||
"1 Calculs 2 0 2 0 \n",
|
||
"2 Calcul de l'aire 0 0 0 0 \n",
|
||
"3 Commentaire de Tristan 0 0 0 0 \n",
|
||
"1.a Lecture de tableau 3 3 3 3 \n",
|
||
"\n",
|
||
" b'djael' b'doulka-rynaini' ... \\\n",
|
||
"1 Reconnaitre Pythagore 0 0 ... \n",
|
||
"1 Calculs 0 0 ... \n",
|
||
"2 Calcul de l'aire 1 0 ... \n",
|
||
"3 Commentaire de Tristan 3 0 ... \n",
|
||
"1.a Lecture de tableau 3 0 ... \n",
|
||
"\n",
|
||
" b'chamsidine' b'dania' b'issoufi' b'el-fahar' \\\n",
|
||
"1 Reconnaitre Pythagore 2 3 3 3 \n",
|
||
"1 Calculs 1 2 3 3 \n",
|
||
"2 Calcul de l'aire 0 4 2 2 \n",
|
||
"3 Commentaire de Tristan 1 2 1 0 \n",
|
||
"1.a Lecture de tableau 3 3 3 3 \n",
|
||
"\n",
|
||
" b'fayadhui' b'dalila' b'nadjoi' b'rachida' \\\n",
|
||
"1 Reconnaitre Pythagore 0 3 3 3 \n",
|
||
"1 Calculs 0 3 3 3 \n",
|
||
"2 Calcul de l'aire 0 1 1 0 \n",
|
||
"3 Commentaire de Tristan 0 1 0 0 \n",
|
||
"1.a Lecture de tableau 0 3 3 3 \n",
|
||
"\n",
|
||
" b'hairidine' b'zoubert' \n",
|
||
"1 Reconnaitre Pythagore 0 0 \n",
|
||
"1 Calculs 0 0 \n",
|
||
"2 Calcul de l'aire 0 0 \n",
|
||
"3 Commentaire de Tristan 0 0 \n",
|
||
"1.a Lecture de tableau 0 0 \n",
|
||
"\n",
|
||
"[5 rows x 21 columns]"
|
||
]
|
||
},
|
||
"execution_count": 18,
|
||
"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.head()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 19,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style>\n",
|
||
" .dataframe thead tr:only-child th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: left;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>index</th>\n",
|
||
" <th>b'rachma'</th>\n",
|
||
" <th>b'kassim'</th>\n",
|
||
" <th>b'irchadi'</th>\n",
|
||
" <th>b'mikidadi'</th>\n",
|
||
" <th>b'zaidou'</th>\n",
|
||
" <th>b'rakchat'</th>\n",
|
||
" <th>b'chadia'</th>\n",
|
||
" <th>b'faycoil'</th>\n",
|
||
" <th>b'djael'</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>b'chamsidine'</th>\n",
|
||
" <th>b'dania'</th>\n",
|
||
" <th>b'issoufi'</th>\n",
|
||
" <th>b'el-fahar'</th>\n",
|
||
" <th>b'fayadhui'</th>\n",
|
||
" <th>b'dalila'</th>\n",
|
||
" <th>b'nadjoi'</th>\n",
|
||
" <th>b'rachida'</th>\n",
|
||
" <th>b'hairidine'</th>\n",
|
||
" <th>b'zoubert'</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>1 Reconnaitre Pythagore</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>1 Calculs</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>2 Calcul de l'aire</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>3 Commentaire de Tristan</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>1.a Lecture de tableau</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>5 rows × 22 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" index b'rachma' b'kassim' b'irchadi' b'mikidadi' \\\n",
|
||
"0 1 Reconnaitre Pythagore 3 0 3 3 \n",
|
||
"1 1 Calculs 2 0 3 3 \n",
|
||
"2 2 Calcul de l'aire 0 0 4 3 \n",
|
||
"3 3 Commentaire de Tristan 1 0 2 2 \n",
|
||
"4 1.a Lecture de tableau 3 0 3 3 \n",
|
||
"\n",
|
||
" b'zaidou' b'rakchat' b'chadia' b'faycoil' b'djael' ... \\\n",
|
||
"0 1 0 3 0 0 ... \n",
|
||
"1 2 0 2 0 0 ... \n",
|
||
"2 0 0 0 0 1 ... \n",
|
||
"3 0 0 0 0 3 ... \n",
|
||
"4 3 3 3 3 3 ... \n",
|
||
"\n",
|
||
" b'chamsidine' b'dania' b'issoufi' b'el-fahar' b'fayadhui' b'dalila' \\\n",
|
||
"0 2 3 3 3 0 3 \n",
|
||
"1 1 2 3 3 0 3 \n",
|
||
"2 0 4 2 2 0 1 \n",
|
||
"3 1 2 1 0 0 1 \n",
|
||
"4 3 3 3 3 0 3 \n",
|
||
"\n",
|
||
" b'nadjoi' b'rachida' b'hairidine' b'zoubert' \n",
|
||
"0 3 3 0 0 \n",
|
||
"1 3 3 0 0 \n",
|
||
"2 1 0 0 0 \n",
|
||
"3 0 0 0 0 \n",
|
||
"4 3 3 0 0 \n",
|
||
"\n",
|
||
"[5 rows x 22 columns]"
|
||
]
|
||
},
|
||
"execution_count": 19,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"df = df.reset_index()\n",
|
||
"df.head()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 20,
|
||
"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'rachma'</th>\n",
|
||
" <th>b'kassim'</th>\n",
|
||
" <th>b'irchadi'</th>\n",
|
||
" <th>b'mikidadi'</th>\n",
|
||
" <th>b'zaidou'</th>\n",
|
||
" <th>b'rakchat'</th>\n",
|
||
" <th>b'chadia'</th>\n",
|
||
" <th>b'faycoil'</th>\n",
|
||
" <th>b'djael'</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>b'issoufi'</th>\n",
|
||
" <th>b'el-fahar'</th>\n",
|
||
" <th>b'fayadhui'</th>\n",
|
||
" <th>b'dalila'</th>\n",
|
||
" <th>b'nadjoi'</th>\n",
|
||
" <th>b'rachida'</th>\n",
|
||
" <th>b'hairidine'</th>\n",
|
||
" <th>b'zoubert'</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 Reconnaitre Pythagore</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>Reconnaitre Pythagore</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>1 Calculs</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>Calculs</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>2 Calcul de l'aire</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>Calcul de l'aire</td>\n",
|
||
" <td>2</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>3 Commentaire de Tristan</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>Commentaire de Tristan</td>\n",
|
||
" <td>3</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>1.a Lecture de tableau</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>Lecture de tableau</td>\n",
|
||
" <td>1.a</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>5 rows × 24 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" index b'rachma' b'kassim' b'irchadi' b'mikidadi' \\\n",
|
||
"0 1 Reconnaitre Pythagore 3 0 3 3 \n",
|
||
"1 1 Calculs 2 0 3 3 \n",
|
||
"2 2 Calcul de l'aire 0 0 4 3 \n",
|
||
"3 3 Commentaire de Tristan 1 0 2 2 \n",
|
||
"4 1.a Lecture de tableau 3 0 3 3 \n",
|
||
"\n",
|
||
" b'zaidou' b'rakchat' b'chadia' b'faycoil' b'djael' ... b'issoufi' \\\n",
|
||
"0 1 0 3 0 0 ... 3 \n",
|
||
"1 2 0 2 0 0 ... 3 \n",
|
||
"2 0 0 0 0 1 ... 2 \n",
|
||
"3 0 0 0 0 3 ... 1 \n",
|
||
"4 3 3 3 3 3 ... 3 \n",
|
||
"\n",
|
||
" b'el-fahar' b'fayadhui' b'dalila' b'nadjoi' b'rachida' b'hairidine' \\\n",
|
||
"0 3 0 3 3 3 0 \n",
|
||
"1 3 0 3 3 3 0 \n",
|
||
"2 2 0 1 1 0 0 \n",
|
||
"3 0 0 1 0 0 0 \n",
|
||
"4 3 0 3 3 3 0 \n",
|
||
"\n",
|
||
" b'zoubert' q_comment q_name \n",
|
||
"0 0 Reconnaitre Pythagore 1 \n",
|
||
"1 0 Calculs 1 \n",
|
||
"2 0 Calcul de l'aire 2 \n",
|
||
"3 0 Commentaire de Tristan 3 \n",
|
||
"4 0 Lecture de tableau 1.a \n",
|
||
"\n",
|
||
"[5 rows x 24 columns]"
|
||
]
|
||
},
|
||
"execution_count": 20,
|
||
"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.head()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 21,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style>\n",
|
||
" .dataframe thead tr:only-child th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: left;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>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 Reconnaitre Pythagore</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>Reconnaitre Pythagore</td>\n",
|
||
" <td>b'rachma'</td>\n",
|
||
" <td>3</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>1 Reconnaitre Pythagore</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>Reconnaitre Pythagore</td>\n",
|
||
" <td>b'kassim'</td>\n",
|
||
" <td>0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>1 Reconnaitre Pythagore</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>Reconnaitre Pythagore</td>\n",
|
||
" <td>b'irchadi'</td>\n",
|
||
" <td>3</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>1 Reconnaitre Pythagore</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>Reconnaitre Pythagore</td>\n",
|
||
" <td>b'mikidadi'</td>\n",
|
||
" <td>3</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>1 Reconnaitre Pythagore</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>Reconnaitre Pythagore</td>\n",
|
||
" <td>b'zaidou'</td>\n",
|
||
" <td>1</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" index q_name q_comment level_3 0\n",
|
||
"0 1 Reconnaitre Pythagore 1 Reconnaitre Pythagore b'rachma' 3\n",
|
||
"1 1 Reconnaitre Pythagore 1 Reconnaitre Pythagore b'kassim' 0\n",
|
||
"2 1 Reconnaitre Pythagore 1 Reconnaitre Pythagore b'irchadi' 3\n",
|
||
"3 1 Reconnaitre Pythagore 1 Reconnaitre Pythagore b'mikidadi' 3\n",
|
||
"4 1 Reconnaitre Pythagore 1 Reconnaitre Pythagore b'zaidou' 1"
|
||
]
|
||
},
|
||
"execution_count": 21,
|
||
"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": 22,
|
||
"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": 23,
|
||
"metadata": {
|
||
"collapsed": true
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"sqlite_datas = pull_sqlite(33, conn)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Les élèves"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 24,
|
||
"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>27</td>\n",
|
||
" <td>ABDALLAH</td>\n",
|
||
" <td>Rachma</td>\n",
|
||
" <td></td>\n",
|
||
" <td>None</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>b'rachma'</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>28</td>\n",
|
||
" <td>ABDOU</td>\n",
|
||
" <td>Kassim</td>\n",
|
||
" <td></td>\n",
|
||
" <td>None</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>b'kassim'</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>29</td>\n",
|
||
" <td>AHAMADI</td>\n",
|
||
" <td>Irchadi</td>\n",
|
||
" <td></td>\n",
|
||
" <td>None</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>b'irchadi'</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>30</td>\n",
|
||
" <td>AHAMED</td>\n",
|
||
" <td>Mikidadi</td>\n",
|
||
" <td></td>\n",
|
||
" <td>None</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>b'mikidadi'</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>31</td>\n",
|
||
" <td>ANLI</td>\n",
|
||
" <td>El Anziz</td>\n",
|
||
" <td></td>\n",
|
||
" <td>None</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>b'el anziz'</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" id name surname mail commment tribe_id norm_surname\n",
|
||
"0 27 ABDALLAH Rachma None 2 b'rachma'\n",
|
||
"1 28 ABDOU Kassim None 2 b'kassim'\n",
|
||
"2 29 AHAMADI Irchadi None 2 b'irchadi'\n",
|
||
"3 30 AHAMED Mikidadi None 2 b'mikidadi'\n",
|
||
"4 31 ANLI El Anziz None 2 b'el anziz'"
|
||
]
|
||
},
|
||
"execution_count": 24,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"st_df = sqlite_datas[\"students\"]\n",
|
||
"st_df = st_df.assign(\n",
|
||
" norm_surname = st_df[\"surname\"].apply(normalize_str)\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": "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": {},
|
||
"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
|
||
}
|