2394 lines
130 KiB
Plaintext
2394 lines
130 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pandas as pd\n",
|
|
"import numpy as np\n",
|
|
"%matplotlib inline\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"plt.style.use(\"seaborn-notebook\")\n",
|
|
"#plt.style.use('ggplot')\n",
|
|
"from ipywidgets import interact, interactive, fixed\n",
|
|
"import ipywidgets as widgets\n",
|
|
"from IPython.display import display\n",
|
|
"import seaborn as sns\n",
|
|
"cm = sns.light_palette(\"green\", as_cmap=True)\n",
|
|
"\n",
|
|
"from notes_tools.tools import extract_flat_marks, get_class_ws, digest_flat_df, term, evaluation\n",
|
|
"from notes_tools.tools.bareme import tranform_scale\n",
|
|
"from notes_tools.tools.marks_plottings import *"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div id=\"my_id_menu_nb\">run previous cell, wait for 2 seconds</div>\n",
|
|
"<script>\n",
|
|
"function repeat_indent_string(n){\n",
|
|
" var a = \"\" ;\n",
|
|
" for ( ; n > 0 ; --n) {\n",
|
|
" a += \" \";\n",
|
|
" }\n",
|
|
" return a;\n",
|
|
"}\n",
|
|
"var update_menu_string = function(begin, lfirst, llast, sformat, send, keep_item) {\n",
|
|
" var anchors = document.getElementsByClassName(\"section\");\n",
|
|
" if (anchors.length == 0) {\n",
|
|
" anchors = document.getElementsByClassName(\"text_cell_render rendered_html\");\n",
|
|
" }\n",
|
|
" var i,t;\n",
|
|
" var text_menu = begin;\n",
|
|
" var text_memo = \"<pre>\\nlength:\" + anchors.length + \"\\n\";\n",
|
|
" var ind = \"\";\n",
|
|
" var memo_level = 1;\n",
|
|
" var href;\n",
|
|
" var tags = [];\n",
|
|
" var main_item = 0;\n",
|
|
" for (i = 0; i <= llast; i++) {\n",
|
|
" tags.push(\"h\" + i);\n",
|
|
" }\n",
|
|
"\n",
|
|
" for (i = 0; i < anchors.length; i++) {\n",
|
|
" text_memo += \"**\" + anchors[i].id + \"--\\n\";\n",
|
|
"\n",
|
|
" var child = null;\n",
|
|
" for(t = 0; t < tags.length; t++) {\n",
|
|
" var r = anchors[i].getElementsByTagName(tags[t]);\n",
|
|
" if (r.length > 0) {\n",
|
|
"child = r[0];\n",
|
|
"break;\n",
|
|
" }\n",
|
|
" }\n",
|
|
" if (child == null){\n",
|
|
" text_memo += \"null\\n\";\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
" if (anchors[i].hasAttribute(\"id\")) {\n",
|
|
" // when converted in RST\n",
|
|
" href = anchors[i].id;\n",
|
|
" text_memo += \"#1-\" + href;\n",
|
|
" // passer à child suivant (le chercher)\n",
|
|
" }\n",
|
|
" else if (child.hasAttribute(\"id\")) {\n",
|
|
" // in a notebook\n",
|
|
" href = child.id;\n",
|
|
" text_memo += \"#2-\" + href;\n",
|
|
" }\n",
|
|
" else {\n",
|
|
" text_memo += \"#3-\" + \"*\" + \"\\n\";\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
" var title = child.textContent;\n",
|
|
" var level = parseInt(child.tagName.substring(1,2));\n",
|
|
"\n",
|
|
" text_memo += \"--\" + level + \"?\" + lfirst + \"--\" + title + \"\\n\";\n",
|
|
"\n",
|
|
" if ((level < lfirst) || (level > llast)) {\n",
|
|
" continue ;\n",
|
|
" }\n",
|
|
" if (title.endsWith('¶')) {\n",
|
|
" title = title.substring(0,title.length-1).replace(\"<\", \"<\").replace(\">\", \">\").replace(\"&\", \"&\")\n",
|
|
" }\n",
|
|
"\n",
|
|
" if (title.length == 0) {\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
"\n",
|
|
" while (level < memo_level) {\n",
|
|
" text_menu += \"</ul>\\n\";\n",
|
|
" memo_level -= 1;\n",
|
|
" }\n",
|
|
" if (level == lfirst) {\n",
|
|
" main_item += 1;\n",
|
|
" }\n",
|
|
" if (keep_item != -1 && main_item != keep_item + 1) {\n",
|
|
" // alert(main_item + \" - \" + level + \" - \" + keep_item);\n",
|
|
" continue;\n",
|
|
" }\n",
|
|
" while (level > memo_level) {\n",
|
|
" text_menu += \"<ul>\\n\";\n",
|
|
" memo_level += 1;\n",
|
|
" }\n",
|
|
" text_menu += repeat_indent_string(level-2) + sformat.replace(\"__HREF__\", href).replace(\"__TITLE__\", title);\n",
|
|
" }\n",
|
|
" while (1 < memo_level) {\n",
|
|
" text_menu += \"</ul>\\n\";\n",
|
|
" memo_level -= 1;\n",
|
|
" }\n",
|
|
" text_menu += send;\n",
|
|
" //text_menu += \"\\n\" + text_memo;\n",
|
|
" return text_menu;\n",
|
|
"};\n",
|
|
"var update_menu = function() {\n",
|
|
" var sbegin = \"\";\n",
|
|
" var sformat = '<li><a href=\"#__HREF__\">__TITLE__</a></li>';\n",
|
|
" var send = \"\";\n",
|
|
" var keep_item = -1;\n",
|
|
" var text_menu = update_menu_string(sbegin, 2, 4, sformat, send, keep_item);\n",
|
|
" var menu = document.getElementById(\"my_id_menu_nb\");\n",
|
|
" menu.innerHTML=text_menu;\n",
|
|
"};\n",
|
|
"window.setTimeout(update_menu,2000);\n",
|
|
" </script>"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"from jyquickhelper import add_notebook_menu\n",
|
|
"add_notebook_menu()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"ws = get_class_ws(\"312\")\n",
|
|
"flat = extract_flat_marks(ws)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array(['DM1', 'DS1', 'DS2', 'DM2', 'DS3', 'DS5', 'DNB Blanc 1', 'DM3',\n",
|
|
" 'Bbmars', 'ConnT1', 'ConnT2', 'ConnT3'], dtype=object)"
|
|
]
|
|
},
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"flat[\"Nom\"].unique()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Trimestre 1"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Trimestre 2"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/home/lafrite/.virtualenvs/enseignement/lib/python3.6/site-packages/pandas/core/generic.py:3295: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" self._update_inplace(new_data)\n",
|
|
"The note (2.5) is greated than the rating scale (2.0) at Note 2.5\n",
|
|
"Niveau 0\n",
|
|
"Bareme 2\n",
|
|
"Name: 567, dtype: object\n",
|
|
"The note (2.5) is greated than the rating scale (2.0) at Note 2.5\n",
|
|
"Niveau 0\n",
|
|
"Bareme 2\n",
|
|
"Name: 573, dtype: object\n",
|
|
"The note (2.5) is greated than the rating scale (2.0) at Note 2.5\n",
|
|
"Niveau 0\n",
|
|
"Bareme 2\n",
|
|
"Name: 574, dtype: object\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:484: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Mark\"] = compute_marks(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:485: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Level\"] = compute_level(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:486: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Latex_rep\"] = compute_latex_rep(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:487: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Normalized\"] = compute_normalized(df)\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array(['DS3', 'DS5', 'DNB Blanc 1', 'ConnT2'], dtype=object)"
|
|
]
|
|
},
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"flat_T2 = flat[flat[\"Trimestre\"] == 2]\n",
|
|
"quest_T2, exo_T2, eval_T2 = digest_flat_df(flat_T2)\n",
|
|
"flat_T2[\"Nom\"].unique()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## DS3"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/home/lafrite/.virtualenvs/enseignement/lib/python3.6/site-packages/pandas/core/generic.py:3295: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" self._update_inplace(new_data)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:484: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Mark\"] = compute_marks(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:485: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Level\"] = compute_level(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:486: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Latex_rep\"] = compute_latex_rep(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:487: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Normalized\"] = compute_normalized(df)\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(array(['2016-12-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n",
|
|
" array([ 38.]))"
|
|
]
|
|
},
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"ds3_flat = flat_T2[flat_T2[\"Nom\"]==\"DS3\"]\n",
|
|
"ds3_quest, ds3_exo, ds3_eval = digest_flat_df(ds3_flat)\n",
|
|
"ds3_eval[\"Date\"].unique(), ds3_eval[\"Bareme\"].unique()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {
|
|
"collapsed": false,
|
|
"scrolled": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Eleve</th>\n",
|
|
" <th>Mark_barem</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>ABDALLAH Elza</td>\n",
|
|
" <td>18 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>ABDALLAH Nourayina</td>\n",
|
|
" <td>12 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>ABDALLAH Roukia</td>\n",
|
|
" <td>9,5 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>AHAMADI Laila</td>\n",
|
|
" <td>21,5 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>AHAMADI Satti</td>\n",
|
|
" <td>19,5 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>AHMED Nachmie</td>\n",
|
|
" <td>15,5 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>ALI ABDALLAH Raphael</td>\n",
|
|
" <td>15,5 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>ATTOUMANE Nasrati</td>\n",
|
|
" <td>21 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>ATTOUMANE Nedjima</td>\n",
|
|
" <td>22 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>DARKAOUI Issouf</td>\n",
|
|
" <td>10,5 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>DHOIMIR Hidayat</td>\n",
|
|
" <td>15 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>DJAMAL Hounaissati</td>\n",
|
|
" <td>9,5 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>DJANFAR Houmadi</td>\n",
|
|
" <td>4 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>FAIZ Aoufi Youssouf</td>\n",
|
|
" <td>10,5 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>HAMZA El-Hadji</td>\n",
|
|
" <td>20,5 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>HOUFRANE Soirta</td>\n",
|
|
" <td>19 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>16</th>\n",
|
|
" <td>IBRAHIM Rouiyati</td>\n",
|
|
" <td>17 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>ISSOUF Toifia</td>\n",
|
|
" <td>18 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>MOADJO Hachimia</td>\n",
|
|
" <td>11,5 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>MOHAMED Abderemane</td>\n",
|
|
" <td>20,5 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>20</th>\n",
|
|
" <td>MOHAMED Nadhir-Eddine</td>\n",
|
|
" <td>21 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>21</th>\n",
|
|
" <td>SAID Fatima</td>\n",
|
|
" <td>23,5 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>22</th>\n",
|
|
" <td>YOUSSOUF Ouldine</td>\n",
|
|
" <td>17 / 38</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" Eleve Mark_barem\n",
|
|
"0 ABDALLAH Elza 18 / 38\n",
|
|
"1 ABDALLAH Nourayina 12 / 38\n",
|
|
"2 ABDALLAH Roukia 9,5 / 38\n",
|
|
"3 AHAMADI Laila 21,5 / 38\n",
|
|
"4 AHAMADI Satti 19,5 / 38\n",
|
|
"5 AHMED Nachmie 15,5 / 38\n",
|
|
"6 ALI ABDALLAH Raphael 15,5 / 38\n",
|
|
"7 ATTOUMANE Nasrati 21 / 38\n",
|
|
"8 ATTOUMANE Nedjima 22 / 38\n",
|
|
"9 DARKAOUI Issouf 10,5 / 38\n",
|
|
"10 DHOIMIR Hidayat 15 / 38\n",
|
|
"11 DJAMAL Hounaissati 9,5 / 38\n",
|
|
"12 DJANFAR Houmadi 4 / 38\n",
|
|
"13 FAIZ Aoufi Youssouf 10,5 / 38\n",
|
|
"14 HAMZA El-Hadji 20,5 / 38\n",
|
|
"15 HOUFRANE Soirta 19 / 38\n",
|
|
"16 IBRAHIM Rouiyati 17 / 38\n",
|
|
"17 ISSOUF Toifia 18 / 38\n",
|
|
"18 MOADJO Hachimia 11,5 / 38\n",
|
|
"19 MOHAMED Abderemane 20,5 / 38\n",
|
|
"20 MOHAMED Nadhir-Eddine 21 / 38\n",
|
|
"21 SAID Fatima 23,5 / 38\n",
|
|
"22 YOUSSOUF Ouldine 17 / 38"
|
|
]
|
|
},
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"ds3_eval[[\"Eleve\", \"Mark_barem\"]]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## DS5"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/home/lafrite/.virtualenvs/enseignement/lib/python3.6/site-packages/pandas/core/generic.py:3295: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" self._update_inplace(new_data)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:484: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Mark\"] = compute_marks(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:485: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Level\"] = compute_level(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:486: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Latex_rep\"] = compute_latex_rep(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:487: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Normalized\"] = compute_normalized(df)\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(array(['2017-01-25T00:00:00.000000000'], dtype='datetime64[ns]'),\n",
|
|
" array([ 20.]))"
|
|
]
|
|
},
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"ds5_flat = flat_T2[flat_T2[\"Nom\"]==\"DS5\"]\n",
|
|
"ds5_quest, ds5_exo, ds5_eval = digest_flat_df(ds5_flat)\n",
|
|
"ds5_eval[\"Date\"].unique(), ds5_eval[\"Bareme\"].unique()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"count 24.00\n",
|
|
"mean 9.00\n",
|
|
"std 2.23\n",
|
|
"min 5.00\n",
|
|
"25% 7.38\n",
|
|
"50% 8.75\n",
|
|
"75% 11.00\n",
|
|
"max 13.00\n",
|
|
"Name: Mark, dtype: float64"
|
|
]
|
|
},
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"ds5_eval[\"Mark\"].describe()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {
|
|
"collapsed": false,
|
|
"scrolled": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Eleve</th>\n",
|
|
" <th>Mark_barem</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>ABDALLAH Elza</td>\n",
|
|
" <td>9 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>ABDALLAH Nourayina</td>\n",
|
|
" <td>6 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>ABDALLAH Roukia</td>\n",
|
|
" <td>8 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>AHAMADI Laila</td>\n",
|
|
" <td>11,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>AHAMADI Satti</td>\n",
|
|
" <td>8 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>AHAMED El-Fahad</td>\n",
|
|
" <td>7 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>AHMED Nachmie</td>\n",
|
|
" <td>8 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>ALI ABDALLAH Raphael</td>\n",
|
|
" <td>6,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>ATTOUMANE Nasrati</td>\n",
|
|
" <td>8,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>ATTOUMANE Nedjima</td>\n",
|
|
" <td>12,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>DARKAOUI Issouf</td>\n",
|
|
" <td>13 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>DHOIMIR Hidayat</td>\n",
|
|
" <td>9,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>DJAMAL Hounaissati</td>\n",
|
|
" <td>6,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>DJANFAR Houmadi</td>\n",
|
|
" <td>5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>FAIZ Aoufi Youssouf</td>\n",
|
|
" <td>7,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>HAMZA El-Hadji</td>\n",
|
|
" <td>11,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>16</th>\n",
|
|
" <td>HOUFRANE Soirta</td>\n",
|
|
" <td>10 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>IBRAHIM Rouiyati</td>\n",
|
|
" <td>11 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>ISSOUF Toifia</td>\n",
|
|
" <td>8 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>MOADJO Hachimia</td>\n",
|
|
" <td>6,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>20</th>\n",
|
|
" <td>MOHAMED Abderemane</td>\n",
|
|
" <td>9 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>21</th>\n",
|
|
" <td>MOHAMED Nadhir-Eddine</td>\n",
|
|
" <td>11 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>22</th>\n",
|
|
" <td>SAID Fatima</td>\n",
|
|
" <td>11,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>23</th>\n",
|
|
" <td>YOUSSOUF Ouldine</td>\n",
|
|
" <td>11 / 20</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" Eleve Mark_barem\n",
|
|
"0 ABDALLAH Elza 9 / 20\n",
|
|
"1 ABDALLAH Nourayina 6 / 20\n",
|
|
"2 ABDALLAH Roukia 8 / 20\n",
|
|
"3 AHAMADI Laila 11,5 / 20\n",
|
|
"4 AHAMADI Satti 8 / 20\n",
|
|
"5 AHAMED El-Fahad 7 / 20\n",
|
|
"6 AHMED Nachmie 8 / 20\n",
|
|
"7 ALI ABDALLAH Raphael 6,5 / 20\n",
|
|
"8 ATTOUMANE Nasrati 8,5 / 20\n",
|
|
"9 ATTOUMANE Nedjima 12,5 / 20\n",
|
|
"10 DARKAOUI Issouf 13 / 20\n",
|
|
"11 DHOIMIR Hidayat 9,5 / 20\n",
|
|
"12 DJAMAL Hounaissati 6,5 / 20\n",
|
|
"13 DJANFAR Houmadi 5 / 20\n",
|
|
"14 FAIZ Aoufi Youssouf 7,5 / 20\n",
|
|
"15 HAMZA El-Hadji 11,5 / 20\n",
|
|
"16 HOUFRANE Soirta 10 / 20\n",
|
|
"17 IBRAHIM Rouiyati 11 / 20\n",
|
|
"18 ISSOUF Toifia 8 / 20\n",
|
|
"19 MOADJO Hachimia 6,5 / 20\n",
|
|
"20 MOHAMED Abderemane 9 / 20\n",
|
|
"21 MOHAMED Nadhir-Eddine 11 / 20\n",
|
|
"22 SAID Fatima 11,5 / 20\n",
|
|
"23 YOUSSOUF Ouldine 11 / 20"
|
|
]
|
|
},
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"ds5_eval[[\"Eleve\", \"Mark_barem\"]]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## ConnT2"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/home/lafrite/.virtualenvs/enseignement/lib/python3.6/site-packages/pandas/core/generic.py:3295: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" self._update_inplace(new_data)\n",
|
|
"The note (2.5) is greated than the rating scale (2.0) at Note 2.5\n",
|
|
"Niveau 0\n",
|
|
"Bareme 2\n",
|
|
"Name: 567, dtype: object\n",
|
|
"The note (2.5) is greated than the rating scale (2.0) at Note 2.5\n",
|
|
"Niveau 0\n",
|
|
"Bareme 2\n",
|
|
"Name: 573, dtype: object\n",
|
|
"The note (2.5) is greated than the rating scale (2.0) at Note 2.5\n",
|
|
"Niveau 0\n",
|
|
"Bareme 2\n",
|
|
"Name: 574, dtype: object\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:484: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Mark\"] = compute_marks(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:485: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Level\"] = compute_level(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:486: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Latex_rep\"] = compute_latex_rep(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:487: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Normalized\"] = compute_normalized(df)\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(array(['Trimestre'], dtype=object),\n",
|
|
" array([ 25., 29., 16., 21., 8., 24.]))"
|
|
]
|
|
},
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"connT2_flat = flat_T2[flat_T2[\"Nom\"]=='ConnT2']\n",
|
|
"connT2_quest, connT2_exo, connT2_eval = digest_flat_df(connT2_flat)\n",
|
|
"connT2_eval[\"Date\"].unique(), connT2_eval[\"Bareme\"].unique()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"connT2_eval = tranform_scale(connT2_eval, 20, \"prop\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"count 24.00\n",
|
|
"mean 11.88\n",
|
|
"std 3.95\n",
|
|
"min 2.50\n",
|
|
"25% 9.75\n",
|
|
"50% 12.25\n",
|
|
"75% 14.00\n",
|
|
"max 18.50\n",
|
|
"Name: Mark, dtype: float64"
|
|
]
|
|
},
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"connT2_eval[\"Mark\"].describe()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {
|
|
"collapsed": false,
|
|
"scrolled": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Eleve</th>\n",
|
|
" <th>Mark_barem</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>ABDALLAH Elza</td>\n",
|
|
" <td>16 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>ABDALLAH Nourayina</td>\n",
|
|
" <td>11 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>ABDALLAH Roukia</td>\n",
|
|
" <td>10 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>AHAMADI Laila</td>\n",
|
|
" <td>16,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>AHAMADI Satti</td>\n",
|
|
" <td>11 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>AHAMED El-Fahad</td>\n",
|
|
" <td>9 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>AHMED Nachmie</td>\n",
|
|
" <td>10 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>ALI ABDALLAH Raphael</td>\n",
|
|
" <td>10,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>ATTOUMANE Nasrati</td>\n",
|
|
" <td>18 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>ATTOUMANE Nedjima</td>\n",
|
|
" <td>15,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>DARKAOUI Issouf</td>\n",
|
|
" <td>13 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>DHOIMIR Hidayat</td>\n",
|
|
" <td>8 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>DJAMAL Hounaissati</td>\n",
|
|
" <td>6 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>DJANFAR Houmadi</td>\n",
|
|
" <td>2,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>FAIZ Aoufi Youssouf</td>\n",
|
|
" <td>6,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>HAMZA El-Hadji</td>\n",
|
|
" <td>13 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>16</th>\n",
|
|
" <td>HOUFRANE Soirta</td>\n",
|
|
" <td>13,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>IBRAHIM Rouiyati</td>\n",
|
|
" <td>13 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>ISSOUF Toifia</td>\n",
|
|
" <td>9 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>MOADJO Hachimia</td>\n",
|
|
" <td>11,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>20</th>\n",
|
|
" <td>MOHAMED Abderemane</td>\n",
|
|
" <td>13,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>21</th>\n",
|
|
" <td>MOHAMED Nadhir-Eddine</td>\n",
|
|
" <td>18,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>22</th>\n",
|
|
" <td>SAID Fatima</td>\n",
|
|
" <td>16,5 / 20</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>23</th>\n",
|
|
" <td>YOUSSOUF Ouldine</td>\n",
|
|
" <td>13 / 20</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" Eleve Mark_barem\n",
|
|
"0 ABDALLAH Elza 16 / 20\n",
|
|
"1 ABDALLAH Nourayina 11 / 20\n",
|
|
"2 ABDALLAH Roukia 10 / 20\n",
|
|
"3 AHAMADI Laila 16,5 / 20\n",
|
|
"4 AHAMADI Satti 11 / 20\n",
|
|
"5 AHAMED El-Fahad 9 / 20\n",
|
|
"6 AHMED Nachmie 10 / 20\n",
|
|
"7 ALI ABDALLAH Raphael 10,5 / 20\n",
|
|
"8 ATTOUMANE Nasrati 18 / 20\n",
|
|
"9 ATTOUMANE Nedjima 15,5 / 20\n",
|
|
"10 DARKAOUI Issouf 13 / 20\n",
|
|
"11 DHOIMIR Hidayat 8 / 20\n",
|
|
"12 DJAMAL Hounaissati 6 / 20\n",
|
|
"13 DJANFAR Houmadi 2,5 / 20\n",
|
|
"14 FAIZ Aoufi Youssouf 6,5 / 20\n",
|
|
"15 HAMZA El-Hadji 13 / 20\n",
|
|
"16 HOUFRANE Soirta 13,5 / 20\n",
|
|
"17 IBRAHIM Rouiyati 13 / 20\n",
|
|
"18 ISSOUF Toifia 9 / 20\n",
|
|
"19 MOADJO Hachimia 11,5 / 20\n",
|
|
"20 MOHAMED Abderemane 13,5 / 20\n",
|
|
"21 MOHAMED Nadhir-Eddine 18,5 / 20\n",
|
|
"22 SAID Fatima 16,5 / 20\n",
|
|
"23 YOUSSOUF Ouldine 13 / 20"
|
|
]
|
|
},
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"connT2_eval[[\"Eleve\", \"Mark_barem\"]]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## DNB blanc 1"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/home/lafrite/.virtualenvs/enseignement/lib/python3.6/site-packages/pandas/core/generic.py:3295: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" self._update_inplace(new_data)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:484: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Mark\"] = compute_marks(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:485: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Level\"] = compute_level(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:486: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Latex_rep\"] = compute_latex_rep(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:487: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Normalized\"] = compute_normalized(df)\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(array(['2017-02-08T00:00:00.000000000'], dtype='datetime64[ns]'),\n",
|
|
" array([ 50.]))"
|
|
]
|
|
},
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"dnb1_flat = flat_T2[flat_T2[\"Nom\"]=='DNB Blanc 1']\n",
|
|
"dnb1_quest, dnb1_exo, dnb1_eval = digest_flat_df(dnb1_flat)\n",
|
|
"dnb1_eval[\"Date\"].unique(), dnb1_eval[\"Bareme\"].unique()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"count 24.00\n",
|
|
"mean 19.46\n",
|
|
"std 5.21\n",
|
|
"min 10.00\n",
|
|
"25% 15.75\n",
|
|
"50% 18.75\n",
|
|
"75% 22.25\n",
|
|
"max 29.00\n",
|
|
"Name: Mark, dtype: float64"
|
|
]
|
|
},
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"dnb1_eval[\"Mark\"].describe()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {
|
|
"collapsed": false,
|
|
"scrolled": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Eleve</th>\n",
|
|
" <th>Mark_barem</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>ABDALLAH Elza</td>\n",
|
|
" <td>23 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>ABDALLAH Nourayina</td>\n",
|
|
" <td>10 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>ABDALLAH Roukia</td>\n",
|
|
" <td>13 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>AHAMADI Laila</td>\n",
|
|
" <td>17 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>AHAMADI Satti</td>\n",
|
|
" <td>18,5 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>AHAMED El-Fahad</td>\n",
|
|
" <td>16 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>AHMED Nachmie</td>\n",
|
|
" <td>19 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>ALI ABDALLAH Raphael</td>\n",
|
|
" <td>18 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>ATTOUMANE Nasrati</td>\n",
|
|
" <td>22 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>ATTOUMANE Nedjima</td>\n",
|
|
" <td>21 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>DARKAOUI Issouf</td>\n",
|
|
" <td>26,5 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>DHOIMIR Hidayat</td>\n",
|
|
" <td>14 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>DJAMAL Hounaissati</td>\n",
|
|
" <td>14 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>DJANFAR Houmadi</td>\n",
|
|
" <td>13 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>FAIZ Aoufi Youssouf</td>\n",
|
|
" <td>15 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>HAMZA El-Hadji</td>\n",
|
|
" <td>29 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>16</th>\n",
|
|
" <td>HOUFRANE Soirta</td>\n",
|
|
" <td>26 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>IBRAHIM Rouiyati</td>\n",
|
|
" <td>18 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>ISSOUF Toifia</td>\n",
|
|
" <td>19 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>MOADJO Hachimia</td>\n",
|
|
" <td>18 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>20</th>\n",
|
|
" <td>MOHAMED Abderemane</td>\n",
|
|
" <td>29 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>21</th>\n",
|
|
" <td>MOHAMED Nadhir-Eddine</td>\n",
|
|
" <td>22 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>22</th>\n",
|
|
" <td>SAID Fatima</td>\n",
|
|
" <td>20 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>23</th>\n",
|
|
" <td>YOUSSOUF Ouldine</td>\n",
|
|
" <td>26 / 50</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" Eleve Mark_barem\n",
|
|
"0 ABDALLAH Elza 23 / 50\n",
|
|
"1 ABDALLAH Nourayina 10 / 50\n",
|
|
"2 ABDALLAH Roukia 13 / 50\n",
|
|
"3 AHAMADI Laila 17 / 50\n",
|
|
"4 AHAMADI Satti 18,5 / 50\n",
|
|
"5 AHAMED El-Fahad 16 / 50\n",
|
|
"6 AHMED Nachmie 19 / 50\n",
|
|
"7 ALI ABDALLAH Raphael 18 / 50\n",
|
|
"8 ATTOUMANE Nasrati 22 / 50\n",
|
|
"9 ATTOUMANE Nedjima 21 / 50\n",
|
|
"10 DARKAOUI Issouf 26,5 / 50\n",
|
|
"11 DHOIMIR Hidayat 14 / 50\n",
|
|
"12 DJAMAL Hounaissati 14 / 50\n",
|
|
"13 DJANFAR Houmadi 13 / 50\n",
|
|
"14 FAIZ Aoufi Youssouf 15 / 50\n",
|
|
"15 HAMZA El-Hadji 29 / 50\n",
|
|
"16 HOUFRANE Soirta 26 / 50\n",
|
|
"17 IBRAHIM Rouiyati 18 / 50\n",
|
|
"18 ISSOUF Toifia 19 / 50\n",
|
|
"19 MOADJO Hachimia 18 / 50\n",
|
|
"20 MOHAMED Abderemane 29 / 50\n",
|
|
"21 MOHAMED Nadhir-Eddine 22 / 50\n",
|
|
"22 SAID Fatima 20 / 50\n",
|
|
"23 YOUSSOUF Ouldine 26 / 50"
|
|
]
|
|
},
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"dnb1_eval[[\"Eleve\", \"Mark_barem\"]]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"source": [
|
|
"## Bilan T2"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array(['ABDALLAH Elza', 'ABDALLAH Nourayina', 'ABDALLAH Roukia',\n",
|
|
" 'ABOUDOU Faise', 'AHAMADI Laila', 'AHAMADI Satti',\n",
|
|
" 'AHAMED El-Fahad', 'AHMED Nachmie', 'ALI ABDALLAH Raphael',\n",
|
|
" 'ATTOUMANE Nasrati', 'ATTOUMANE Nedjima', 'DARKAOUI Issouf',\n",
|
|
" 'DHOIMIR Hidayat', 'DJAMAL Hounaissati', 'DJANFAR Houmadi',\n",
|
|
" 'FAIZ Aoufi Youssouf', 'HAMZA El-Hadji', 'HOUFRANE Soirta',\n",
|
|
" 'IBRAHIM Hindou', 'IBRAHIM Rouiyati', 'ISSOUF Toifia',\n",
|
|
" 'MOADJO Hachimia', 'MOHAMED Abderemane', 'MOHAMED Nadhir-Eddine',\n",
|
|
" 'MOUSSA Faize', 'SAID Fatima', 'SAID Ramiati', 'SAÏD Latif',\n",
|
|
" 'YOUSSOUF Ouldine'], dtype=object)"
|
|
]
|
|
},
|
|
"execution_count": 18,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"flat_T2[\"Eleve\"].unique()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"flat_AE = flat_T2[flat_T2[\"Eleve\"]=='ABDALLAH Elza']\n",
|
|
"quest_AE = quest_T2[quest_T2[\"Eleve\"]=='ABDALLAH Elza']"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/home/lafrite/.virtualenvs/enseignement/lib/python3.6/site-packages/pandas/core/generic.py:3295: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" self._update_inplace(new_data)\n",
|
|
"The note (2.5) is greated than the rating scale (2.0) at Note 2.5\n",
|
|
"Niveau 0\n",
|
|
"Bareme 2\n",
|
|
"Name: 567, dtype: object\n",
|
|
"The note (2.5) is greated than the rating scale (2.0) at Note 2.5\n",
|
|
"Niveau 0\n",
|
|
"Bareme 2\n",
|
|
"Name: 573, dtype: object\n",
|
|
"The note (2.5) is greated than the rating scale (2.0) at Note 2.5\n",
|
|
"Niveau 0\n",
|
|
"Bareme 2\n",
|
|
"Name: 574, dtype: object\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:484: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Mark\"] = compute_marks(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:485: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Level\"] = compute_level(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:486: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Latex_rep\"] = compute_latex_rep(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:487: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Normalized\"] = compute_normalized(df)\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"es = term.students_pov(*digest_flat_df(flat_T2))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"ABDALLAH Elza\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Nom</th>\n",
|
|
" <th>Mark_barem</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>ConnT2</td>\n",
|
|
" <td>19,5 / 25</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>24</th>\n",
|
|
" <td>DNB Blanc 1</td>\n",
|
|
" <td>23 / 50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>48</th>\n",
|
|
" <td>DS3</td>\n",
|
|
" <td>18 / 38</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>71</th>\n",
|
|
" <td>DS5</td>\n",
|
|
" <td>9 / 20</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" Nom Mark_barem\n",
|
|
"0 ConnT2 19,5 / 25\n",
|
|
"24 DNB Blanc 1 23 / 50\n",
|
|
"48 DS3 18 / 38\n",
|
|
"71 DS5 9 / 20"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/home/lafrite/.virtualenvs/enseignement/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans\n",
|
|
" (prop.get_family(), self.defaultFamily[fontext]))\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAdEAAAF+CAYAAADdiSCgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtcVOW+P/DPcA8BcQbEC5AB4iVSRPKGFmpXu2yOaf52\nrxSzjmX77OMlEW+cNDU1UfdOzOOFvOSpyAztZu5EK4E0+Sm52YoieE2QmwMichlm/f7w55xGYJiZ\nXLfh894vXi9nrZl5Pq795JdnrWc9SyMIggAiIiKymZPcAYiIiNSKRZSIiMhOLKJERER2YhElIiKy\nE4soERGRnVhEiYiI7OQidwAiIiIpfPDBBzh+/Dg6duyI1atXN9svCAK2bt2KEydOwN3dHW+++SZC\nQkIsfidHokRE1C7ExsZi/vz5re4/ceIESkpK8P7772Pq1KnYsmVLm9/JIkpERO1C37594eXl1er+\nnJwcPPLII9BoNAgPD8fNmzdx/fp1i9/JIkpERASgsrISfn5+ptc6nQ6VlZUWP6OKa6L97n9U7gg2\nGdC1j9wRbPbnEf3kjmCzTw6flDuCTQK8feSOYLN6g0HuCDbrodPKHcEmxVXVckew2Xvfvyfad/+R\nf+9PXvzxHiaxjiqKKBERtQ8ajUa2trVaLcrLy02vKyoqoNVa/qWMp3OJiIgAREdH46effoIgCDh7\n9iw8PT3RqVMni5/hSJSIiBRDoxFvbPe3v/0Np06dwo0bN/DGG2/gxRdfhOH/X7J44oknMGDAABw/\nfhz/+Z//CTc3N7z55pttfieLKBERtQszZsywuF+j0eC1116z6TtZRImISDGcIN81UXuwiBIRkWLI\nObHIHiyiRESkGE4iXhMVA4soEREphtpGouoq+URERArCIkpERGQnns4lIiLF0HB2LhERkX04sYiI\niMhOaptYxCJKRESK4aSyIqqucTMREZGCsIgSERHZiadziYhIMTQqG9uxiBIRkWJwYhEREZGd1Dax\nSPQiOmnSpBZ/sxAEARqNBtu3bxc7AhERqQQXW7jLjh07xG6CiIhIFpKfzq2qqkJjY6PptZ+fn9QR\niIhIobhiUStycnKwY8cOXL9+HT4+PigvL0f37t2xZs0aqSIQERHdU5KV/LS0NCxbtgxdu3bF+vXr\nkZSUhJ49e0rVPBERqYBGo7H7Rw6SFVFnZ2d4e3tDEAQYjUZERESgqKhIquaJiEgFnDQau3/kINnp\n3A4dOqCurg59+vTB+++/j44dO8Ld3V2q5omISAU4O/cuJSUl0Ov1SEhIgJubG+Lj43H48GGUl5dj\nypQpYjdPREQkGtFP527btg2enp7w8PCAk5MTnJ2dERsbi0GDBuGzzz4Tu3kiIlIRJ42T3T9yEH0k\nWlVVheDg4Gbbg4ODUVZWJnbzRESkImpb9k/00n3z5s1W9zU0NIjdPBERkWhEL6IhISE4cOBAs+0Z\nGRkICQkRu3kiIlIRzs69y+TJk5GcnIzMzExT0SwsLITBYEBCQoLYzRMRkYpwdu5dfH19sXTpUuTl\n5eHy5csAgKioKERERIjdNBERkagku080IiKChZOIiCxS28QiPk+UiIgUg88TJSIispParomq65kz\nRERECsKRKBERKYbanieqrrREREQKwpEoEREpBmfnEhER2Ymzc4mIiOykttm5qiii3/38idwRHJ7+\n28NyR7BZYq+R8B0zQu4YDu2poX+WO4LtivhvhpqpbSTKiUVERER2YhElIiKykypO5xIRUfvA2blE\nRER2Uts1URZRIiJSDM7OJSIispPaRqKcWERERGQnFlEiIiI78XQuEREpBmfnEhER2Ult10RZRImI\nSDE4O5eIiMhOHIkSEREpUG5uLrZu3Qqj0YjRo0cjLi7ObH95eTnWr1+Pmzdvwmg04qWXXkJUVJTF\n72QRJSIixRBrYpHRaERqaioWLlwInU6HefPmITo6GoGBgab37N69G0OHDsUTTzyBK1euYPny5W0W\nUd7iQkREDu/cuXPo0qULAgIC4OLigmHDhuHYsWNm79FoNKitrQUA1NbWolOnTm1+L0eiRESkGGJd\nE62srIROpzO91ul0KCgoMHvP+PHjsXTpUnz33Xeor69HUlJSm9/LIkpERIoh532iWVlZiI2NxXPP\nPYezZ89i3bp1WL16NZycWj9py9O5RESkGJo/8D9LtFotKioqTK8rKiqg1WrN3nPw4EEMHToUABAe\nHo7GxkbcuHHD4veyiBIRkcMLDQ1FcXExSktLYTAYkJ2djejoaLP3+Pn5IS8vDwBw5coVNDY2wsfH\nx+L3SnY6V6/X45NPPsH169cxf/58XLlyBWfPnsWoUaOkikBERArnJNLZXGdnZ0yZMgXLli2D0WjE\nyJEjERQUhLS0NISGhiI6OhqTJk3Cxo0b8c033wAA3nzzzTZPL0tWRD/44APExsYiPT0dANC1a1es\n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\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7f8c3d16e860>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<function __main__.e_term>"
|
|
]
|
|
},
|
|
"execution_count": 21,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAdEAAAF+CAYAAADdiSCgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtcVOW+P/DPcA8BcQbEC5AB4iVSRPKGFmpXu2yOaf52\nrxSzjmX77OMlEW+cNDU1UfdOzOOFvOSpyAztZu5EK4E0+Sm52YoieE2QmwMichlm/f7w55xGYJiZ\nXLfh894vXi9nrZl5Pq795JdnrWc9SyMIggAiIiKymZPcAYiIiNSKRZSIiMhOLKJERER2YhElIiKy\nE4soERGRnVhEiYiI7OQidwAiIiIpfPDBBzh+/Dg6duyI1atXN9svCAK2bt2KEydOwN3dHW+++SZC\nQkIsfidHokRE1C7ExsZi/vz5re4/ceIESkpK8P7772Pq1KnYsmVLm9/JIkpERO1C37594eXl1er+\nnJwcPPLII9BoNAgPD8fNmzdx/fp1i9/JIkpERASgsrISfn5+ptc6nQ6VlZUWP6OKa6L97n9U7gg2\nGdC1j9wRbPbnEf3kjmCzTw6flDuCTQK8feSOYLN6g0HuCDbrodPKHcEmxVXVckew2Xvfvyfad/+R\nf+9PXvzxHiaxjiqKKBERtQ8ajUa2trVaLcrLy02vKyoqoNVa/qWMp3OJiIgAREdH46effoIgCDh7\n9iw8PT3RqVMni5/hSJSIiBRDoxFvbPe3v/0Np06dwo0bN/DGG2/gxRdfhOH/X7J44oknMGDAABw/\nfhz/+Z//CTc3N7z55pttfieLKBERtQszZsywuF+j0eC1116z6TtZRImISDGcIN81UXuwiBIRkWLI\nObHIHiyiRESkGE4iXhMVA4soEREphtpGouoq+URERArCIkpERGQnns4lIiLF0HB2LhERkX04sYiI\niMhOaptYxCJKRESK4aSyIqqucTMREZGCsIgSERHZiadziYhIMTQqG9uxiBIRkWJwYhEREZGd1Dax\nSPQiOmnSpBZ/sxAEARqNBtu3bxc7AhERqQQXW7jLjh07xG6CiIhIFpKfzq2qqkJjY6PptZ+fn9QR\niIhIobhiUStycnKwY8cOXL9+HT4+PigvL0f37t2xZs0aqSIQERHdU5KV/LS0NCxbtgxdu3bF+vXr\nkZSUhJ49e0rVPBERqYBGo7H7Rw6SFVFnZ2d4e3tDEAQYjUZERESgqKhIquaJiEgFnDQau3/kINnp\n3A4dOqCurg59+vTB+++/j44dO8Ld3V2q5omISAU4O/cuJSUl0Ov1SEhIgJubG+Lj43H48GGUl5dj\nypQpYjdPREQkGtFP527btg2enp7w8PCAk5MTnJ2dERsbi0GDBuGzzz4Tu3kiIlIRJ42T3T9yEH0k\nWlVVheDg4Gbbg4ODUVZWJnbzRESkImpb9k/00n3z5s1W9zU0NIjdPBERkWhEL6IhISE4cOBAs+0Z\nGRkICQkRu3kiIlIRzs69y+TJk5GcnIzMzExT0SwsLITBYEBCQoLYzRMRkYpwdu5dfH19sXTpUuTl\n5eHy5csAgKioKERERIjdNBERkagku080IiKChZOIiCxS28QiPk+UiIgUg88TJSIispParomq65kz\nRERECsKRKBERKYbanieqrrREREQKwpEoEREpBmfnEhER2Ymzc4mIiOykttm5qiii3/38idwRHJ7+\n28NyR7BZYq+R8B0zQu4YDu2poX+WO4LtivhvhpqpbSTKiUVERER2YhElIiKykypO5xIRUfvA2blE\nRER2Uts1URZRIiJSDM7OJSIispPaRqKcWERERGQnFlEiIiI78XQuEREpBmfnEhER2Ult10RZRImI\nSDE4O5eIiMhOHIkSEREpUG5uLrZu3Qqj0YjRo0cjLi7ObH95eTnWr1+Pmzdvwmg04qWXXkJUVJTF\n72QRJSIixRBrYpHRaERqaioWLlwInU6HefPmITo6GoGBgab37N69G0OHDsUTTzyBK1euYPny5W0W\nUd7iQkREDu/cuXPo0qULAgIC4OLigmHDhuHYsWNm79FoNKitrQUA1NbWolOnTm1+L0eiRESkGGJd\nE62srIROpzO91ul0KCgoMHvP+PHjsXTpUnz33Xeor69HUlJSm9/LIkpERIoh532iWVlZiI2NxXPP\nPYezZ89i3bp1WL16NZycWj9py9O5RESkGJo/8D9LtFotKioqTK8rKiqg1WrN3nPw4EEMHToUABAe\nHo7GxkbcuHHD4veyiBIRkcMLDQ1FcXExSktLYTAYkJ2djejoaLP3+Pn5IS8vDwBw5coVNDY2wsfH\nx+L3SnY6V6/X45NPPsH169cxf/58XLlyBWfPnsWoUaOkikBERArnJNLZXGdnZ0yZMgXLli2D0WjE\nyJEjERQUhLS0NISGhiI6OhqTJk3Cxo0b8c033wAA3nzzzTZPL0tWRD/44APExsYiPT0dANC1a1es\n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\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7f8c3d16e860>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"def e_term(e):\n",
|
|
" print(e.name)\n",
|
|
" display(e.eval_df[[\"Nom\", \"Mark_barem\"]])\n",
|
|
" display(e.heatmap_on_domain.figure)\n",
|
|
"#interact(e_term, e = widgets.Dropdown(options = {e.name:e for e in es}))\n",
|
|
"interact(e_term, e = widgets.Select(options = {e.name:e for e in es}))\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"source": [
|
|
"# Trimestre 3"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 22,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/home/lafrite/.virtualenvs/enseignement/lib/python3.6/site-packages/pandas/core/generic.py:3295: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" self._update_inplace(new_data)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:484: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Mark\"] = compute_marks(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:485: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Level\"] = compute_level(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:486: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Latex_rep\"] = compute_latex_rep(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:487: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Normalized\"] = compute_normalized(df)\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"array(['DM3', 'Bbmars', 'ConnT3'], dtype=object)"
|
|
]
|
|
},
|
|
"execution_count": 22,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"flat_T3 = flat[flat[\"Trimestre\"] == 3]\n",
|
|
"quest_T3, exo_T3, eval_T3 = digest_flat_df(flat_T3)\n",
|
|
"flat_T3[\"Nom\"].unique()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"source": [
|
|
"## DM mars"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 23,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/home/lafrite/.virtualenvs/enseignement/lib/python3.6/site-packages/pandas/core/generic.py:3295: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" self._update_inplace(new_data)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:484: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Mark\"] = compute_marks(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:485: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Level\"] = compute_level(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:486: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Latex_rep\"] = compute_latex_rep(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:487: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Normalized\"] = compute_normalized(df)\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"flat_DMmars = flat_T3[flat_T3[\"Nom\"]==\"DM3\"]\n",
|
|
"quest_DMmars, exo_DMmars, eval_DMmars = digest_flat_df(flat_DMmars)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 24,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Eleve</th>\n",
|
|
" <th>Mark_barem</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>ABDALLAH Elza</td>\n",
|
|
" <td>7,5 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>ABDALLAH Nourayina</td>\n",
|
|
" <td>11 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>ABDALLAH Roukia</td>\n",
|
|
" <td>3,5 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>ABOUDOU Faise</td>\n",
|
|
" <td>1 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>AHAMADI Laila</td>\n",
|
|
" <td>9 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>AHAMADI Satti</td>\n",
|
|
" <td>9 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>AHMED Nachmie</td>\n",
|
|
" <td>4,5 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>ALI ABDALLAH Raphael</td>\n",
|
|
" <td>7 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>ATTOUMANE Nasrati</td>\n",
|
|
" <td>5,5 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>ATTOUMANE Nedjima</td>\n",
|
|
" <td>6,5 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>DARKAOUI Issouf</td>\n",
|
|
" <td>2,5 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>DHOIMIR Hidayat</td>\n",
|
|
" <td>3 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>DJAMAL Hounaissati</td>\n",
|
|
" <td>1 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>DJANFAR Houmadi</td>\n",
|
|
" <td>0 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>FAIZ Aoufi Youssouf</td>\n",
|
|
" <td>6 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>HAMZA El-Hadji</td>\n",
|
|
" <td>9 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>16</th>\n",
|
|
" <td>HOUFRANE Soirta</td>\n",
|
|
" <td>9 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>IBRAHIM Rouiyati</td>\n",
|
|
" <td>8 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>ISSOUF Toifia</td>\n",
|
|
" <td>6 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>MOADJO Hachimia</td>\n",
|
|
" <td>2 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>20</th>\n",
|
|
" <td>MOHAMED Abderemane</td>\n",
|
|
" <td>9 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>21</th>\n",
|
|
" <td>MOHAMED Nadhir-Eddine</td>\n",
|
|
" <td>10 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>22</th>\n",
|
|
" <td>SAID Fatima</td>\n",
|
|
" <td>7 / 11</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>23</th>\n",
|
|
" <td>YOUSSOUF Ouldine</td>\n",
|
|
" <td>7 / 11</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" Eleve Mark_barem\n",
|
|
"0 ABDALLAH Elza 7,5 / 11\n",
|
|
"1 ABDALLAH Nourayina 11 / 11\n",
|
|
"2 ABDALLAH Roukia 3,5 / 11\n",
|
|
"3 ABOUDOU Faise 1 / 11\n",
|
|
"4 AHAMADI Laila 9 / 11\n",
|
|
"5 AHAMADI Satti 9 / 11\n",
|
|
"6 AHMED Nachmie 4,5 / 11\n",
|
|
"7 ALI ABDALLAH Raphael 7 / 11\n",
|
|
"8 ATTOUMANE Nasrati 5,5 / 11\n",
|
|
"9 ATTOUMANE Nedjima 6,5 / 11\n",
|
|
"10 DARKAOUI Issouf 2,5 / 11\n",
|
|
"11 DHOIMIR Hidayat 3 / 11\n",
|
|
"12 DJAMAL Hounaissati 1 / 11\n",
|
|
"13 DJANFAR Houmadi 0 / 11\n",
|
|
"14 FAIZ Aoufi Youssouf 6 / 11\n",
|
|
"15 HAMZA El-Hadji 9 / 11\n",
|
|
"16 HOUFRANE Soirta 9 / 11\n",
|
|
"17 IBRAHIM Rouiyati 8 / 11\n",
|
|
"18 ISSOUF Toifia 6 / 11\n",
|
|
"19 MOADJO Hachimia 2 / 11\n",
|
|
"20 MOHAMED Abderemane 9 / 11\n",
|
|
"21 MOHAMED Nadhir-Eddine 10 / 11\n",
|
|
"22 SAID Fatima 7 / 11\n",
|
|
"23 YOUSSOUF Ouldine 7 / 11"
|
|
]
|
|
},
|
|
"execution_count": 24,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"eval_DMmars[[\"Eleve\", \"Mark_barem\"]]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Travaux non rendus"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 25,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(\"\\n\".join(list(eval_DMmars[pd.isnull(eval_DMmars[\"Mark\"])][\"Eleve\"])))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Les élèves à revoir pour la géométrie"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 26,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"exo_geo = exo_DMmars[exo_DMmars[\"Exercice\"]==2]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 27,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"1 ABDALLAH Elza\n",
|
|
"5 ABDALLAH Roukia\n",
|
|
"8 ABOUDOU Faise\n",
|
|
"15 AHMED Nachmie\n",
|
|
"19 ATTOUMANE Nasrati\n",
|
|
"23 DARKAOUI Issouf\n",
|
|
"26 DHOIMIR Hidayat\n",
|
|
"29 DJAMAL Hounaissati\n",
|
|
"32 DJANFAR Houmadi\n",
|
|
"42 ISSOUF Toifia\n",
|
|
"44 MOADJO Hachimia\n",
|
|
"52 SAID Fatima\n",
|
|
"Name: Eleve, dtype: object"
|
|
]
|
|
},
|
|
"execution_count": 27,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"exo_geo[exo_geo[\"Normalized\"] <= 0.5][\"Eleve\"]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 28,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<matplotlib.axes._subplots.AxesSubplot at 0x7f8c3b0233c8>"
|
|
]
|
|
},
|
|
"execution_count": 28,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/home/lafrite/.virtualenvs/enseignement/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans\n",
|
|
" (prop.get_family(), self.defaultFamily[fontext]))\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAdoAAAFKCAYAAAC6gp7sAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADxRJREFUeJzt3V+IlHXbwPFrciu1cHO3LGbTHjaN0CwpxYoiUyswe4gO\nhERBD17wD4gdVOJBnhRItSjCynYQ1WlHgmV0EhTkibaJZmUKFsYWpqumpsnuzHsQRW9vOmPNNTM7\nfj5H/hl/XvdvZ/e79z3ObaFcLpcDAEhxVaMHAIBWJrQAkEhoASCR0AJAIqEFgERCCwCJhBYAErVl\nLTwwMFCztYrFYk3Xa1X2qTJ7VB37VB37VJ0rYZ+KxeJFf88ZLQAkEloASCS0AJBIaAEgkdACQCKh\nBYBEQgsAiYQWABJVdcOK1atXx+jRo+Oqq66KUaNGxcaNG7PnAoCWUPWdoTZs2BDjxo3LnAUAWo5L\nxwCQqOoz2ldeeSUiIh577LGYP39+2kAA0EoK5XK5XOlBg4OD0dHREadOnYqXX345li9fHlOnTq3H\nfABcwpEnZ9Z0vYnv767pelR5RtvR0REREe3t7TFr1qw4dOhQxdD633vqzz5VZo+qY5+q04r7lHE8\nrbhPf/Wv/vee8+fPx7lz5/748d69e2PSpEm1mw4AWljFM9pTp07F66+/HhERw8PD8dBDD8WMGTPS\nBwOAVlAxtDfffHO89tpr9ZgFAFqOt/cAQCKhBYBEQgsAiYQWABIJLQAkEloASCS0AJBIaAEgkdAC\nQCKhBYBEQgsAiYQWABIJLQAkEloASCS0AJBIaAEgkdACQCKhBYBEQgsAiYQWABIJLQAkEloASCS0\nAJBIaAEgkdACQCKhBYBEQgsAiYQWABIJLQAkEloASCS0AJBIaAEgkdACQCKhBYBEQgsAiYQWABIJ\nLQAkEloASCS0AJBIaAEgkdACQCKhBYBEQgsAiYQWABIJLQAkEloASCS0AJBIaAEgUdWhLZVK8cIL\nL8TGjRsz5wGAllJ1aHfs2BFdXV2ZswBAy6kqtMePH4/+/v6YN29e9jwA0FKqCu3bb78dS5YsiUKh\nkD0PALSUtkoP+Oyzz6K9vT26u7tj//79VS9cLBb/1WDZ67Uq+1SZPaqOfapOo/fpSI3XyzqeRu9T\nI1UM7YEDB2L37t3x+eefx4ULF+LcuXOxZcuWWLNmzSX/3MDAQM2GLBaLNV2vVdmnyuxRdexTdVpx\nnzKOpxX36a8u9Y1ExdAuXrw4Fi9eHBER+/fvj+3bt1eMLADwG++jBYBEFc9o/2zatGkxbdq0rFkA\noOU4owWAREILAImEFgASCS0AJBJaAEgktACQSGgBIJHQAkAioQWAREILAImEFgASCS0AJBJaAEgk\ntACQSGgBIJHQAkAioQWAREILAImEFgASCS0AJBJaAEgktACQSGgBIJHQAkAioQWAREILAImEFgAS\nCS0AJBJaAEgktACQSGgBIJHQAkAioQWAREILAImEFgASCS0AJBJaAEgktACQSGgBIJHQAkAioQWA\nREILAImEFgASCS0AJBJaAEgktACQSGgBIJHQAkCitkoPuHDhQmzYsCGGhoZieHg47r///li0aFE9\nZgOAEa9iaK+++urYsGFDjB49OoaGhuKll16KGTNmxB133FGP+QBgRKt46bhQKMTo0aMjImJ4eDiG\nh4ejUCikDwYAraDiGW1ERKlUihdffDF+/PHHeOKJJ2LKlCnZcwFASyiUy+VytQ8+e/ZsvP7667F8\n+fKYNGlS5lzAFejIkzNrttbE93fXbK1mVss9i7hy9q2eqjqj/d11110X06ZNiz179lQM7cDAwL8a\n7M+KxWJN12tV9qkye1SdVtineszfCvv0VxnH04r79FfFYvGiv1fxNdqff/45zp49GxG//QvkvXv3\nRldXV+2mA4AWVvGM9sSJE9Hb2xulUinK5XI88MADcd9999VjNgAY8SqG9rbbbotXX321HrMAQMtx\nZygASCS0AJBIaAEgkdACQCKhBYBEQgsAiYQWABIJLQAkEloASCS0AJBIaAEgkdACQCKhBYBEQgsA\niYQWABIJLQAkEloASCS0AJBIaAEgkdACQCKhBYBEQgsAiYQWABIJLQAkEloASCS0AJBIaAEgkdAC\nQCKhBYBEQgsAiYQWABIJLQAkEloASCS0AJBIaAEgkdACQCKhBYBEQgsAiYQWABIJLQAkEloASCS0\nAJBIaAEgkdACQCKhBYBEQgsAiYQWABIJLQAkaqv0gGPHjkVvb2+cPHkyCoVCzJ8/PxYsWFCP2QBg\nxKsY2lGjRsXSpUuju7s7zp07F+vWrYu77747br311nrMBwAjWsVLx+PHj4/u7u6IiBgzZkx0dXXF\n4OBg+mAA0Aou6zXao0ePxuHDh2Py5MlZ8wBAS6l46fh358+fj56enli2bFmMHTu24uOLxeK/Gixr\nvSNPzqzJOr+b+P7umq73b9V631vRlb5H1XwOHLmM9Wr5OXA5f28l9fo4N/r5VMs9i8g7nkbvUyNV\nFdqhoaHo6emJhx9+OGbPnl3VwgMDA/9qsD8rFos1Xa+WmmmuZt6nZmGPaq9Z97Mec7Xi8ynjeFpx\nn/7qUt9IVLx0XC6Xo6+vL7q6umLhwoU1HQwAWl3FM9oDBw7EJ598EpMmTYrnn38+IiKeffbZuPfe\ne9OHA4CRrmJo77zzznj33XfrMQsAtBx3hgKAREILAImEFgASCS0AJBJaAEgktACQSGgBIJHQAkAi\noQWAREILAImEFgASCS0AJBJaAEgktACQSGgBIJHQAkAioQWAREILAImEFgASCS0AJBJaAEgktACQ\nSGgBIJHQAkAioQWAREILAImEFgASCS0AJBJaAEgktACQSGgBIJHQAkAioQWAREILAImEFgASCS0A\nJBJaAEgktACQSGgBIJHQAkAioQWAREILAImEFgASCS0AJBJaAEgktACQSGgBIJHQAkCitkoP2Lp1\na/T390d7e3v09PTUYyYAaBkVz2jnzJkT69evr8csANByKoZ26tSpcf3119djFgBoOV6jBYBEFV+j\n/aeKxWLN1jry5MyarVVrzXScR2o0x0gy8f3dl/1nLvYxq/Xz7J/MdjHN/Dkw/D//bfQIf6sec/3T\nz7maPjdqttJvMr6mNePXplp+DCpJC+3AwEDW0k3lSjnOZnW5+18sFuv2MfPc4GKa+bnRzLPVUq2P\n81LfoLh0DACJKp7Rbt68Ob788ss4ffp0rFixIhYtWhRz586tx2wAMOJVDO3atWvrMQcAtCSXjgEg\nkdACQCKhBYBEQgsAiYQWABIJLQAkEloASCS0AJBIaAEgkdACQCKhBYBEQgsAiYQWABIJLQAkEloA\nSCS0AJBIaAEgkdACQCKhBYBEQgsAiYQWABIJLQAkEloASCS0AJBIaAEgkdACQCKhBYBEQgsAiYQW\nABIJLQAkEloASCS0AJBIaAEgkdACQCKhBYBEQgsAiYQWABIJLQAkEloASCS0AJBIaAEgkdACQCKh\nBYBEQgsAiYQWABIJLQAkEloASCS0AJCorZoH7dmzJ956660olUoxb968ePrpp7PnAoCWUPGMtlQq\nxZtvvhnr16+PTZs2xaeffhrff/99PWYDgBGvYmgPHToUt9xyS9x8883R1tYWDz74YOzataseswHA\niFcxtIODg9HZ2fnHzzs7O2NwcDB1KABoFVW9RvtPFIvF2i32/u7ardXMrpTjbLCLPjebef+beTYa\nq5mfG808Wx1VPKPt6OiI48eP//Hz48ePR0dHR+pQANAqKob29ttvjx9++CGOHj0aQ0NDsXPnzpg5\nc2Y9ZgOAEa9QLpfLlR7U398f77zzTpRKpXj00UfjmWeeqcdsADDiVRVaAOCfcWcoAEgktACQKO3t\nPbXg1o+VHTt2LHp7e+PkyZNRKBRi/vz5sWDBgkaP1bRKpVKsW7cuOjo6Yt26dY0epymdPXs2+vr6\n4siRI1EoFGLlypVxxx13NHqspvPee+/FRx99FIVCISZOnBirVq2Ka665ptFjNdzWrVujv78/2tvb\no6enJyIizpw5E5s2bYqffvopbrrppnjuuefi+uuvb/Ck9dO0Z7Ru/VidUaNGxdKlS2PTpk3xyiuv\nxIcffmifLmHHjh3R1dXV6DGa2ltvvRUzZsyIzZs3x2uvvWa//sbg4GB88MEHsXHjxujp6YlSqRQ7\nd+5s9FhNYc6cObF+/fr/82vbtm2L6dOnx5YtW2L69Omxbdu2Bk3XGE0bWrd+rM748eOju7s7IiLG\njBkTXV1d7tx1EcePH4/+/v6YN29eo0dpWr/88kt89dVXMXfu3IiIaGtri+uuu67BUzWnUqkUFy5c\niOHh4bhw4UKMHz++0SM1halTp/6/s9Vdu3bFI488EhERjzzyyBX3tbxpLx3/3a0fDx482MCJmt/R\no0fj8OHDMXny5EaP0pTefvvtWLJkSZw7d67RozSto0ePxrhx42Lr1q3x3XffRXd3dyxbtixGjx7d\n6NGaSkdHRzz11FOxcuXKuOaaa+Kee+6Je+65p9FjNa1Tp0798Y3IDTfcEKdOnWrwRPXVtGe0XJ7z\n589HT09PLFu2LMaOHdvocZrOZ599Fu3t7X+c/fP3hoeH4/Dhw/H444/Hq6++Gtdee+0Vd5mvGmfO\nnIldu3ZFb29vvPHGG3H+/Pn45JNPGj3WiFAoFKJQKDR6jLpq2tC69WP1hoaGoqenJx5++OGYPXt2\no8dpSgcOHIjdu3fH6tWrY/PmzfHFF1/Eli1bGj1W0+ns7IzOzs6YMmVKRETcf//9cfjw4QZP1Xz2\n7dsXEyZMiHHjxkVbW1vMnj07vvnmm0aP1bTa29vjxIkTERFx4sSJGDduXIMnqq+mDa1bP1anXC5H\nX19fdHV1xcKFCxs9TtNavHhx9PX1RW9vb6xduzbuuuuuWLNmTaPHajo33HBDdHZ2xsDAQET8FpRb\nb721wVM1nxtvvDEOHjwYv/76a5TL5di3b59/NHYJM2fOjI8//jgiIj7++OOYNWtWgyeqr6a+M5Rb\nP1b29ddfx0svvRSTJk3643LMs88+G/fee2+DJ2te+/fvj+3bt3t7z0V8++230dfXF0NDQzFhwoRY\ntWrVFfVWjGq9++67sXPnzhg1alT85z//iRUrVsTVV1/d6LEabvPmzfHll1/G6dOno729PRYtWhSz\nZs2KTZs2xbFjx67It/c0dWgBYKRr2kvHANAKhBYAEgktACQSWgBIJLQAkEhoASCR0AJAIqEFgET/\nC8NFcfy4dKJeAAAAAElFTkSuQmCC\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7f8c3afabe48>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"eval_DMmars[\"Mark\"].hist(bins=np.linspace(0.,11.,22))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"source": [
|
|
"## BB mars"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 29,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/home/lafrite/.virtualenvs/enseignement/lib/python3.6/site-packages/pandas/core/generic.py:3295: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" self._update_inplace(new_data)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:484: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Mark\"] = compute_marks(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:485: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Level\"] = compute_level(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:486: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Latex_rep\"] = compute_latex_rep(df)\n",
|
|
"/home/lafrite/scripts/notes_analysis/notes_tools/tools/df_marks_manip.py:487: SettingWithCopyWarning: \n",
|
|
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
|
|
"Try using .loc[row_indexer,col_indexer] = value instead\n",
|
|
"\n",
|
|
"See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
|
|
" df[\"Normalized\"] = compute_normalized(df)\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"flat_BBmars = flat_T3[flat_T3[\"Nom\"]==\"Bbmars\"]\n",
|
|
"quest_BBmars, exo_BBmars, eval_BBmars = digest_flat_df(flat_BBmars)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 32,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"count 23.00\n",
|
|
"mean 18.50\n",
|
|
"std 5.39\n",
|
|
"min 4.50\n",
|
|
"25% 15.75\n",
|
|
"50% 18.00\n",
|
|
"75% 20.75\n",
|
|
"max 27.50\n",
|
|
"Name: Mark, dtype: float64"
|
|
]
|
|
},
|
|
"execution_count": 32,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"eval_BBmars[\"Mark\"].describe()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 31,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Eleve</th>\n",
|
|
" <th>Mark_barem</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>ABDALLAH Elza</td>\n",
|
|
" <td>18 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>ABDALLAH Nourayina</td>\n",
|
|
" <td>17 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>ABDALLAH Roukia</td>\n",
|
|
" <td>15 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>ABOUDOU Faise</td>\n",
|
|
" <td>26,5 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>AHAMADI Laila</td>\n",
|
|
" <td>27,5 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>AHAMADI Satti</td>\n",
|
|
" <td>13 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>AHMED Nachmie</td>\n",
|
|
" <td>19 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>ALI ABDALLAH Raphael</td>\n",
|
|
" <td>20 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>ATTOUMANE Nasrati</td>\n",
|
|
" <td>21 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>ATTOUMANE Nedjima</td>\n",
|
|
" <td>20 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>DARKAOUI Issouf</td>\n",
|
|
" <td>15,5 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>DHOIMIR Hidayat</td>\n",
|
|
" <td>16 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>DJAMAL Hounaissati</td>\n",
|
|
" <td>15 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>DJANFAR Houmadi</td>\n",
|
|
" <td>4,5 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>FAIZ Aoufi Youssouf</td>\n",
|
|
" <td>10 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>HAMZA El-Hadji</td>\n",
|
|
" <td>20 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>16</th>\n",
|
|
" <td>HOUFRANE Soirta</td>\n",
|
|
" <td>16,5 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>IBRAHIM Rouiyati</td>\n",
|
|
" <td>26 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>ISSOUF Toifia</td>\n",
|
|
" <td>18 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>MOADJO Hachimia</td>\n",
|
|
" <td>17,5 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>20</th>\n",
|
|
" <td>MOHAMED Abderemane</td>\n",
|
|
" <td>25,5 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>21</th>\n",
|
|
" <td>MOHAMED Nadhir-Eddine</td>\n",
|
|
" <td>20,5 / 39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>22</th>\n",
|
|
" <td>YOUSSOUF Ouldine</td>\n",
|
|
" <td>23,5 / 39</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" Eleve Mark_barem\n",
|
|
"0 ABDALLAH Elza 18 / 39\n",
|
|
"1 ABDALLAH Nourayina 17 / 39\n",
|
|
"2 ABDALLAH Roukia 15 / 39\n",
|
|
"3 ABOUDOU Faise 26,5 / 39\n",
|
|
"4 AHAMADI Laila 27,5 / 39\n",
|
|
"5 AHAMADI Satti 13 / 39\n",
|
|
"6 AHMED Nachmie 19 / 39\n",
|
|
"7 ALI ABDALLAH Raphael 20 / 39\n",
|
|
"8 ATTOUMANE Nasrati 21 / 39\n",
|
|
"9 ATTOUMANE Nedjima 20 / 39\n",
|
|
"10 DARKAOUI Issouf 15,5 / 39\n",
|
|
"11 DHOIMIR Hidayat 16 / 39\n",
|
|
"12 DJAMAL Hounaissati 15 / 39\n",
|
|
"13 DJANFAR Houmadi 4,5 / 39\n",
|
|
"14 FAIZ Aoufi Youssouf 10 / 39\n",
|
|
"15 HAMZA El-Hadji 20 / 39\n",
|
|
"16 HOUFRANE Soirta 16,5 / 39\n",
|
|
"17 IBRAHIM Rouiyati 26 / 39\n",
|
|
"18 ISSOUF Toifia 18 / 39\n",
|
|
"19 MOADJO Hachimia 17,5 / 39\n",
|
|
"20 MOHAMED Abderemane 25,5 / 39\n",
|
|
"21 MOHAMED Nadhir-Eddine 20,5 / 39\n",
|
|
"22 YOUSSOUF Ouldine 23,5 / 39"
|
|
]
|
|
},
|
|
"execution_count": 31,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"eval_BBmars[[\"Eleve\", \"Mark_barem\"]]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 34,
|
|
"metadata": {
|
|
"collapsed": false
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<matplotlib.axes._subplots.AxesSubplot at 0x7f8c3ade3710>"
|
|
]
|
|
},
|
|
"execution_count": 34,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"/home/lafrite/.virtualenvs/enseignement/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans\n",
|
|
" (prop.get_family(), self.defaultFamily[fontext]))\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\nMbzM49NPP3X6+/sdx3GcDz/80Fm7dq1F1ITxMpO+vr6hywcPHnR+9rOfJTpmQnmZieM4zqVLl5yV\nK1c6K1ascFpbWw2SJo6XmfzpT39yNm3aZJQw8bzMpKOjw1m6dKnT29vrOI7jXLhwwSJqQnh93Xzu\n/fffdxoaGuKea0QcpvZyys2CggJNnTo1Jf5kyss87rvvPo0dO1aSNG3atGFnRUs2XmaSlZU1dLm/\nvz/ptxUvM5GkxsZGff3rX1d6erpBysTyOpNU4mUmH3/8sebNm6fs7GxJ0oQJEyyiJsTNbiP79u3T\n1772tbjnGhGHqa91ys3Tp08bJrJ1s/PYs2eP7r///kREM+N1Jh988IF27typgYEBrVy5MpERE87L\nTNra2tTZ2amZM2fqD3/4Q6IjJpzX7eTAgQM6ceKEJk2apMWLFys/Pz+RMRPKy0w6OjokST/5yU8U\niUT0jW98I2l/p9zM79f//Oc/On/+vO6777645xoRe8a4dXv37lVbW5ueeuop6ygjQmVlpdavX6/n\nn39ev/vd76zjmIpEIvrNb36jb37zm9ZRRpSysjI1NDRo9erVmjFjhhoaGqwjmYtEIjp79qzq6ur0\n+uuv61e/+pX6+vqsY5nbt2+fysvLNWZM/KtyRJSxl1NuphKv8zhy5Ih+//vfa9myZUl/CPJmt5FU\nODzpNpP+/n61t7frpz/9qV599VWdPn1a9fX1+utf/2oRNyG8bCc5OTlDr5eKigq1tbUlNGOieT2l\ncSgUUlpamgoKCjRp0iSdPXs20VET4mZ+l+zfv18PPfRQQnKNiDL2csrNVOJlHmfOnNGvf/1rLVu2\nLKnf3/mcl5l88ZdHS0uLJk2alOiYCeU2k6ysLG3evFkNDQ1qaGjQtGnTtGzZsqT+NLWX7aSnp2fo\ncjgcTvpP3HuZyVe/+tWhTw9fvHhRZ8+eTdqzKHrtm3/961/q6+vT9OnTE5JrRLxn7Pf79eKLL+rN\nN98cOuVmUVFR1Ck3W1tbtXr1avX19emTTz7Rjh07tHbtWuvoceFlHu+++676+/uHZpCfn6/ly5cb\nJ48fLzP54IMP9Omnn8rv9ys7O1uvvvqqdey48jKTVONlJrt27VI4HB7aTqqrq61jx5WXmXzlK1/R\nX/7yF/3gBz/QmDFj9MILLyTtf/bj9XWzb98+zZ49O2EfBOV0mAAAGBsRh6kBAEhllDEAAMYoYwAA\njFHGAAAYo4wBADBGGQMAYIwyBgDAGGUMAICx/wfR4J+tYLxouwAAAABJRU5ErkJggg==\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x7f8c3ad7feb8>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"eval_BBmars[\"Normalized\"].hist(bins = 20)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"extensions": {
|
|
"jupyter_dashboards": {
|
|
"activeView": "report_default",
|
|
"version": 1,
|
|
"views": {
|
|
"grid_default": {
|
|
"cellMargin": 10,
|
|
"defaultCellHeight": 20,
|
|
"maxColumns": 12,
|
|
"name": "grid",
|
|
"type": "grid"
|
|
},
|
|
"report_default": {
|
|
"name": "report",
|
|
"type": "report"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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.0"
|
|
},
|
|
"widgets": {
|
|
"state": {
|
|
"d97f7e8e574e4afbb01a828a05feb445": {
|
|
"views": [
|
|
{
|
|
"cell_index": 27
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"version": "1.2.0"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 1
|
|
}
|