2016-2017/Notes/Manip 509.ipynb
2017-06-16 09:49:23 +03:00

2707 lines
102 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"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 repytex.tools import extract_flat_marks, get_class_ws, digest_flat_df, term, evaluation\n",
"from repytex.tools.bareme import tranform_scale\n",
"from repytex.tools.marks_plottings import *"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"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(\"<\", \"&lt;\").replace(\">\", \"&gt;\").replace(\"&\", \"&amp;\")\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": {},
"outputs": [],
"source": [
"ws = get_class_ws(\"509\")\n",
"flat = extract_flat_marks(ws)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['DS1', 'DS2', 'DS3', 'Groupe', 'DS4', 'DS5', 'DS6',\n",
" 'Calcul mental T2', 'DM1', 'Groupe_2', 'DS7', 'DS8', 'DS9', 'DS10',\n",
" 'Calcul mental T1', 'CMT3'], 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": [
"## DS2"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ds2_flat = flat[flat[\"Nom\"] == 'DS2']"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/lafrite/scripts/Repytex/repytex/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[\"Mark\"] = compute_marks(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Level\"] = compute_level(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Latex_rep\"] = compute_latex_rep(df)\n",
"/home/lafrite/scripts/Repytex/repytex/tools/df_marks_manip.py:488: 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": [
"quest_DS2, exo_DS2, eval_DS2 = digest_flat_df(ds2_flat)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"eval_DS2 = eval_DS2[eval_DS2[\"Mark\"] > 0]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f4dca2eebe0>"
]
},
"execution_count": 8,
"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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\nByVJR44cUU1NzS0/VwYAALfneJp6ZGREXV1disViisfjeuaZZ1RbW6u9e/equrpawWBQy5Yt086d\nO/XGG2+oqKhILS0t0zE7AAAZwTHGDz30kNrb22+5fe3atRMf5+Xl6c0333R3MgAAsgRX4AIAwBgx\nBgDAGDEGAMAYMQYAwBgxBgDAGDEGAMAYMQYAwBgxBgDAGDEGAMAYMQYAwBgxBgDAGDEGAMAYMQYA\nwBgxBgDAGDEGAMAYMQYAwBgxBgDAGDEGAMAYMQYAwBgxBgDAGDEGAMAYMQYAwBgxBgDAGDEGAMAY\nMQYAwBgxBgDAWI7TBkNDQ+rq6tKlS5fk8Xi0fPlyrVy5ctI2J0+eVHt7u8rLyyVJdXV1eumll5Iz\nMQAAGcYxxl6vV+vXr1dVVZWuXbum1tZWPf7445ozZ86k7R599FG1trYmbVAAADKV42nqsrIyVVVV\nSZJmzpypiooKhcPhpA8GAEC2cDwy/l+Dg4Pq7+/XvHnzbrmvr69PmzdvVllZmdavX6/KykrXhgQA\nIJNNOcbXr19XR0eHNmzYoIKCgkn3Pfzww+ru7lZ+fr56e3u1detWdXZ2Oq4ZCAS+/8TTuF62Yj8m\n5oLL67n9erg9n5Sc90yqvw+z7XVO9dcjWabreU8pxpFIRB0dHVq6dKnq6upuuf9/47xo0SLt2rVL\nly9fVklJyV3XHRgY+J7j3lkgEHB1vWzFfkw96fB6uD1jNr4PU/35pvp8yZCM9+Gd4u74M+N4PK6e\nnh5VVFRo9erVt93m0qVLisfjkqRz584pFoupuLg4gXEBAMgejkfGZ86c0aFDhzR37lxt3rxZkrRu\n3ToNDQ1JklasWKEjR47os88+k9frVV5enlpaWuTxeJI7OQAAGcIxxo888oj27dt3120aGxvV2Njo\n2lAAAGQTrsAFAIAxYgwAgDFiDACAMWIMAIAxYgwAgDFiDACAMWIMAIAxYgwAgDFiDACAMWIMAIAx\nYgwAgDFiDACAMWIMAIAxYgwAgDFiDACAMWIMAIAxYgwAgDFiDACAMWIMAIAxYgwAgDFiDACAMWIM\nAIAxYgwAgDFiDACAMWIMAIAxYgwAgDFiDACAsRynDYaGhtTV1aVLly7J4/Fo+fLlWrly5aRt4vG4\ndu/erWPHjmnGjBlqbm5WVVVV0oYGACCTOMbY6/Vq/fr1qqqq0rVr19Ta2qrHH39cc+bMmdjm2LFj\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4dca2ff240>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"eval_DS2[\"Mark\"].hist(bins = 20, range = (0,10))"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"count 27.00\n",
"mean 5.85\n",
"std 1.93\n",
"min 2.00\n",
"25% 4.25\n",
"50% 6.00\n",
"75% 7.25\n",
"max 9.50\n",
"Name: Mark, dtype: float64"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"eval_DS2[\"Mark\"].describe()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"# Trimestre 2"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"flat_T2 = flat[flat[\"Trimestre\"] == 2]"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Bareme 28\n",
"Commentaire Calcul mental\n",
"Competence Cal\n",
"Date 2017-02-13 00:00:00\n",
"Domaine Cal\n",
"Eleve ABDOU Dalila\n",
"Exercice 1\n",
"Niveau 0\n",
"Nom Calcul mental T2\n",
"Note NaN\n",
"Question \n",
"Trimestre 2\n",
"Name: 2089, dtype: object"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flat_T2.loc[2089]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/lafrite/scripts/Repytex/repytex/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[\"Mark\"] = compute_marks(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Level\"] = compute_level(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Latex_rep\"] = compute_latex_rep(df)\n",
"/home/lafrite/scripts/Repytex/repytex/tools/df_marks_manip.py:488: 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": [
"quest_T2, exo_T2, eval_T2 = digest_flat_df(flat_T2)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['DS4', 'DS5', 'DS6', 'Calcul mental T2', 'DM1', 'Groupe_2', 'CMT3'], dtype=object)"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flat_T2[\"Nom\"].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## DS4"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ds4_flat = flat_T2[flat_T2[\"Nom\"]==\"DS4\"]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/lafrite/scripts/Repytex/repytex/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[\"Mark\"] = compute_marks(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Level\"] = compute_level(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Latex_rep\"] = compute_latex_rep(df)\n",
"/home/lafrite/scripts/Repytex/repytex/tools/df_marks_manip.py:488: 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": [
"ds4_quest, ds4_exo, ds4_eval = digest_flat_df(ds4_flat)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ds4_eval = tranform_scale(ds4_eval, 10, \"min\")"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"numpy.datetime64('2016-12-02T00:00:00.000000000')"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds4_eval[\"Date\"].unique()[0]"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"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>ABDOU Akram</td>\n",
" <td>5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>AHMED Roukaya</td>\n",
" <td>4 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ALI MROIMANA Riama</td>\n",
" <td>5,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>ALI Roukia</td>\n",
" <td>1 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>ALI Taoumidine</td>\n",
" <td>2 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>AMBOUDI Maoulida</td>\n",
" <td>4 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ANLI Ramna</td>\n",
" <td>5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>BACAR Faïze</td>\n",
" <td>8 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>BACAR Oirda</td>\n",
" <td>9 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>BAKARY Nassrya</td>\n",
" <td>3 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>BOUCHOURANE Mariame</td>\n",
" <td>10 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>DAOUD Ankidine</td>\n",
" <td>2,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>HOUMADI Faïz</td>\n",
" <td>4,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>HOUMADI Nyline Ayiza</td>\n",
" <td>6 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>ISSOUF Omar</td>\n",
" <td>3,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>M'CHINDRA Issiaka</td>\n",
" <td>10 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MAJANI Charmila</td>\n",
" <td>7,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MALIDE Nadjida</td>\n",
" <td>5,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>MOUSTADIRANE Anzidati</td>\n",
" <td>1 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>MSA CHIBACO Amina</td>\n",
" <td>2,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>OUSSENI MCOLO Nayma</td>\n",
" <td>5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>SAENRI Melina</td>\n",
" <td>6 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>SAID ALI Fazil</td>\n",
" <td>3,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>SAID Mohamadi</td>\n",
" <td>6,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>SAÏNDOU Aïda</td>\n",
" <td>2,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>SOUMAILA Roufouanti</td>\n",
" <td>5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>YOUSSOUF Raïka</td>\n",
" <td>7 / 10</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark_barem\n",
"0 ABDOU Akram 5 / 10\n",
"1 AHMED Roukaya 4 / 10\n",
"2 ALI MROIMANA Riama 5,5 / 10\n",
"3 ALI Roukia 1 / 10\n",
"4 ALI Taoumidine 2 / 10\n",
"5 AMBOUDI Maoulida 4 / 10\n",
"6 ANLI Ramna 5 / 10\n",
"7 BACAR Faïze 8 / 10\n",
"8 BACAR Oirda 9 / 10\n",
"9 BAKARY Nassrya 3 / 10\n",
"10 BOUCHOURANE Mariame 10 / 10\n",
"11 DAOUD Ankidine 2,5 / 10\n",
"12 HOUMADI Faïz 4,5 / 10\n",
"13 HOUMADI Nyline Ayiza 6 / 10\n",
"14 ISSOUF Omar 3,5 / 10\n",
"15 M'CHINDRA Issiaka 10 / 10\n",
"16 MAJANI Charmila 7,5 / 10\n",
"17 MALIDE Nadjida 5,5 / 10\n",
"18 MOUSTADIRANE Anzidati 1 / 10\n",
"19 MSA CHIBACO Amina 2,5 / 10\n",
"20 OUSSENI MCOLO Nayma 5 / 10\n",
"21 SAENRI Melina 6 / 10\n",
"22 SAID ALI Fazil 3,5 / 10\n",
"23 SAID Mohamadi 6,5 / 10\n",
"24 SAÏNDOU Aïda 2,5 / 10\n",
"25 SOUMAILA Roufouanti 5 / 10\n",
"26 YOUSSOUF Raïka 7 / 10"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds4_eval[[\"Eleve\", \"Mark_barem\"]]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## DS5"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ds5_flat = flat_T2[flat_T2[\"Nom\"]==\"DS5\"]"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/lafrite/scripts/Repytex/repytex/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[\"Mark\"] = compute_marks(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Level\"] = compute_level(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Latex_rep\"] = compute_latex_rep(df)\n",
"/home/lafrite/scripts/Repytex/repytex/tools/df_marks_manip.py:488: 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": [
"ds5_quest, ds5_exo, ds5_eval = digest_flat_df(ds5_flat)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ds5_eval = tranform_scale(ds5_eval, 10, 'min')"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['2017-01-18T00:00:00.000000000'], dtype='datetime64[ns]')"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds5_eval[\"Date\"].unique()"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"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>ABDOU Akram</td>\n",
" <td>6 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>AHMED Roukaya</td>\n",
" <td>5,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ALI MROIMANA Riama</td>\n",
" <td>7 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>ALI Roukia</td>\n",
" <td>0 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>ALI Taoumidine</td>\n",
" <td>7 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>AMBOUDI Maoulida</td>\n",
" <td>5,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ANLI Ramna</td>\n",
" <td>9,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>BACAR Faïze</td>\n",
" <td>5,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>BACAR Oirda</td>\n",
" <td>10 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>BAKARY Nassrya</td>\n",
" <td>9 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>BOUCHOURANE Mariame</td>\n",
" <td>10 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>DAOUD Ankidine</td>\n",
" <td>4 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>HOUMADI Faïz</td>\n",
" <td>10 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>HOUMADI Nyline Ayiza</td>\n",
" <td>8,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>ISSOUF Omar</td>\n",
" <td>4,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>M'CHINDRA Issiaka</td>\n",
" <td>9,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MAJANI Charmila</td>\n",
" <td>10 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MALIDE Nadjida</td>\n",
" <td>10 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>MOUSTADIRANE Anzidati</td>\n",
" <td>6 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>MSA CHIBACO Amina</td>\n",
" <td>6,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>OUSSENI MCOLO Nayma</td>\n",
" <td>10 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>SAENRI Melina</td>\n",
" <td>7 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>SAID ALI Fazil</td>\n",
" <td>10 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>SAID Mohamadi</td>\n",
" <td>5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>SAÏNDOU Aïda</td>\n",
" <td>6 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>SOUMAILA Roufouanti</td>\n",
" <td>7 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>YOUSSOUF Raïka</td>\n",
" <td>8 / 10</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark_barem\n",
"0 ABDOU Akram 6 / 10\n",
"1 AHMED Roukaya 5,5 / 10\n",
"2 ALI MROIMANA Riama 7 / 10\n",
"3 ALI Roukia 0 / 10\n",
"4 ALI Taoumidine 7 / 10\n",
"5 AMBOUDI Maoulida 5,5 / 10\n",
"6 ANLI Ramna 9,5 / 10\n",
"7 BACAR Faïze 5,5 / 10\n",
"8 BACAR Oirda 10 / 10\n",
"9 BAKARY Nassrya 9 / 10\n",
"10 BOUCHOURANE Mariame 10 / 10\n",
"11 DAOUD Ankidine 4 / 10\n",
"12 HOUMADI Faïz 10 / 10\n",
"13 HOUMADI Nyline Ayiza 8,5 / 10\n",
"14 ISSOUF Omar 4,5 / 10\n",
"15 M'CHINDRA Issiaka 9,5 / 10\n",
"16 MAJANI Charmila 10 / 10\n",
"17 MALIDE Nadjida 10 / 10\n",
"18 MOUSTADIRANE Anzidati 6 / 10\n",
"19 MSA CHIBACO Amina 6,5 / 10\n",
"20 OUSSENI MCOLO Nayma 10 / 10\n",
"21 SAENRI Melina 7 / 10\n",
"22 SAID ALI Fazil 10 / 10\n",
"23 SAID Mohamadi 5 / 10\n",
"24 SAÏNDOU Aïda 6 / 10\n",
"25 SOUMAILA Roufouanti 7 / 10\n",
"26 YOUSSOUF Raïka 8 / 10"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds5_eval[[\"Eleve\", \"Mark_barem\"]]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## DS6"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ds6_flat = flat_T2[flat_T2[\"Nom\"]==\"DS6\"]"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/lafrite/scripts/Repytex/repytex/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[\"Mark\"] = compute_marks(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Level\"] = compute_level(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Latex_rep\"] = compute_latex_rep(df)\n",
"/home/lafrite/scripts/Repytex/repytex/tools/df_marks_manip.py:488: 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": [
"ds6_quest, ds6_exo, ds6_eval = digest_flat_df(ds6_flat)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ds6_eval = tranform_scale(ds6_eval, 10, 'min')"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['2017-02-01T00:00:00.000000000'], dtype='datetime64[ns]')"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds6_eval[\"Date\"].unique()"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"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>ABDOU Akram</td>\n",
" <td>3 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>AHMED Roukaya</td>\n",
" <td>4 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ALI MROIMANA Riama</td>\n",
" <td>5,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>ALI Roukia</td>\n",
" <td>5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>ALI Taoumidine</td>\n",
" <td>6,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>AMBOUDI Maoulida</td>\n",
" <td>6,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ANLI Ramna</td>\n",
" <td>7 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>BACAR Faïze</td>\n",
" <td>6 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>BACAR Oirda</td>\n",
" <td>9,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>BAKARY Nassrya</td>\n",
" <td>8,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>BOUCHOURANE Mariame</td>\n",
" <td>9,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>DAOUD Ankidine</td>\n",
" <td>5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>HOUMADI Faïz</td>\n",
" <td>8 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>HOUMADI Nyline Ayiza</td>\n",
" <td>8 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>ISSOUF Omar</td>\n",
" <td>4 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>M'CHINDRA Issiaka</td>\n",
" <td>8 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MAJANI Charmila</td>\n",
" <td>8,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MALIDE Nadjida</td>\n",
" <td>8 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>MOUSTADIRANE Anzidati</td>\n",
" <td>3 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>MSA CHIBACO Amina</td>\n",
" <td>6,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>OUSSENI MCOLO Nayma</td>\n",
" <td>6,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>SAENRI Melina</td>\n",
" <td>6 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>SAID ALI Fazil</td>\n",
" <td>6,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>SAID Mohamadi</td>\n",
" <td>4 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>SAÏNDOU Aïda</td>\n",
" <td>3,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>SOUMAILA Roufouanti</td>\n",
" <td>6,5 / 10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>YOUSSOUF Raïka</td>\n",
" <td>8 / 10</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark_barem\n",
"0 ABDOU Akram 3 / 10\n",
"1 AHMED Roukaya 4 / 10\n",
"2 ALI MROIMANA Riama 5,5 / 10\n",
"3 ALI Roukia 5 / 10\n",
"4 ALI Taoumidine 6,5 / 10\n",
"5 AMBOUDI Maoulida 6,5 / 10\n",
"6 ANLI Ramna 7 / 10\n",
"7 BACAR Faïze 6 / 10\n",
"8 BACAR Oirda 9,5 / 10\n",
"9 BAKARY Nassrya 8,5 / 10\n",
"10 BOUCHOURANE Mariame 9,5 / 10\n",
"11 DAOUD Ankidine 5 / 10\n",
"12 HOUMADI Faïz 8 / 10\n",
"13 HOUMADI Nyline Ayiza 8 / 10\n",
"14 ISSOUF Omar 4 / 10\n",
"15 M'CHINDRA Issiaka 8 / 10\n",
"16 MAJANI Charmila 8,5 / 10\n",
"17 MALIDE Nadjida 8 / 10\n",
"18 MOUSTADIRANE Anzidati 3 / 10\n",
"19 MSA CHIBACO Amina 6,5 / 10\n",
"20 OUSSENI MCOLO Nayma 6,5 / 10\n",
"21 SAENRI Melina 6 / 10\n",
"22 SAID ALI Fazil 6,5 / 10\n",
"23 SAID Mohamadi 4 / 10\n",
"24 SAÏNDOU Aïda 3,5 / 10\n",
"25 SOUMAILA Roufouanti 6,5 / 10\n",
"26 YOUSSOUF Raïka 8 / 10"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds6_eval[[\"Eleve\", \"Mark_barem\"]]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Calcul mental T2"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"CMT2_flat = flat_T2[flat_T2[\"Nom\"]==\"Calcul mental T2\"]"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/lafrite/scripts/Repytex/repytex/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[\"Mark\"] = compute_marks(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Level\"] = compute_level(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Latex_rep\"] = compute_latex_rep(df)\n",
"/home/lafrite/scripts/Repytex/repytex/tools/df_marks_manip.py:488: 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": [
"CMT2_quest, CMT2_exo, CMT2_eval = digest_flat_df(CMT2_flat)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"CMT2_eval = tranform_scale(CMT2_eval, 20, 'prop')"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"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>ABDOU Akram</td>\n",
" <td>11,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>AHMED Roukaya</td>\n",
" <td>6 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ALI MROIMANA Riama</td>\n",
" <td>12,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>ALI Roukia</td>\n",
" <td>5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>ALI Taoumidine</td>\n",
" <td>4,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>AMBOUDI Maoulida</td>\n",
" <td>16,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ANLI Ramna</td>\n",
" <td>11 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>BACAR Faïze</td>\n",
" <td>11,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>BACAR Oirda</td>\n",
" <td>19 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>BAKARY Nassrya</td>\n",
" <td>6,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>BOUCHOURANE Mariame</td>\n",
" <td>19 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>DAOUD Ankidine</td>\n",
" <td>9,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>HOUMADI Faïz</td>\n",
" <td>14,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>HOUMADI Nyline Ayiza</td>\n",
" <td>14 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>ISSOUF Omar</td>\n",
" <td>16 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>M'CHINDRA Issiaka</td>\n",
" <td>11 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MAJANI Charmila</td>\n",
" <td>10 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MALIDE Nadjida</td>\n",
" <td>16,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>MOUSTADIRANE Anzidati</td>\n",
" <td>3,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>MSA CHIBACO Amina</td>\n",
" <td>0 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>OUSSENI MCOLO Nayma</td>\n",
" <td>10 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>SAENRI Melina</td>\n",
" <td>15 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>SAID ALI Fazil</td>\n",
" <td>13 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>SAID Mohamadi</td>\n",
" <td>2,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>SAÏNDOU Aïda</td>\n",
" <td>10 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>SOUMAILA Roufouanti</td>\n",
" <td>6 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>YOUSSOUF Raïka</td>\n",
" <td>7,5 / 20</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark_barem\n",
"0 ABDOU Akram 11,5 / 20\n",
"1 AHMED Roukaya 6 / 20\n",
"2 ALI MROIMANA Riama 12,5 / 20\n",
"3 ALI Roukia 5 / 20\n",
"4 ALI Taoumidine 4,5 / 20\n",
"5 AMBOUDI Maoulida 16,5 / 20\n",
"6 ANLI Ramna 11 / 20\n",
"7 BACAR Faïze 11,5 / 20\n",
"8 BACAR Oirda 19 / 20\n",
"9 BAKARY Nassrya 6,5 / 20\n",
"10 BOUCHOURANE Mariame 19 / 20\n",
"11 DAOUD Ankidine 9,5 / 20\n",
"12 HOUMADI Faïz 14,5 / 20\n",
"13 HOUMADI Nyline Ayiza 14 / 20\n",
"14 ISSOUF Omar 16 / 20\n",
"15 M'CHINDRA Issiaka 11 / 20\n",
"16 MAJANI Charmila 10 / 20\n",
"17 MALIDE Nadjida 16,5 / 20\n",
"18 MOUSTADIRANE Anzidati 3,5 / 20\n",
"19 MSA CHIBACO Amina 0 / 20\n",
"20 OUSSENI MCOLO Nayma 10 / 20\n",
"21 SAENRI Melina 15 / 20\n",
"22 SAID ALI Fazil 13 / 20\n",
"23 SAID Mohamadi 2,5 / 20\n",
"24 SAÏNDOU Aïda 10 / 20\n",
"25 SOUMAILA Roufouanti 6 / 20\n",
"26 YOUSSOUF Raïka 7,5 / 20"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"CMT2_eval[[\"Eleve\", \"Mark_barem\"]]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## DM1"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"dm1_flat = flat_T2[flat_T2[\"Nom\"]==\"DM1\"]"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/lafrite/scripts/Repytex/repytex/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[\"Mark\"] = compute_marks(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Level\"] = compute_level(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Latex_rep\"] = compute_latex_rep(df)\n",
"/home/lafrite/scripts/Repytex/repytex/tools/df_marks_manip.py:488: 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": [
"dm1_quest, dm1_exo, dm1_eval = digest_flat_df(dm1_flat)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"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>ALI MROIMANA Riama</td>\n",
" <td>3,5 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ALI Taoumidine</td>\n",
" <td>1 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>AMBOUDI Maoulida</td>\n",
" <td>1 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>ANLI Ramna</td>\n",
" <td>3 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>BACAR Faïze</td>\n",
" <td>3 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>BACAR Oirda</td>\n",
" <td>3,5 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>BAKARY Nassrya</td>\n",
" <td>2,5 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>BOUCHOURANE Mariame</td>\n",
" <td>3,5 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>DAOUD Ankidine</td>\n",
" <td>1 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>HOUMADI Faïz</td>\n",
" <td>1 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>HOUMADI Nyline Ayiza</td>\n",
" <td>2,5 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>ISSOUF Omar</td>\n",
" <td>1 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>M'CHINDRA Issiaka</td>\n",
" <td>1 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>MAJANI Charmila</td>\n",
" <td>3,5 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>OUSSENI MCOLO Nayma</td>\n",
" <td>1 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>SAID ALI Fazil</td>\n",
" <td>1,5 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>SAID Mohamadi</td>\n",
" <td>1 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>SAÏNDOU Aïda</td>\n",
" <td>3 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>SOUMAILA Roufouanti</td>\n",
" <td>2,5 / 5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark_barem\n",
"0 ALI MROIMANA Riama 3,5 / 5\n",
"1 ALI Taoumidine 1 / 5\n",
"2 AMBOUDI Maoulida 1 / 5\n",
"3 ANLI Ramna 3 / 5\n",
"4 BACAR Faïze 3 / 5\n",
"5 BACAR Oirda 3,5 / 5\n",
"6 BAKARY Nassrya 2,5 / 5\n",
"7 BOUCHOURANE Mariame 3,5 / 5\n",
"8 DAOUD Ankidine 1 / 5\n",
"9 HOUMADI Faïz 1 / 5\n",
"10 HOUMADI Nyline Ayiza 2,5 / 5\n",
"11 ISSOUF Omar 1 / 5\n",
"12 M'CHINDRA Issiaka 1 / 5\n",
"13 MAJANI Charmila 3,5 / 5\n",
"14 OUSSENI MCOLO Nayma 1 / 5\n",
"15 SAID ALI Fazil 1,5 / 5\n",
"16 SAID Mohamadi 1 / 5\n",
"17 SAÏNDOU Aïda 3 / 5\n",
"18 SOUMAILA Roufouanti 2,5 / 5"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dm1_eval[[\"Eleve\", \"Mark_barem\"]]"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"# Trimestre 3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## DS7"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ds7_flat = flat[flat[\"Nom\"]==\"DS7\"]"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/lafrite/scripts/Repytex/repytex/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[\"Mark\"] = compute_marks(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Level\"] = compute_level(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Latex_rep\"] = compute_latex_rep(df)\n",
"/home/lafrite/scripts/Repytex/repytex/tools/df_marks_manip.py:488: 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": [
"ds7_quest, ds7_exo, ds7_eval = digest_flat_df(ds7_flat)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"count 27.00\n",
"mean 5.93\n",
"std 1.70\n",
"min 2.00\n",
"25% 5.00\n",
"50% 6.00\n",
"75% 6.75\n",
"max 10.00\n",
"Name: Mark, dtype: float64"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds7_eval[\"Mark\"].describe()"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"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>ABDOU Akram</td>\n",
" <td>4 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>AHMED Roukaya</td>\n",
" <td>5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ALI MROIMANA Riama</td>\n",
" <td>5,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>ALI Roukia</td>\n",
" <td>2 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>ALI Taoumidine</td>\n",
" <td>5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>AMBOUDI Maoulida</td>\n",
" <td>5,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ANLI Ramna</td>\n",
" <td>8 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>BACAR Faïze</td>\n",
" <td>5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>BACAR Oirda</td>\n",
" <td>7,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>BAKARY Nassrya</td>\n",
" <td>8 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>BOUCHOURANE Mariame</td>\n",
" <td>10 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>DAOUD Ankidine</td>\n",
" <td>6 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>HOUMADI Faïz</td>\n",
" <td>5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>HOUMADI Nyline Ayiza</td>\n",
" <td>6,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>ISSOUF Omar</td>\n",
" <td>6 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>M'CHINDRA Issiaka</td>\n",
" <td>7 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MAJANI Charmila</td>\n",
" <td>7,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MALIDE Nadjida</td>\n",
" <td>8 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>MOUSTADIRANE Anzidati</td>\n",
" <td>3,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>MSA CHIBACO Amina</td>\n",
" <td>4,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>OUSSENI MCOLO Nayma</td>\n",
" <td>6,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>SAENRI Melina</td>\n",
" <td>6 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>SAID ALI Fazil</td>\n",
" <td>5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>SAID Mohamadi</td>\n",
" <td>3,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>SAÏNDOU Aïda</td>\n",
" <td>6,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>SOUMAILA Roufouanti</td>\n",
" <td>6,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>YOUSSOUF Raïka</td>\n",
" <td>6,5 / 11</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark_barem\n",
"0 ABDOU Akram 4 / 11\n",
"1 AHMED Roukaya 5 / 11\n",
"2 ALI MROIMANA Riama 5,5 / 11\n",
"3 ALI Roukia 2 / 11\n",
"4 ALI Taoumidine 5 / 11\n",
"5 AMBOUDI Maoulida 5,5 / 11\n",
"6 ANLI Ramna 8 / 11\n",
"7 BACAR Faïze 5 / 11\n",
"8 BACAR Oirda 7,5 / 11\n",
"9 BAKARY Nassrya 8 / 11\n",
"10 BOUCHOURANE Mariame 10 / 11\n",
"11 DAOUD Ankidine 6 / 11\n",
"12 HOUMADI Faïz 5 / 11\n",
"13 HOUMADI Nyline Ayiza 6,5 / 11\n",
"14 ISSOUF Omar 6 / 11\n",
"15 M'CHINDRA Issiaka 7 / 11\n",
"16 MAJANI Charmila 7,5 / 11\n",
"17 MALIDE Nadjida 8 / 11\n",
"18 MOUSTADIRANE Anzidati 3,5 / 11\n",
"19 MSA CHIBACO Amina 4,5 / 11\n",
"20 OUSSENI MCOLO Nayma 6,5 / 11\n",
"21 SAENRI Melina 6 / 11\n",
"22 SAID ALI Fazil 5 / 11\n",
"23 SAID Mohamadi 3,5 / 11\n",
"24 SAÏNDOU Aïda 6,5 / 11\n",
"25 SOUMAILA Roufouanti 6,5 / 11\n",
"26 YOUSSOUF Raïka 6,5 / 11"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds7_eval[[\"Eleve\", \"Mark_barem\"]]"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f4dc7dd7ac8>"
]
},
"execution_count": 40,
"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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\n9u3x6quvxj/+8Y+JmA0Aml7V0J44cSKuu+66uPbaa6OtrS0++9nPxt69eydiNgBoelVDOzAwEHPm\nzLn09pw5c2JgYCB1KABoFWN6jrYWnZ2d9VvsxX31W2sSqOuxeb8WO04pWv0Ytfr+6sVxqlna96+x\nqPP9NlF7qXpG29HREWfPnr309tmzZ6OjoyN1KABoFVVDe8MNN8Trr78e/f39MTo6Gn/84x9j6dKl\nEzEbADS9UlEURbUbHThwIH7+859HpVKJL37xi3HfffdNxGwA0PTGFFoAoDZeGQoAEgktACRK+/We\n8Tpz5kz09vbGm2++GaVSKdasWRN33XVXo8eqycjISGzZsiVGR0ejXC7HihUrYu3atY0ea1wqlUps\n2rQpOjo6YtOmTY0ep2aPPvpoTJ8+PaZMmRJTp06NrVu3Nnqkmly8eDF2794dp0+fjlKpFI888kjc\neOONjR7rsvX19cX27dsvvd3f3x9r166Nu+++u4FT1e43v/lNvPzyy1EqlWLevHmxfv36mDZtWqPH\numwvvfRS/P73v4+iKGL16tVNdX/s2rUrDhw4EO3t7dHT0xMRERcuXIjt27fHv/71r7j66qvjW9/6\nVlx11VV5QxST1MDAQHHy5MmiKIri7bffLjZs2FCcPn26wVPVplKpFENDQ0VRFMW///3v4jvf+U5x\n/PjxBk81Pi+88EKxY8eO4oc//GGjRxmX9evXF4ODg40eY9x+/OMfF7/73e+Konj3c+zChQsNnmj8\nyuVy8Y1vfKPo7+9v9Cg1OXv2bLF+/frinXfeKYqiKHp6eoo//OEPjR2qBq+99lrx+OOPF8PDw8Xo\n6Gjxve99r3j99dcbPdaYHT16tDh58mTx+OOPX/q75557rnj++eeLoiiK559/vnjuuedSZ5i0l45n\nz54d3d3dERFx5ZVXRldXV9O+IlWpVIrp06dHRES5XI5yuRylUqnBU9Xu7NmzceDAgVi9enWjRyEi\n3n777fjLX/4Sq1atioiItra2mDFjRoOnGr8jR47EddddF1dffXWjR6lZpVKJkZGRKJfLMTIyErNn\nz270SJftn//8ZyxYsCCuuOKKmDp1anzqU5+KP/3pT40ea8wWLVr0v85W9+7dG7fffntERNx+++3p\nLys8aS8dv19/f3+cOnUqFixY0OhRalapVGLjxo3xxhtvxJ133hkLFy5s9Eg1e/bZZ+OBBx6IoaGh\nRo9SF0899VRERNxxxx2xZs2aBk9z+fr7+2PmzJmxa9eueO2116K7uzsefPDBSw/umtWrr74an/vc\n5xo9Rs06Ojriy1/+cjzyyCMxbdq0uOmmm+Kmm25q9FiXbd68efHLX/4yzp8/H9OmTYuDBw/GDTfc\n0OixxmVwcPDSg55Zs2bF4OBg6sebtGe07xkeHo6enp548MEH46Mf/Wijx6nZlClT4plnnondu3fH\nyZMn4+9//3ujR6rJ/v37o729/dLVhmb3/e9/P370ox/F5s2b47e//W0cO3as0SNdtnK5HKdOnYov\nfelL8fTTT8cVV1wRv/71rxs91riMjo7G/v37Y8WKFY0epWYXLlyIvXv3Rm9vb/zkJz+J4eHh2LNn\nT6PHumxz586Nr3zlK/Hkk0/GD37wg7j++utjypRJn44xK5VK6VcYJ/UZ7ejoaPT09MRtt90Wy5cv\nb/Q4dTFjxoxYvHhxHDp0KObPn9/ocS7b8ePHY9++fXHw4MEYGRmJoaGh2LlzZ2zYsKHRo9XkvZcT\nbW9vj2XLlsWJEydi0aJFDZ7q8syZMyfmzJlz6SrJihUrmj60Bw8ejE984hMxa9asRo9SsyNHjsQ1\n11wTM2fOjIiI5cuXx1//+tf4/Oc/3+DJLt+qVasuPTXxi1/84r/9RzPNqL29Pc6dOxezZ8+Oc+fO\nXbqPskzahyVFUcTu3bujq6sr7rnnnkaPMy5vvfVWXLx4MSLe/Qnkw4cPR1dXV4Onqs26deti9+7d\n0dvbG4899lh8+tOfbtrIDg8PX7r8PTw8HIcPH27KBz+zZs2KOXPmRF9fX0S8+w1+7ty5DZ5qfJr9\nsnFExMc+9rH429/+Fu+8804URRFHjhxp2q/79y6tnjlzJv785z/HypUrGzzR+CxdujReeeWViIh4\n5ZVXYtmyZakfb9Ke0R4/fjz27NkT8+fPjyeeeCIiIu6///64+eabGzzZ5Tt37lz09vZGpVKJoiji\n1ltvjVtuuaXRY33oDQ4OxrZt2yLi3cuvK1eujCVLljR4qtp87Wtfi507d8bo6Ghcc801sX79+kaP\nVLP3HvR885vfbPQo47Jw4cJYsWJFbNy4MaZOnRrXX399U/4MQERET09PnD9/Ptra2uLrX/96U/2w\n3Y4dO+LYsWNx/vz5ePjhh2Pt2rVx7733xvbt2+Pll1++9Os9mbwEIwAkmrSXjgGgFQgtACQSWgBI\nJLQAkEhoASCR0AJAIqEFgERCCwCJ/gsDQy3x3e07pQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4dc7dd27b8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ds7_eval[\"Mark\"].hist(bins=22)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## CMT3"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"cmT3_flat = flat[flat[\"Nom\"]==\"CMT3\"]"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/lafrite/scripts/Repytex/repytex/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[\"Mark\"] = compute_marks(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Level\"] = compute_level(df)\n",
"/home/lafrite/scripts/Repytex/repytex/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[\"Latex_rep\"] = compute_latex_rep(df)\n",
"/home/lafrite/scripts/Repytex/repytex/tools/df_marks_manip.py:488: 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": [
"cmT3_quest, cmT3_exo, cmT3_eval = digest_flat_df(cmT3_flat)"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"count 27.00\n",
"mean 13.67\n",
"std 5.70\n",
"min 1.00\n",
"25% 11.00\n",
"50% 15.00\n",
"75% 18.00\n",
"max 23.00\n",
"Name: Mark, dtype: float64"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cmT3_eval[\"Mark\"].describe()"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"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>ABDOU Akram</td>\n",
" <td>15 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>AHMED Roukaya</td>\n",
" <td>6 / 24</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ALI MROIMANA Riama</td>\n",
" <td>12 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>ALI Roukia</td>\n",
" <td>1 / 8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>ALI Taoumidine</td>\n",
" <td>10 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>AMBOUDI Maoulida</td>\n",
" <td>18 / 24</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ANLI Ramna</td>\n",
" <td>22 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>BACAR Faïze</td>\n",
" <td>15 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>BACAR Oirda</td>\n",
" <td>23 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>BAKARY Nassrya</td>\n",
" <td>11 / 24</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>BOUCHOURANE Mariame</td>\n",
" <td>22 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>DAOUD Ankidine</td>\n",
" <td>15 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>HOUMADI Faïz</td>\n",
" <td>18 / 24</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>HOUMADI Nyline Ayiza</td>\n",
" <td>14 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>ISSOUF Omar</td>\n",
" <td>18 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>M'CHINDRA Issiaka</td>\n",
" <td>18 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MAJANI Charmila</td>\n",
" <td>15 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MALIDE Nadjida</td>\n",
" <td>17 / 24</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>MOUSTADIRANE Anzidati</td>\n",
" <td>4 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>MSA CHIBACO Amina</td>\n",
" <td>12 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>OUSSENI MCOLO Nayma</td>\n",
" <td>15 / 24</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>SAENRI Melina</td>\n",
" <td>20 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>SAID ALI Fazil</td>\n",
" <td>4 / 16</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>SAID Mohamadi</td>\n",
" <td>7 / 24</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>SAÏNDOU Aïda</td>\n",
" <td>13 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>SOUMAILA Roufouanti</td>\n",
" <td>11 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>YOUSSOUF Raïka</td>\n",
" <td>13 / 28</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark_barem\n",
"0 ABDOU Akram 15 / 28\n",
"1 AHMED Roukaya 6 / 24\n",
"2 ALI MROIMANA Riama 12 / 28\n",
"3 ALI Roukia 1 / 8\n",
"4 ALI Taoumidine 10 / 28\n",
"5 AMBOUDI Maoulida 18 / 24\n",
"6 ANLI Ramna 22 / 28\n",
"7 BACAR Faïze 15 / 28\n",
"8 BACAR Oirda 23 / 28\n",
"9 BAKARY Nassrya 11 / 24\n",
"10 BOUCHOURANE Mariame 22 / 28\n",
"11 DAOUD Ankidine 15 / 28\n",
"12 HOUMADI Faïz 18 / 24\n",
"13 HOUMADI Nyline Ayiza 14 / 28\n",
"14 ISSOUF Omar 18 / 28\n",
"15 M'CHINDRA Issiaka 18 / 28\n",
"16 MAJANI Charmila 15 / 28\n",
"17 MALIDE Nadjida 17 / 24\n",
"18 MOUSTADIRANE Anzidati 4 / 28\n",
"19 MSA CHIBACO Amina 12 / 28\n",
"20 OUSSENI MCOLO Nayma 15 / 24\n",
"21 SAENRI Melina 20 / 28\n",
"22 SAID ALI Fazil 4 / 16\n",
"23 SAID Mohamadi 7 / 24\n",
"24 SAÏNDOU Aïda 13 / 28\n",
"25 SOUMAILA Roufouanti 11 / 28\n",
"26 YOUSSOUF Raïka 13 / 28"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cmT3_eval[[\"Eleve\", \"Mark_barem\"]]"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f4dc7bc4940>"
]
},
"execution_count": 46,
"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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\naAEg0f8DSE4lxh5qQTkAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4dc7bdceb8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"cmT3_eval[\"Mark\"].hist(bins=22)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"CMT3_eval = tranform_scale(cmT3_eval, 20, 'prop')"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"count 27.00\n",
"mean 10.50\n",
"std 3.97\n",
"min 2.50\n",
"25% 8.50\n",
"50% 11.00\n",
"75% 13.75\n",
"max 16.50\n",
"Name: Mark, dtype: float64"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"CMT3_eval[\"Mark\"].describe()"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"scrolled": 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>ABDOU Akram</td>\n",
" <td>11 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>AHMED Roukaya</td>\n",
" <td>5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ALI MROIMANA Riama</td>\n",
" <td>9 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>ALI Roukia</td>\n",
" <td>2,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>ALI Taoumidine</td>\n",
" <td>7,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>AMBOUDI Maoulida</td>\n",
" <td>15 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ANLI Ramna</td>\n",
" <td>16 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>BACAR Faïze</td>\n",
" <td>11 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>BACAR Oirda</td>\n",
" <td>16,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>BAKARY Nassrya</td>\n",
" <td>9,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>BOUCHOURANE Mariame</td>\n",
" <td>16 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>DAOUD Ankidine</td>\n",
" <td>11 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>HOUMADI Faïz</td>\n",
" <td>15 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>HOUMADI Nyline Ayiza</td>\n",
" <td>10 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>ISSOUF Omar</td>\n",
" <td>13 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>M'CHINDRA Issiaka</td>\n",
" <td>13 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MAJANI Charmila</td>\n",
" <td>11 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MALIDE Nadjida</td>\n",
" <td>14,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>MOUSTADIRANE Anzidati</td>\n",
" <td>3 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>MSA CHIBACO Amina</td>\n",
" <td>9 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>OUSSENI MCOLO Nayma</td>\n",
" <td>12,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>SAENRI Melina</td>\n",
" <td>14,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>SAID ALI Fazil</td>\n",
" <td>5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>SAID Mohamadi</td>\n",
" <td>6 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>SAÏNDOU Aïda</td>\n",
" <td>9,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>SOUMAILA Roufouanti</td>\n",
" <td>8 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>YOUSSOUF Raïka</td>\n",
" <td>9,5 / 20</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark_barem\n",
"0 ABDOU Akram 11 / 20\n",
"1 AHMED Roukaya 5 / 20\n",
"2 ALI MROIMANA Riama 9 / 20\n",
"3 ALI Roukia 2,5 / 20\n",
"4 ALI Taoumidine 7,5 / 20\n",
"5 AMBOUDI Maoulida 15 / 20\n",
"6 ANLI Ramna 16 / 20\n",
"7 BACAR Faïze 11 / 20\n",
"8 BACAR Oirda 16,5 / 20\n",
"9 BAKARY Nassrya 9,5 / 20\n",
"10 BOUCHOURANE Mariame 16 / 20\n",
"11 DAOUD Ankidine 11 / 20\n",
"12 HOUMADI Faïz 15 / 20\n",
"13 HOUMADI Nyline Ayiza 10 / 20\n",
"14 ISSOUF Omar 13 / 20\n",
"15 M'CHINDRA Issiaka 13 / 20\n",
"16 MAJANI Charmila 11 / 20\n",
"17 MALIDE Nadjida 14,5 / 20\n",
"18 MOUSTADIRANE Anzidati 3 / 20\n",
"19 MSA CHIBACO Amina 9 / 20\n",
"20 OUSSENI MCOLO Nayma 12,5 / 20\n",
"21 SAENRI Melina 14,5 / 20\n",
"22 SAID ALI Fazil 5 / 20\n",
"23 SAID Mohamadi 6 / 20\n",
"24 SAÏNDOU Aïda 9,5 / 20\n",
"25 SOUMAILA Roufouanti 8 / 20\n",
"26 YOUSSOUF Raïka 9,5 / 20"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"CMT3_eval[[\"Eleve\", \"Mark_barem\"]]"
]
},
{
"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.1"
}
},
"nbformat": 4,
"nbformat_minor": 1
}