2016-2017/Notes/Manip 503.ipynb

3829 lines
390 KiB
Plaintext
Raw Normal View History

2017-06-16 06:49:23 +00:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": true
}
}
}
}
},
"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": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 4,
"hidden": false,
"row": 0,
"width": 4
},
"report_default": {
"hidden": 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(\"<\", \"&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": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": true
}
}
}
}
},
"outputs": [],
"source": [
"ws = get_class_ws(\"503\")\n",
"flat = extract_flat_marks(ws)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": 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_pov, exo_pov, eval_pov = digest_flat_df(flat)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 4,
"height": 4,
"hidden": false,
"row": 0,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['DS1', 'DS2', 'DS3', 'DS4', 'DS5', 'DS6', 'Calcul mental T2', 'DM1',\n",
" 'DS7', 'DS8', 'DS9', 'DS10', 'Calcul mental T1', 'CMT3'], dtype=object)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flat[\"Nom\"].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 8,
"height": 4,
"hidden": false,
"row": 0,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"## DS1"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": true
}
}
}
}
},
"outputs": [],
"source": [
"ds1_flat = flat[flat[\"Nom\"]==\"DS1\"]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": 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": [
"ds1_quest, ds1_exo, ds1_eval = digest_flat_df(ds1_flat)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": 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>index</th>\n",
" <th>Eleve</th>\n",
" <th>Nom</th>\n",
" <th>Trimestre</th>\n",
" <th>Bareme</th>\n",
" <th>Date</th>\n",
" <th>Mark</th>\n",
" <th>Normalized</th>\n",
" <th>Mark_barem</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>ABDILLAH Nourouzamane</td>\n",
" <td>DS1</td>\n",
" <td>1</td>\n",
" <td>22.0</td>\n",
" <td>2016-10-01</td>\n",
" <td>12.0</td>\n",
" <td>0.55</td>\n",
" <td>12 / 22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>ABDOU Mouhamadi</td>\n",
" <td>DS1</td>\n",
" <td>1</td>\n",
" <td>22.0</td>\n",
" <td>2016-10-01</td>\n",
" <td>12.0</td>\n",
" <td>0.55</td>\n",
" <td>12 / 22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>ABOUDOU Amayoune</td>\n",
" <td>DS1</td>\n",
" <td>1</td>\n",
" <td>22.0</td>\n",
" <td>2016-10-01</td>\n",
" <td>15.5</td>\n",
" <td>0.70</td>\n",
" <td>15,5 / 22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>AHAMED Tansia</td>\n",
" <td>DS1</td>\n",
" <td>1</td>\n",
" <td>22.0</td>\n",
" <td>2016-10-01</td>\n",
" <td>10.5</td>\n",
" <td>0.48</td>\n",
" <td>10,5 / 22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>AHMED Yancoub</td>\n",
" <td>DS1</td>\n",
" <td>1</td>\n",
" <td>22.0</td>\n",
" <td>2016-10-01</td>\n",
" <td>10.5</td>\n",
" <td>0.48</td>\n",
" <td>10,5 / 22</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" index Eleve Nom Trimestre Bareme Date Mark \\\n",
"0 0 ABDILLAH Nourouzamane DS1 1 22.0 2016-10-01 12.0 \n",
"1 1 ABDOU Mouhamadi DS1 1 22.0 2016-10-01 12.0 \n",
"2 2 ABOUDOU Amayoune DS1 1 22.0 2016-10-01 15.5 \n",
"3 3 AHAMED Tansia DS1 1 22.0 2016-10-01 10.5 \n",
"4 4 AHMED Yancoub DS1 1 22.0 2016-10-01 10.5 \n",
"\n",
" Normalized Mark_barem \n",
"0 0.55 12 / 22 \n",
"1 0.55 12 / 22 \n",
"2 0.70 15,5 / 22 \n",
"3 0.48 10,5 / 22 \n",
"4 0.48 10,5 / 22 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds1_eval.head()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 11,
"hidden": false,
"row": 4,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f982ee600f0>"
]
},
"execution_count": 9,
"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": "iVBORw0KGgoAAAANSUhEUgAAAeMAAAFbCAYAAADm7uYgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAH1lJREFUeJzt3Xt0zHf+x/HXJJJGJDSJuEyCNkEUDZLRhLJF1KboVjUo\nlbK0arPWplrrst2i2ytSilhV6rZqaav2tD09vS62a5VsaOuyiEu1UrdMKKlbkvn94ZhfZ4MZNclH\nZp6Pc5yT+X4/38/3PZ/5mtd8L/Mdi8PhcAgAABgTYLoAAAD8HWEMAIBhhDEAAIYRxgAAGEYYAwBg\nGGEMAIBhhDF8Trdu3TR37lzTZQCAxyx8zxjVwfjx43X48GEtXry4wryEhARNnTpV9913nyTJbrcr\nJCREoaGhbvvNy8vTQw89pE8//VSxsbHeLhsGrF69WhMmTJAkWSwW1apVS7GxsUpNTdXDDz+smJgY\nl/Zvv/22li9frgMHDsjhcKhBgwZKTk7Ws88+K0k6d+6cJk+erJ07d6qgoEANGzbUxx9/XOXPC76t\nhukCAG+LjIw0XcIVnT9/XsHBwabL8AlXG8vAwECtW7dOklRSUqKdO3dqyZIl6t27t1577TXZbDZJ\nF4N78uTJGjdunO68805J0t69e/Xpp586+yorK1NQUJD69++vrVu3asuWLZX8zOCPOEwNn/O/h6k/\n+eQT9enTR23atJHNZlNGRoZ27Nih7777Tg899JAkKS0tTQkJCcrMzJQkORwOLVy4UGlpaWrdurW6\nd+9eYa+8uLhYo0ePVtu2bdWxY0fNnDlT48aN09ChQ51tMjMzNXHiRM2cOVOdOnVS165dJUnvvvuu\n+vXrp+TkZKWkpGjEiBHav3+/c7nvvvtOCQkJevfddzV8+HC1adNG6enp2rRpk44cOaJHH31Ubdu2\nVc+ePZWXl+dc7osvvlBCQoLWrVunAQMGKDExUX379tWePXu0Z88eDRw4UG3atFFGRoYKCgpcns+2\nbds0bNgwtWvXTqmpqRo1apQOHTrkdqxnzJihP/7xj0pKSlJKSopefvlllZeXO9ucPn1aTz/9tFJT\nU9W6dWv17dtXn3/+eYXn+tPnIUl33323Zs+e7XyckJCgpUuX6oknnlBycrL+8Ic/XLW26OhoRUdH\n65ZbbtE999yjv/71r0pISNCECRNUVlYm6eK20bVrVw0ePFi33nqrbr31VnXv3l0vvPCCs5/Q0FA9\n88wzGjRokBo1anTVdQI/F2EMn3bs2DFlZ2erV69eeu+997Ry5UoNGTJEgYGBatiwoTO033zzTX3+\n+efON/833nhDr7zyikaMGKH33ntPw4cPV05Ojt58801n3xMmTNCuXbs0b948LVmyREeOHNEnn3xS\noYYPPvhAdrtdixcv1uuvvy7p4l7db37zG73zzjtatGiRAgIC9Nhjj+n8+fMuy77yyisaOHCg1qxZ\no/j4eI0ZM0bjxo1T//799c4776hp06Z64okndOHCBZflZsyYoezsbK1evVpBQUEaM2aMJk+erNGj\nRzunXTqUK0kFBQXKzMxU27Zt9dZbb2nJkiUKCAjQsGHDdO7cuauO8bJly1SvXj299dZbmjBhgpYu\nXaply5Y550+cOFGff/65pk2bpr///e9KSkrSyJEjtXfvXk9eQhe5ublq166d3nnnHWVnZ1/TsjVq\n1NCvf/1rHTx4UDt27JB0MbC3bdvm8kEIMIHD1Kg2Nm3apHbt2l3TMseOHdOFCxd0zz33OM8Jx8fH\nO+fXqVNH0sVD29HR0c7p8+fP1+DBgzVgwABJ0i233KL9+/dr3rx56tevnw4cOKB//OMfWrx4sVJT\nUyVJzzzzjDZs2FChhnr16mny5MkKCPj/z74PPPCAS5sXX3xRKSkp+vrrr5WcnOycPnjwYHXv3l2S\n9Nhjj6lfv34aNmyY7r77bknSyJEjdf/992v//v1q3ry5c7lRo0apQ4cOkqShQ4cqOztbs2bNck4b\nNmyYRo0apZKSEtWqVUsLFixQly5dNHr0aGcf06dPV/v27fXPf/7TWcPltGjRQr///e8lSXFxcdq3\nb59ef/11DRkyRN98840+/PBDzZ8/X507d5YkPfXUU/rPf/6jBQsWuOyBeiItLU2DBw++pmV+qmnT\nppKkb7/9VrfffrtGjRql3bt3Kz09XTExMUpMTFSHDh107733enTNAeAthDGqjcTERL300ksVpvfo\n0eOKyyQkJKhTp06699571bFjR91xxx3q0aOHGjZseMVlTp8+rcOHD6t9+/Yu0++44w4tXbpUZ86c\ncR7ibdOmjXN+UFCQWrdurZKSEpflWrVq5RLEkrRz507NmTNHO3fuVHFxsXN6YWGhSxi3aNHC+fel\nDwsJCQnOaXXr1pUkFRUVVXjenixnt9tVq1Ytff311/rmm28qfNg5d+6cDhw4oKtp27aty+OkpCS9\n+uqrOn36tHOcLp2jvcRms2nr1q1X7fdyEhMTr3mZy7FYLJIujs2KFSu0d+9ebd68WV9++aWmTZum\nV199VW+++aaioqK8sj7AHcIY1UZISIiaNGlyTcsEBgZqwYIF+vrrr7VhwwZ99NFHysnJ0SuvvOI8\nf3s9Lr2pX03NmjVdHp85c0bDhg1TcnKyXnjhBWcw9urVq8Lh5ho1/v+/6KV1XW7a/34pIigoqEId\nl1vu0rnd8vJy3XfffRoxYkSF5W6++WY3z/D6/O8HlUtKS0srTPvfsbxWe/bskaQK537j4+MVHx+v\nBx98UFlZWUpPT9eKFSs0atSo61of4CnOGcPnWSwWJSYmauTIkVq+fLnat2+v1atXS5LzatyfXnAU\nFhamBg0aaPPmzS79bNq0SbGxsapZs6bzcOdP9+5KS0u1fft2t/Xs3btXdrtdjz/+uFJSUhQfH6+T\nJ09WCNSq1Lp1a+3atUuNGzdWkyZNXP5dOpR/JV9++aXL4y1btqh+/foKCwtTs2bNJKnCxVl5eXnO\neZeufj969KhzflFRkY4cOXLdz+unSktLtXjxYjVp0kQtW7a8YrvY2FiFhIRUONoAVCb2jOHT8vPz\n9e9//1udOnVSdHS0vvnmG+3atUsZGRmSJKvVqoCAAK1bt049e/ZUcHCwwsPDNWLECL300ku65ZZb\ndMcdd2jjxo1asWKFnn76aUkXzyF37dpVU6ZM0TPPPKPIyEi9/vrrOn36tNu9ZavVquDgYC1btkzD\nhg3ToUOHNH36dI/2sivLyJEjlZGRoSeffFJDhgxRRESEDh06pE8++URDhgy56lXEO3fu1OzZs9W7\nd29t27ZNS5cudZ5Dbty4sdLT0zVlyhRNmTJFVqtVK1as0J49ezR9+nRJF494JCUlacGCBYqLi1Np\naalmzJhx3V8BO3bsmCTXrzbt2rVLr732mnNvfNKkSYqOjlZqaqoaNmyo4uJiLV26VKdPn3Y5T15Q\nUKALFy44r0HYuXOnpIt71HxVDd5AGMOnhYeHa+vWrXrjjTd08uRJRUdH695771VWVpaki+dOx4wZ\no/nz5+v555+XzWbTsmXLNGjQIJ05c0bz5s3TlClT1KBBAz3xxBPq16+fs+8XXnhBkyZN0qOPPqrQ\n0FA9+OCD6tixY4Urov9XZGSkpk2bppdffllvv/224uPjNXHiRJevRFW1+Ph4/e1vf9PMmTM1fPhw\nnTt3TvXr11dqaqrCw8OvumxmZqYKCwv1wAMPKCgoSA899JAefvhh5/znnntOU6dO1dixY3X69Gk1\nb95c8+bNc7mQ7vnnn9ef/vQnPfjgg6pXr56efPJJHTx48Gc/n7KyMnXq1EkWi0WhoaGKjY1Vhw4d\nlJOT43LTjzvvvFOrV6/WqlWrZLfbVbt2bSUkJGj+/PnO7x1L0ogRI1y+5tWnTx9J4mYx8BruwAV4\nSVlZme655x5169ZN48ePN11OlejWrZsyMjKcH24A/DzsGQM/0+bNm1VUVKSWLVuqpKREixcv1qFD\nh3T//febLg1ANUMYAz9
"text/plain": [
"<matplotlib.figure.Figure at 0x7f982f105fd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"marks_hist(ds1_eval)"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 4,
"height": 4,
"hidden": false,
"row": 4,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"Répartition des notes sur chaques exercices"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 8,
"height": 11,
"hidden": false,
"row": 4,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f982cca3f60>"
]
},
"execution_count": 10,
"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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\na8qUKcrJydG4ceP01FN
"text/plain": [
"<matplotlib.figure.Figure at 0x7f982ccdddd8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ds1_exo.pivot(\"Eleve\", \"Exercice\", \"Normalized\").plot.hist(alpha=0.8)"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 4,
"height": 4,
"hidden": false,
"row": 8,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"Diagramme moustache par exercice"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 4,
"height": 11,
"hidden": false,
"row": 12,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f982ca855c0>"
]
},
"execution_count": 11,
"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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\npUuXxle/+tV43/veV8j
"text/plain": [
"<matplotlib.figure.Figure at 0x7f982ca910f0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ds1_exo.pivot(\"Eleve\", \"Exercice\", \"Normalized\").plot.box()"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 4,
"hidden": false,
"row": 15,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"Axes paralleles"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 8,
"height": 9,
"hidden": false,
"row": 15,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f982c93fd68>"
]
},
"execution_count": 12,
"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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\ny6UwowdHfWhc9KFx0Yf
"text/plain": [
"<matplotlib.figure.Figure at 0x7f982c9aa198>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"parallel_on(ds1_exo, \"Exercice\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 4,
"hidden": false,
"row": 19,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"# DS2"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": true
}
}
}
}
},
"outputs": [],
"source": [
"quest_DS2 = quest_pov[quest_pov[\"Nom\"] == \"DS2\"]\n",
"exo_DS2 = exo_pov[exo_pov[\"Nom\"] == \"DS2\"]\n",
"eval_DS2 = eval_pov[eval_pov[\"Nom\"] == \"DS2\"]"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 4,
"hidden": false,
"row": 23,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"On enlèves les absents"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": true
}
}
}
}
},
"outputs": [],
"source": [
"eval_DS2 = eval_DS2[eval_DS2[\"Mark\"] > 0]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 4,
"height": 11,
"hidden": false,
"row": 23,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f982c7c1908>"
]
},
"execution_count": 15,
"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+/AAAEbFJREFUeJzt3V9s1fX5wPHnSGUVTAutojkFxjpLFpiDOBjsj9MB2xLR\nZNlFM4km6M0EE6NZNgkXcjMTInYQEki92HC3XpEomt2YaCI3/NHQoUNMqunSLQyKTBBo2nN2sZ/8\n9vuj58g5z2nP6et1Jfbrp08+Pc3b76c9XwrlcrkcAECKG6Z6AABoZUILAImEFgASCS0AJBJaAEgk\ntACQSGgBIFFb1sKjo6N1W6tYLNZ1vZnIHtbOHtbOHtaHfaxdvfewWCx+7sfc0QJAIqEFgERCCwCJ\nhBYAEgktACQSWgBIJLQAkEhoASBRVQ+seOWVV+L111+PQqEQixYtiq1bt8bs2bOzZwOAplfxjnZs\nbCxee+212LlzZwwMDESpVIrDhw83YjYAaHpVHR2XSqUYHx+PycnJGB8fj/nz52fPBQAtoeLRcVdX\nVzzwwAOxZcuWmD17dqxYsSJWrFjRiNkAoOkVyuVy+YsuuHjxYgwMDMRTTz0Vc+bMid/97nexdu3a\n+OEPf9ioGQGa1sjGVXVfc9Gho3VfkzwV72iHhoZiwYIF0dHRERERa9asiffff79iaP3tPdOLPayd\nPaydPawf+1ibafW399xyyy1x+vTpuHr1apTL5RgaGoqenp66DQcAraziHW1fX1+sXbs2nn766Zg1\na1YsWbIkNmzY0IjZAKDpVfU+2v7+/ujv78+eBQBajidDAUAioQWAREILAImEFgASCS0AJBJaAEgk\ntACQSGgBIJHQAkAioQWAREILAImEFgASCS0AJBJaAEgktACQSGgBIJHQAkAioQWAREILAImEFgAS\nCS0AJBJaAEgktACQSGgBIJHQAkAioQWAREILAInaKl0wOjoau3fvvvbnM2fORH9/f2zcuDF1MABo\nBRVDWywWY9euXRERUSqV4pe//GV85zvfSR8MAFrBlzo6Hhoaittvvz1uvfXWrHkAoKV8qdC+9dZb\n8f3vfz9rFgBoORWPjj8zMTERx44di02bNlV1fbFYvO6hGrHeTGQPa2cPazfT9nAkad2Zto8ZGrWH\nVYf27bffjq997Wsxb968qq4fHR297qH+t2KxWNf1ZiJ7WDt7WDt7WD/2sTb1fi1+UbSrPjp2bAwA\nX15Vob1y5UqcOHEi1qxZkz0PALSUqo6O29vb4w9/+EP2LADQcjwZCgASCS0AJBJaAEgktACQSGgB\nIJHQAkAioQWAREILAImEFgASCS0AJBJaAEgktACQSGgBIJHQAkAioQWAREILAImEFgASCS0AJBJa\nAEgktACQSGgBIJHQAkAioQWAREILAImEFgASCS0AJBJaAEjUVs1Fly5disHBwRgZGYlCoRBbtmyJ\npUuXZs8GAE2vqtAeOHAgVq5cGb/61a9iYmIirl69mj0XALSEikfHn376abz33nuxbt26iIhoa2uL\nuXPnpg8GAK2gUC6Xy190wYcffhgvvPBCLFy4MD766KPo7e2NzZs3R3t7e6NmBGhaIxtX1X3NRYeO\n1n1N8lQ8Op6cnIzh4eF49NFHo6+vLw4cOBAHDx6MX/ziF1/4342OjtZtyGKxWNf1ZiJ7WDt7WDt7\nWD/2sTb1fi0Wi8XP/VjFo+Pu7u7o7u6Ovr6+iIhYu3ZtDA8P1204AGhlFUM7b9686O7uvlb+oaGh\nWLhwYfpgANAKqvqt40cffTT27t0bExMTsWDBgti6dWv2XADQEqoK7ZIlS2Lnzp3ZswBAy/FkKABI\nJLQAkEhoASCR0AJAIqEFgERCCwCJhBYAEgktACQSWgBIJLQAkEhoASCR0AJAIqEFgERCCwCJhBYA\nEgktACQSWgBIJLQAkEhoASCR0AJAIqEFgERCCwCJhBYAEgktACQSWgBIJLQAkKitmosef/zxaG9v\njxtuuCFmzZoVO3fuzJ4LAFpCVaGNiNixY0d0dHRkzgIALcfRMQAkqvqO9tlnn42IiB//+MexYcOG\ntIEAoJUUyuVyudJFY2Nj0dXVFRcuXIjf/va38cgjj8SyZcsaMR9AUxvZuKruay46dLTua5Knqjva\nrq6uiIjo7OyM1atXxwcffFAxtKOjo7VP91+KxWJd15uJ7GHt7GHt7GH92Mfa1Pu1WCwWP/djFX9G\ne+XKlbh8+fK1fz5x4kQsXry4bsMBQCureEd74cKFeP755yMiYnJyMn7wgx/EypUr0wcDgFZQMbS3\n3XZb7Nq1qxGzAEDL8fYeAEgktACQSGgBIJHQAkAioQWAREILAImEFgASCS0AJBJaAEgktACQSGgB\nIJHQAkAioQWAREILAImEFgASCS0AJBJaAEgktACQSGgBIJHQAkAioQWAREILAImEFgASCS0AJBJa\nAEgktACQSGgBIFHVoS2VSvGb3/wmdu7cmTkPALSUqkP76quvRk9PT+YsANByqgrtuXPn4vjx47F+\n/frseQCgpbRVc9GLL74YDz30UFy+fLnqhYvF4nUP1Yj1ZiJ7WDt7WLt67+HIxlV1XW/RoaN1XW+k\nrqv9t+n8Wqz31yTFoaMN28OKoT127Fh0dnZGb29vnDx5suqFR0dHaxrsPxWLxbquNxPZw9rZw9o1\nwx5O9/k+0yxzTmf17tTnqRjaU6dOxdGjR+Ptt9+O8fHxuHz5cuzduzeeeOKJug0IAK2qYmg3bdoU\nmzZtioiIkydPxssvvyyyAFAl76MFgERV/TLUZ5YvXx7Lly/PmgUAWo47WgBIJLQAkEhoASCR0AJA\nIqEFgERCCwCJhBYAEgktACQSWgBIJLQAkEhoASCR0AJAIqEFgERCCwCJhBYAEgktACQSWgBIJLQA\nkEhoASCR0AJAIqEFgERCCwCJhBYAEgktACQSWgBIJLQAkKit0gXj4+OxY8eOmJiYiMnJyVi7dm30\n9/c3YjYAaHoVQ3vjjTfGjh07or29PSYmJuKZZ56JlStXxtKlSxsxHwA0tYpHx4VCIdrb2yMiYnJy\nMiYnJ6NQKKQPBgCtoOIdbUREqVSKp59+Ov7+97/HT3/60+jr68ueCwBaQqFcLpervfjSpUvx/PPP\nxyOPPBKLFy/OnAugKiMbV031CA236NDRqR7hCzXD16SRe1jVHe1n5s6dG8uXL4933nmnYmhHR0dr\nGuw/FYvFuq43E9nD2tnD2tnD+rGPtat3pz5PxZ/R/vOf/4xLly5FxL9/A/nEiRPR09NTt+EAoJVV\nvKM9f/587Nu3L0qlUpTL5fjud78b3/72txsxGwA0vYqh/epXvxrPPfdcI2YBgJbjyVAAkEhoASCR\n0AJAIqEFgERCCwCJhBYAEgktACQSWgBIJLQAkEhoASCR0AJAIqEFgERCCwCJhBYAEgktACQSWgBI\nJLQAkEhoASCR0AJAIqEFgERCCwCJhBYAEgktACQSWgBIJLQAkEhoASCR0AJAorZKF5w9ezb27dsX\nH3/8cRQKhdiwYUPcd999jZgNAJpexdDOmjUrHn744ejt7Y3Lly/Htm3b4lvf+lYsXLiwEfMBQFOr\neHQ8f/786O3tjYiIm266KXp6emJsbCx9MABoBV/qZ7RnzpyJ4eHhuOOOO7LmAYCWUvHo+DNXrlyJ\ngYGB2Lx5c8yZM6fi9cVisabBstebiexh7exh7eq9hyN1Xa15TOfXYrN8TRq1h1WFdmJiIgYGBuLu\nu++ONWvWVLXw6OhoTYP9p2KxWNf1ZiJ7WDt7WDt7WD/2sXb17tTnqXh0XC6XY3BwMHp6euL++++v\n21AAMBNUvKM9depUvPnmm7F48eL49a9/HRERDz74YNx1113pwwFAs6sY2m984xvx0ksvNWIWAGg5\nngwFAImEFgASCS0AJBJaAEgktACQSGgBIJHQAkAioQWAREILAImEFgASCS0AJBJaAEgktACQSGgB\nIJHQAkAioQWAREILAIm
"text/plain": [
"<matplotlib.figure.Figure at 0x7f982c8ac630>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"eval_DS2[\"Mark\"].hist(bins = 20, range = (0,10))"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 8,
"height": 7,
"hidden": false,
"row": 24,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [
{
"data": {
"text/plain": [
"count 28.00\n",
"mean 7.48\n",
"std 1.64\n",
"min 2.50\n",
"25% 6.50\n",
"50% 7.50\n",
"75% 9.00\n",
"max 10.00\n",
"Name: Mark, dtype: float64"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"eval_DS2[eval_DS2[\"Mark\"]>0][\"Mark\"].describe()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 4,
"hidden": false,
"row": 27,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"# Trimestre 2"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": true,
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": true
}
}
}
}
},
"outputs": [],
"source": [
"flat_T2 = flat[flat[\"Trimestre\"] == 2]"
]
},
{
"cell_type": "code",
"execution_count": 18,
"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_T2, exo_T2, eval_T2 = digest_flat_df(flat_T2)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 4,
"hidden": false,
"row": 31,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['DS4', 'DS5', 'DS6', 'Calcul mental T2', 'DM1', 'CMT3'], dtype=object)"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flat_T2[\"Nom\"].unique()"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 8,
"height": 4,
"hidden": false,
"row": 31,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"## DS4"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": true
}
}
}
}
},
"outputs": [],
"source": [
"ds4_flat = flat_T2[flat_T2[\"Nom\"]==\"DS4\"]"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": 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": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"hidden": true
},
"report_default": {
"hidden": true
}
}
}
}
},
"source": [
"Le devoir est sur 10 et personne ne peut avoir au dessus!"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"ds4_eval = tranform_scale(ds4_eval, 10, \"min\")"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"numpy.datetime64('2016-12-02T00:00:00.000000000')"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds4_eval[\"Date\"].unique()[0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Histogramme des résultats"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"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": "iVBORw0KGgoAAAANSUhEUgAAAdoAAAFbCAYAAAByCE/SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtYVPWi//HPCJoXFIXwMni/QKkp3hIv6RYvqWi6PerR\n0jTdmVk/c9suxU6apzTTULOtByvz0i7bWWpZ7d3Nk27TCiILleNGt/cxSUASRGhm1vnDn3MiTFDm\nyzD4fj2Pz+PMWus7n/nOgg9rzc1mWZYlAABgRCVfBwAAoCKjaAEAMIiiBQDAIIoWAACDKFoAAAyi\naAEAMIiihV+JiYnRqlWrfB0DAEqMooXPzZ49WxMnTrzissjISL377ruey2+//fZvrvtrSUlJioyM\n1MmTJ72QEuXB5s2bFRkZqcjISN1yyy3q1KmThg0bpmeffVanTp0qsv4777yjESNGqGPHjurQoYMG\nDRqk//iP/7ji2Hl5eYqNjVVkZKSSkpJM3xXcQAJ9HQC4FiEhIb6O8JsKCgpUpUoVX8eoEK42lwEB\nAdqxY4ckKTc3V6mpqVq/fr2GDBmil19+WZ07d5Z0qZSfeuopzZo1Sz169JAkHT58WJ999tkVx50/\nf74aNWqkQ4cOGbhHuJFxRAu/8utTx59++qmGDx+u9u3bq3Pnzho5cqQOHDigkydP6p577pEk9e3b\nV5GRkRo/frwkybIsrVmzRn379lXbtm3Vr18/rVu3rtDtZGVlafr06YqKilL37t21fPlyzZo1q9DR\n9Pjx4zVnzhwtX75cPXv2VJ8+fSRJ27Zt06hRo9SpUyd17dpVU6ZM0ZEjRzzbnTx5UpGRkdq2bZsm\nT56s9u3ba+DAgfr666915swZ3X///YqKitLgwYMLHVl99dVXioyM1I4dO/Tv//7vateunUaMGKG0\ntDSlpaVp7Nixat++vUaOHFmkLPbt26dJkyapQ4cOio6O1sMPP3zFI8Bfz/WyZcv0xBNPqGPHjura\ntauWLl0qt9vtWScnJ0dz585VdHS02rZtqxEjRmjXrl1F7uuvjxD79++vF1980XM5MjJSGzZs0KOP\nPqpOnTrp8ccfv2q2sLAwhYWFqWnTpho0aJD+8pe/KDIyUnFxcXK5XJIu7Rt9+vTRuHHj1KxZMzVr\n1kz9+vXTs88+W2S8LVu2KDU1tdjbBa4HRQu/9eOPP2rGjBmKjY3V+++/r7/+9a+aMGGCAgIC1KBB\nA08hb9q0Sbt27fL8Yn/jjTf0wgsvaMqUKXr//fc1efJkxcfHa9OmTZ6x4+LidPDgQSUkJGj9+vU6\nc+aMPv300yIZ/va3vykzM1Pr1q3Tq6++KunS0diDDz6oLVu2aO3atapUqZIeeOABFRQUFNr2hRde\n0NixY7V161a1aNFCM2fO1KxZszR69Ght2bJFLVu21KOPPqqff/650HbLli3TjBkztHnzZlWuXFkz\nZ87UU089penTp3uui4uL86x/6NAhjR8/XlFRUXr77be1fv16VapUSZMmTVJ+fv5V5/i1115T3bp1\n9fbbbysuLk4bNmzQa6+95lk+Z84c7dq1S0uWLNG7776rjh07aurUqTp8+HBJHsJCVq5cqQ4dOmjL\nli2aMWPGNW0bGBio++67T8ePH9eBAwckXSrjffv2Ffoj50oOHz6sxYsXa+nSpZyRgBkW4GOzZs2y\nbr31VisqKqrIv4iICGvr1q2edfv06WOtXLnSsizL2r9/vxUREWGdOHHiiuMmJiZecXmvXr2s5557\nrtB1CxYssGJiYizLsqwjR45YERER1u7duz3LCwoKrF69elkTJkzwXDdu3DhrwIABlsvluur9y8rK\nsiIiIqykpCTLsizrxIkTVkREhLV27VrPOt99950VERFhrVmzxnPd5ft38OBBy7Is68svv7QiIiKs\nTz75xLPOhx9+aEVERFh///vfPdd9/PHHVkREhJWTk2NZ1qX5nTFjRqFM+fn5Vrt27QqN9Wt9+vSx\nxo4dW+i6+Ph4q1evXpZlWdbRo0etiIgI6/PPPy+0zvDhw63Zs2cXuq+JiYmF1unXr5+1YsUKz+WI\niAgrLi7uN7Nc9s4771i33nrrFZcdOnTIioiIsD744APLsiwrPT3dGjNmjBUREWH16dPHeuSRR6w3\n33zTys3N9Wxz4cIFKzY21tq0adNV8wKlwXO0KBfatWun5557rsj1AwYM+M1tIiMj1bNnTw0dOlTd\nu3fX7bffrgEDBqhBgwa/uU1OTo5++OEHdenSpdD1t99+uzZs2KC8vDzPadf27dt7lleuXFlt27ZV\nbm5uoe3atGmjSpUKnxhKTU3Vn//8Z6WmpiorK8tzvcPhUKdOnTyXb7nlFs//w8LCPPfpsptvvlmS\nlJGRUeR+l2S7zMxM1ahRQykpKTp27Jg6dOhQaJz8/HwdPXpUVxMVFVXocseOHbV69Wrl5OR45uny\nc6KXde7cWXv37r3quFfSrl27a97mSmw2m6RLc7Nx40YdPnxYiYmJ+u6777RkyRKtXr1amzZtUmho\nqJ555hlFRERo5MiRXrlt4EooWpQLVatWVZMmTa5pm4CAAL3yyitKSUnR7t279fHHHys+Pl4vvPCC\n5/nS0rj8C/tqqlWrVuhyXl6eJk2apE6dOunZZ5/1lF5sbGyRU8CBgf/343f5tq50nfWrL9iqXLly\nkRxX2u7yc6lut1vDhg3TlClTimxXu3btYu5h6fz6j5DLnE5nket+PZfXKi0tTZLUqFGjQte3aNFC\nLVq00JgxYzRt2jQNHDhQGzdu1MMPP6w9e/bo9OnT+vvf/15om3vvvVfdunXTmjVrSpUJkCha+Dmb\nzaZ27dqpXbt2mjp1qiZPnqzNmzerT58+nufbfvninaCgINWvX1+JiYmFyvjrr79Ww4YNVa1aNbVs\n2VKStHfvXnXr1k3SpWLYv3+/mjZtetU8hw8fVmZmpv74xz+qRYsWkqTk5OQiZVmW2rZtq4MHD6px\n48Yl+uPhl7777rtCl7/99lvVq1dPQUFBatWqlaRLb6Pq3bu3Z52kpCTdeuutkv7vVeLp6eme5RkZ\nGTpz5sx13Zff4nQ6tW7dOjVp0kStW7f+zfUaNmyoqlWres4SrFmzptAfQOnp6Zo8ebIWLlxY5Egd\nuF4ULfxWcnKy9uzZo549eyosLEzHjh3TwYMHPacB7Xa7KlWqpB07dmjw4MGqUqWKatasqSlTpui5\n555T06ZNdfvtt+vLL7/Uxo0bNXfuXElS06ZN1adPH82fP1//+Z//qZCQEL366qvKyckptqjsdruq\nVKmi1157TZMmTdKpU6f0/PPPX3PBedPUqVM1cuRI/elPf9KECRNUp04dnTp1Sp9++qkmTJhQ5Ajw\nl1JTU/Xiiy9qyJAh2rdvnzZs2KBHHnlEktS4cWMNHDhQ8+fP1/z582W327Vx40alpaXp+eefl3Tp\nTEXHjh31yiuvqHnz5nI6nVq2bFmpX3T0448/Sir89p6DBw/q5Zdf9hxFz5s3T2FhYYqOjlaDBg2U\nlZWlDRs2KCcnR/369ZMkNWvWrNC41atXl3SpkBs2bFiqjMBlFC38Vs2aNbV371698cYbys7OVlhY\nmIYOHapp06ZJuvRc5cyZM/XSSy95jlBee+013X333crLy1NCQoLmz5+v+vXr69FHH9WoUaM8Yz/7\n7LOaN2+e7r//flWvXl1jxoxR9+7di7xy+NdCQkK0ZMkSLV26VO+8845atGihOXPmlPhDNkxo0aKF\n3nzzTS1fvlyTJ09Wfn6+6tWrp+joaNWsWfOq244fP14Oh0P/9m//psqVK+uee+7Rvffe61m+YMEC\nLV68WI899phycnIUERGhhIQEz9G8JC1cuFBPPvmkxowZo7p16+pPf/qTjh8/ft33x+VyqWfPnrLZ\nbKpevboaNmyobt26KT4+XuHh4Z71evTooc2bN+utt95SZmamatWqpcjISL300kue99UCZcFm+fKc\nFuAnXC6XBg0apJiYGM2
"text/plain": [
"<matplotlib.figure.Figure at 0x7f982ae87550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f, (ax_hist, ax_box) = plt.subplots(2, sharex=True, \n",
" gridspec_kw={\"height_ratios\": (.85, .15)})\n",
"marks_hist(ds4_eval, ax = ax_hist, rwidth=0.9)\n",
"ds4_desc = ds4_eval[\"Mark\"].describe()\n",
"m = ds4_desc[\"mean\"]\n",
"ax_hist.plot([m,m], [0,6])\n",
"ds4_eval[\"Mark\"].plot.box(ax = ax_box, vert=False, widths = 0.6)\n",
"ax_hist.annotate(round(ds4_desc[\"mean\"],1), xy=(ds4_desc[\"mean\"] + 0.2, 0.3))\n",
"ax_box.set_yticklabels(\"\")\n",
"for e in [\"min\", \"25%\", \"50%\", \"75%\", \"max\"]:\n",
" ax_box.annotate(ds4_desc[e], xy=(ds4_desc[e] - 0.2,1.4))"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"count 28.00\n",
"mean 6.14\n",
"std 2.71\n",
"min 0.00\n",
"25% 4.25\n",
"50% 6.00\n",
"75% 7.62\n",
"max 10.00\n",
"Name: Mark, dtype: float64"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds4_desc"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 4,
"hidden": false,
"row": 46,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"## DS5"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ds5_flat = flat_T2[flat_T2[\"Nom\"]==\"DS5\"]"
]
},
{
"cell_type": "code",
"execution_count": 27,
"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": [
"ds5_quest, ds5_exo, ds5_eval = digest_flat_df(ds5_flat)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ds5_eval = tranform_scale(ds5_eval, 10, 'min')"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['2017-01-18T00:00:00.000000000'], dtype='datetime64[ns]')"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds5_eval[\"Date\"].unique()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"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</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>ABDILLAH Nourouzamane</td>\n",
" <td>7.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ABDOU Mouhamadi</td>\n",
" <td>9.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ABOUDOU Amayoune</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>AHAMED Tansia</td>\n",
" <td>6.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>AHMED Yancoub</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>ALI Cynthia</td>\n",
" <td>9.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ANDRIAMAHAZAKA Néni Erika</td>\n",
" <td>7.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>ATTOUMANI Antibati</td>\n",
" <td>4.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>ATTOUMANI OUSSENI Jeannette</td>\n",
" <td>5.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>CHAMASSE Nadjima</td>\n",
" <td>9.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>CHARMANE RAFION Elda</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>DAOU Naël</td>\n",
" <td>5.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>DARMINE Sadya</td>\n",
" <td>7.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>HAMIDOU Fayssoil</td>\n",
" <td>6.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>HOUMADI Mouhouyi</td>\n",
" <td>9.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>MADI SAID Zaynati</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MALIDE Elza</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MOUHAMADI ANDILI Issina</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>MOUSSA Samra</td>\n",
" <td>8.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>OUSSENI Kaïssoune</td>\n",
" <td>5.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>OUSSENI Saandati</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>SAID Amina</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>SAID Charfia</td>\n",
" <td>9.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>SAID Hachimia</td>\n",
" <td>5.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>SAID Nasra</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>SALIM Laïlouna</td>\n",
" <td>8.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>SIDI Yansilouna</td>\n",
" <td>7.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>SOILIHI Nadjdat</td>\n",
" <td>6.5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark\n",
"0 ABDILLAH Nourouzamane 7.5\n",
"1 ABDOU Mouhamadi 9.5\n",
"2 ABOUDOU Amayoune 10.0\n",
"3 AHAMED Tansia 6.0\n",
"4 AHMED Yancoub 10.0\n",
"5 ALI Cynthia 9.0\n",
"6 ANDRIAMAHAZAKA Néni Erika 7.5\n",
"7 ATTOUMANI Antibati 4.0\n",
"8 ATTOUMANI OUSSENI Jeannette 5.0\n",
"9 CHAMASSE Nadjima 9.5\n",
"10 CHARMANE RAFION Elda 10.0\n",
"11 DAOU Naël 5.5\n",
"12 DARMINE Sadya 7.5\n",
"13 HAMIDOU Fayssoil 6.5\n",
"14 HOUMADI Mouhouyi 9.5\n",
"15 MADI SAID Zaynati 10.0\n",
"16 MALIDE Elza 10.0\n",
"17 MOUHAMADI ANDILI Issina 10.0\n",
"18 MOUSSA Samra 8.0\n",
"19 OUSSENI Kaïssoune 5.5\n",
"20 OUSSENI Saandati 10.0\n",
"21 SAID Amina 10.0\n",
"22 SAID Charfia 9.0\n",
"23 SAID Hachimia 5.5\n",
"24 SAID Nasra 10.0\n",
"25 SALIM Laïlouna 8.0\n",
"26 SIDI Yansilouna 7.5\n",
"27 SOILIHI Nadjdat 6.5"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds5_eval[[\"Eleve\", \"Mark\"]]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 4,
"hidden": false,
"row": 50,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"## DS6"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ds6_flat = flat_T2[flat_T2[\"Nom\"]==\"DS6\"]"
]
},
{
"cell_type": "code",
"execution_count": 32,
"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": [
"ds6_quest, ds6_exo, ds6_eval = digest_flat_df(ds6_flat)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ds6_eval = tranform_scale(ds6_eval, 10, 'min')"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['2017-02-01T00:00:00.000000000'], dtype='datetime64[ns]')"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds6_eval[\"Date\"].unique()"
]
},
{
"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</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>ABDILLAH Nourouzamane</td>\n",
" <td>6.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ABDOU Mouhamadi</td>\n",
" <td>8.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ABOUDOU Amayoune</td>\n",
" <td>9.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>AHAMED Tansia</td>\n",
" <td>6.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>AHMED Yancoub</td>\n",
" <td>7.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>ALI Cynthia</td>\n",
" <td>9.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ANDRIAMAHAZAKA Néni Erika</td>\n",
" <td>7.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>ATTOUMANI Antibati</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>ATTOUMANI OUSSENI Jeannette</td>\n",
" <td>8.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>CHAMASSE Nadjima</td>\n",
" <td>6.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>CHARMANE RAFION Elda</td>\n",
" <td>8.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>DAOU Naël</td>\n",
" <td>8.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>DARMINE Sadya</td>\n",
" <td>7.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>HAMIDOU Fayssoil</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>HOUMADI Mouhouyi</td>\n",
" <td>8.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>MADI SAID Zaynati</td>\n",
" <td>8.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MALIDE Elza</td>\n",
" <td>6.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MOUHAMADI ANDILI Issina</td>\n",
" <td>8.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>MOUSSA Samra</td>\n",
" <td>9.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>OUSSENI Kaïssoune</td>\n",
" <td>7.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>OUSSENI Saandati</td>\n",
" <td>9.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>SAID Amina</td>\n",
" <td>9.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>SAID Charfia</td>\n",
" <td>9.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>SAID Hachimia</td>\n",
" <td>5.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>SAID Nasra</td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>SALIM Laïlouna</td>\n",
" <td>7.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>SIDI Yansilouna</td>\n",
" <td>7.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>SOILIHI Nadjdat</td>\n",
" <td>6.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark\n",
"0 ABDILLAH Nourouzamane 6.0\n",
"1 ABDOU Mouhamadi 8.5\n",
"2 ABOUDOU Amayoune 9.5\n",
"3 AHAMED Tansia 6.5\n",
"4 AHMED Yancoub 7.5\n",
"5 ALI Cynthia 9.0\n",
"6 ANDRIAMAHAZAKA Néni Erika 7.5\n",
"7 ATTOUMANI Antibati 0.0\n",
"8 ATTOUMANI OUSSENI Jeannette 8.0\n",
"9 CHAMASSE Nadjima 6.0\n",
"10 CHARMANE RAFION Elda 8.0\n",
"11 DAOU Naël 8.0\n",
"12 DARMINE Sadya 7.5\n",
"13 HAMIDOU Fayssoil 0.0\n",
"14 HOUMADI Mouhouyi 8.0\n",
"15 MADI SAID Zaynati 8.5\n",
"16 MALIDE Elza 6.0\n",
"17 MOUHAMADI ANDILI Issina 8.0\n",
"18 MOUSSA Samra 9.0\n",
"19 OUSSENI Kaïssoune 7.5\n",
"20 OUSSENI Saandati 9.5\n",
"21 SAID Amina 9.5\n",
"22 SAID Charfia 9.0\n",
"23 SAID Hachimia 5.5\n",
"24 SAID Nasra 10.0\n",
"25 SALIM Laïlouna 7.0\n",
"26 SIDI Yansilouna 7.0\n",
"27 SOILIHI Nadjdat 6.0"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds6_eval[[\"Eleve\", \"Mark\"]]"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 4,
"height": 4,
"hidden": false,
"row": 50,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"## Calcul mental T2"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"CMT2_flat = flat_T2[flat_T2[\"Nom\"]==\"Calcul mental T2\"]"
]
},
{
"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": [
"CMT2_quest, CMT2_exo, CMT2_eval = digest_flat_df(CMT2_flat)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"CMT2_eval = tranform_scale(CMT2_eval, 20, 'prop')"
]
},
{
"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>ABDILLAH Nourouzamane</td>\n",
" <td>11 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ABDOU Mouhamadi</td>\n",
" <td>16 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ABOUDOU Amayoune</td>\n",
" <td>19 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>AHAMED Tansia</td>\n",
" <td>14 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>AHMED Yancoub</td>\n",
" <td>15 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>ALI Cynthia</td>\n",
" <td>19 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ANDRIAMAHAZAKA Néni Erika</td>\n",
" <td>19 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>ATTOUMANI Antibati</td>\n",
" <td>10 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>ATTOUMANI OUSSENI Jeannette</td>\n",
" <td>19 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>CHAMASSE Nadjima</td>\n",
" <td>18 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>CHARMANE RAFION Elda</td>\n",
" <td>18 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>DAOU Naël</td>\n",
" <td>11,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>DARMINE Sadya</td>\n",
" <td>10 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>HAMIDOU Fayssoil</td>\n",
" <td>11 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>HOUMADI Mouhouyi</td>\n",
" <td>16,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>MADI SAID Zaynati</td>\n",
" <td>15 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MALIDE Elza</td>\n",
" <td>11 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MOUHAMADI ANDILI Issina</td>\n",
" <td>18 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>MOUSSA Samra</td>\n",
" <td>15 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>OUSSENI Kaïssoune</td>\n",
" <td>9,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>OUSSENI Saandati</td>\n",
" <td>18 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>SAID Amina</td>\n",
" <td>19 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>SAID Charfia</td>\n",
" <td>14 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>SAID Hachimia</td>\n",
" <td>8 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>SAID Nasra</td>\n",
" <td>19,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>SALIM Laïlouna</td>\n",
" <td>14 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>SIDI Yansilouna</td>\n",
" <td>12,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>SOILIHI Nadjdat</td>\n",
" <td>4,5 / 20</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark_barem\n",
"0 ABDILLAH Nourouzamane 11 / 20\n",
"1 ABDOU Mouhamadi 16 / 20\n",
"2 ABOUDOU Amayoune 19 / 20\n",
"3 AHAMED Tansia 14 / 20\n",
"4 AHMED Yancoub 15 / 20\n",
"5 ALI Cynthia 19 / 20\n",
"6 ANDRIAMAHAZAKA Néni Erika 19 / 20\n",
"7 ATTOUMANI Antibati 10 / 20\n",
"8 ATTOUMANI OUSSENI Jeannette 19 / 20\n",
"9 CHAMASSE Nadjima 18 / 20\n",
"10 CHARMANE RAFION Elda 18 / 20\n",
"11 DAOU Naël 11,5 / 20\n",
"12 DARMINE Sadya 10 / 20\n",
"13 HAMIDOU Fayssoil 11 / 20\n",
"14 HOUMADI Mouhouyi 16,5 / 20\n",
"15 MADI SAID Zaynati 15 / 20\n",
"16 MALIDE Elza 11 / 20\n",
"17 MOUHAMADI ANDILI Issina 18 / 20\n",
"18 MOUSSA Samra 15 / 20\n",
"19 OUSSENI Kaïssoune 9,5 / 20\n",
"20 OUSSENI Saandati 18 / 20\n",
"21 SAID Amina 19 / 20\n",
"22 SAID Charfia 14 / 20\n",
"23 SAID Hachimia 8 / 20\n",
"24 SAID Nasra 19,5 / 20\n",
"25 SALIM Laïlouna 14 / 20\n",
"26 SIDI Yansilouna 12,5 / 20\n",
"27 SOILIHI Nadjdat 4,5 / 20"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"CMT2_eval[[\"Eleve\", \"Mark_barem\"]]"
]
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 8,
"height": 4,
"hidden": false,
"row": 50,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"## DM1"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"dm1_flat = flat_T2[flat_T2[\"Nom\"]==\"DM1\"]"
]
},
{
"cell_type": "code",
"execution_count": 41,
"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": 42,
"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>ABDILLAH Nourouzamane</td>\n",
" <td>4 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ABDOU Mouhamadi</td>\n",
" <td>3 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ABOUDOU Amayoune</td>\n",
" <td>3 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>AHAMED Tansia</td>\n",
" <td>3 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>AHMED Yancoub</td>\n",
" <td>3 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>ALI Cynthia</td>\n",
" <td>4 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ANDRIAMAHAZAKA Néni Erika</td>\n",
" <td>3 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>ATTOUMANI Antibati</td>\n",
" <td>0 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>ATTOUMANI OUSSENI Jeannette</td>\n",
" <td>3 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>CHAMASSE Nadjima</td>\n",
" <td>3 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>CHARMANE RAFION Elda</td>\n",
" <td>3 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>DAOU Naël</td>\n",
" <td>2,5 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>DARMINE Sadya</td>\n",
" <td>3 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>HAMIDOU Fayssoil</td>\n",
" <td>1,5 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>HOUMADI Mouhouyi</td>\n",
" <td>0 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>MADI SAID Zaynati</td>\n",
" <td>4 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MALIDE Elza</td>\n",
" <td>4 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MOUHAMADI ANDILI Issina</td>\n",
" <td>2 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>MOUSSA Samra</td>\n",
" <td>2 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>OUSSENI Kaïssoune</td>\n",
" <td>0 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>OUSSENI Saandati</td>\n",
" <td>4 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>SAID Amina</td>\n",
" <td>0 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>SAID Charfia</td>\n",
" <td>4 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>SAID Hachimia</td>\n",
" <td>4 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>SAID Nasra</td>\n",
" <td>4 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>SALIM Laïlouna</td>\n",
" <td>0 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>SIDI Yansilouna</td>\n",
" <td>0 / 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>SOILIHI Nadjdat</td>\n",
" <td>0 / 5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark_barem\n",
"0 ABDILLAH Nourouzamane 4 / 5\n",
"1 ABDOU Mouhamadi 3 / 5\n",
"2 ABOUDOU Amayoune 3 / 5\n",
"3 AHAMED Tansia 3 / 5\n",
"4 AHMED Yancoub 3 / 5\n",
"5 ALI Cynthia 4 / 5\n",
"6 ANDRIAMAHAZAKA Néni Erika 3 / 5\n",
"7 ATTOUMANI Antibati 0 / 5\n",
"8 ATTOUMANI OUSSENI Jeannette 3 / 5\n",
"9 CHAMASSE Nadjima 3 / 5\n",
"10 CHARMANE RAFION Elda 3 / 5\n",
"11 DAOU Naël 2,5 / 5\n",
"12 DARMINE Sadya 3 / 5\n",
"13 HAMIDOU Fayssoil 1,5 / 5\n",
"14 HOUMADI Mouhouyi 0 / 5\n",
"15 MADI SAID Zaynati 4 / 5\n",
"16 MALIDE Elza 4 / 5\n",
"17 MOUHAMADI ANDILI Issina 2 / 5\n",
"18 MOUSSA Samra 2 / 5\n",
"19 OUSSENI Kaïssoune 0 / 5\n",
"20 OUSSENI Saandati 4 / 5\n",
"21 SAID Amina 0 / 5\n",
"22 SAID Charfia 4 / 5\n",
"23 SAID Hachimia 4 / 5\n",
"24 SAID Nasra 4 / 5\n",
"25 SALIM Laïlouna 0 / 5\n",
"26 SIDI Yansilouna 0 / 5\n",
"27 SOILIHI Nadjdat 0 / 5"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dm1_eval[[\"Eleve\", \"Mark_barem\"]]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 4,
"hidden": false,
"row": 54,
"width": 4
},
"report_default": {
"hidden": false
}
}
}
}
},
"source": [
"## Bilan du 2e trimestre"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"extensions": {
"jupyter_dashboards": {
"version": 1,
"views": {
"grid_default": {
"col": 0,
"height": 11,
"hidden": false,
"row": 58,
"width": 11
},
"report_default": {
"hidden": 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>Bareme</th>\n",
" <th>Commentaire</th>\n",
" <th>Competence</th>\n",
" <th>Date</th>\n",
" <th>Domaine</th>\n",
" <th>Eleve</th>\n",
" <th>Exercice</th>\n",
" <th>Niveau</th>\n",
" <th>Nom</th>\n",
" <th>Note</th>\n",
" <th>Question</th>\n",
" <th>Trimestre</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1080</th>\n",
" <td>1.5</td>\n",
" <td>Calculs à trou</td>\n",
" <td>Cal</td>\n",
" <td>2016-12-02 00:00:00</td>\n",
" <td>Ega</td>\n",
" <td>ABDILLAH Nourouzamane</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>DS4</td>\n",
" <td>2</td>\n",
" <td>1à3</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1081</th>\n",
" <td>1.5</td>\n",
" <td>Calculs à trou</td>\n",
" <td>Cal</td>\n",
" <td>2016-12-02 00:00:00</td>\n",
" <td>Ega</td>\n",
" <td>ABDOU Mohamed</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>DS4</td>\n",
" <td>NaN</td>\n",
" <td>1à3</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1082</th>\n",
" <td>1.5</td>\n",
" <td>Calculs à trou</td>\n",
" <td>Cal</td>\n",
" <td>2016-12-02 00:00:00</td>\n",
" <td>Ega</td>\n",
" <td>ABDOU Mouhamadi</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>DS4</td>\n",
" <td>3</td>\n",
" <td>1à3</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1083</th>\n",
" <td>1.5</td>\n",
" <td>Calculs à trou</td>\n",
" <td>Cal</td>\n",
" <td>2016-12-02 00:00:00</td>\n",
" <td>Ega</td>\n",
" <td>ABOUDOU Amayoune</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>DS4</td>\n",
" <td>3</td>\n",
" <td>1à3</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1084</th>\n",
" <td>1.5</td>\n",
" <td>Calculs à trou</td>\n",
" <td>Cal</td>\n",
" <td>2016-12-02 00:00:00</td>\n",
" <td>Ega</td>\n",
" <td>AHAMED Tansia</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>DS4</td>\n",
" <td>1</td>\n",
" <td>1à3</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Bareme Commentaire Competence Date Domaine \\\n",
"1080 1.5 Calculs à trou Cal 2016-12-02 00:00:00 Ega \n",
"1081 1.5 Calculs à trou Cal 2016-12-02 00:00:00 Ega \n",
"1082 1.5 Calculs à trou Cal 2016-12-02 00:00:00 Ega \n",
"1083 1.5 Calculs à trou Cal 2016-12-02 00:00:00 Ega \n",
"1084 1.5 Calculs à trou Cal 2016-12-02 00:00:00 Ega \n",
"\n",
" Eleve Exercice Niveau Nom Note Question Trimestre \n",
"1080 ABDILLAH Nourouzamane 1 1 DS4 2 1à3 2 \n",
"1081 ABDOU Mohamed 1 1 DS4 NaN 1à3 2 \n",
"1082 ABDOU Mouhamadi 1 1 DS4 3 1à3 2 \n",
"1083 ABOUDOU Amayoune 1 1 DS4 3 1à3 2 \n",
"1084 AHAMED Tansia 1 1 DS4 1 1à3 2 "
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flat_T2.head()"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
"not_student_info = [\"Bareme\", \"Commentaire\", \"Competence\", \"Date\", \"Domaine\", \"Exercice\", \"Niveau\", \"Nom\", \"Question\", \"Trimestre\"]\n",
"T2_uniq_quest = quest_T2[not_student_info].drop_duplicates()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nombre d'évaluations par compétences"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def my_autopct(values):\n",
" def my_autopct(pct):\n",
" total = sum(values)\n",
" val = int(round(pct*total/100.0))\n",
" return f\"{val}\"\n",
" #return '{p:.2f}% ({v:d})'.format(p=pct,v=val)\n",
" return my_autopct\n",
"\n",
"def pivot_table_to_pie(pv):\n",
" nbr_pies = len(pv.columns)\n",
" nbr_cols = min(3, nbr_pies)\n",
" nbr_rows = max(nbr_pies % nbr_cols,1)\n",
" f, axs = plt.subplots(nbr_rows, nbr_cols, figsize = (4*nbr_cols,4*nbr_rows))\n",
" for (c, ax) in zip(pv, axs.flatten()):\n",
" datas = pv[c]\n",
" explode = [0.1]*len(datas)\n",
" pv[c].plot(kind=\"pie\",\n",
" ax=ax,\n",
" use_index = False,\n",
" title = f\"{c} (total={datas.sum()})\",\n",
" legend = False,\n",
" autopct=my_autopct(datas),\n",
" explode = explode,\n",
" )\n",
" ax.set_ylabel(\"\")\n",
" for i in range(nbr_pies//nbr_cols, nbr_cols*nbr_rows):\n",
" axs.flat[i].axis(\"off\")\n",
" return (f, axs)"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"comp_eff_pts = pd.pivot_table(T2_uniq_quest,\n",
" index = \"Competence\",\n",
" #columns = \"Level\",\n",
" values = \"Bareme\",\n",
" aggfunc=[len,np.sum],\n",
" fill_value=0)\n",
"#comp_eff_pts.columns = [\"Effectifs\", \"Points\"]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Effectifs des évaluations et points attribués"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(<matplotlib.figure.Figure at 0x7f982acef400>,\n",
" array([<matplotlib.axes._subplots.AxesSubplot object at 0x7f982acefcf8>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x7f982acb28d0>], dtype=object))"
]
},
"execution_count": 47,
"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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\nTm+UVCotcQEkEAjA83y
"text/plain": [
"<matplotlib.figure.Figure at 0x7f982acef400>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pivot_table_to_pie(comp_eff_pts)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [],
"source": [
"comp_count_pv = pd.pivot_table(quest_T2,\n",
" index = \"Competence\",\n",
" columns = \"Level\",\n",
" values = \"Trimestre\",\n",
" aggfunc=len,\n",
" fill_value=0)\n",
"comp_count_pv.rename({\"Cal\": \"Calculer\",\n",
" \"Com\": \"Communiquer\",\n",
" \"Mod\": \"Modéliser\",\n",
" \"Rai\": \"Raisonner\",\n",
" \"Rep\": \"Représenter\",\n",
" },\n",
" inplace = True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Répartition des résultats des évaluations par compétences"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"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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\nkZGREg86QgUfP36ESCS
"text/plain": [
"<matplotlib.figure.Figure at 0x7f982ac6f9b0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f, a = pivot_table_to_pie(comp_count_pv.T)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Trimestre 3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## DS7"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ds7_flat = flat[flat[\"Nom\"]==\"DS7\"]"
]
},
{
"cell_type": "code",
"execution_count": 51,
"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": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"count 28.00\n",
"mean 6.46\n",
"std 1.62\n",
"min 4.00\n",
"25% 5.00\n",
"50% 6.50\n",
"75% 7.50\n",
"max 9.50\n",
"Name: Mark, dtype: float64"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds7_eval[\"Mark\"].describe()"
]
},
{
"cell_type": "code",
"execution_count": 53,
"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>ABDILLAH Nourouzamane</td>\n",
" <td>4 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ABDOU Mouhamadi</td>\n",
" <td>7,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>ABOUDOU Amayoune</td>\n",
" <td>7,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>AHAMED Tansia</td>\n",
" <td>6,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>AHMED Yancoub</td>\n",
" <td>6,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>ALI Cynthia</td>\n",
" <td>5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ANDRIAMAHAZAKA Néni Erika</td>\n",
" <td>4 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>ATTOUMANI Antibati</td>\n",
" <td>5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>ATTOUMANI OUSSENI Jeannette</td>\n",
" <td>4 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>CHAMASSE Nadjima</td>\n",
" <td>5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>CHARMANE RAFION Elda</td>\n",
" <td>6,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>DAOU Naël</td>\n",
" <td>5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>DARMINE Sadya</td>\n",
" <td>6 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>HAMIDOU Fayssoil</td>\n",
" <td>5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>HOUMADI Mouhouyi</td>\n",
" <td>7 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>MADI SAID Zaynati</td>\n",
" <td>8,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MALIDE Elza</td>\n",
" <td>8 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MOUHAMADI ANDILI Issina</td>\n",
" <td>8,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>MOUSSA Samra</td>\n",
" <td>8,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>OUSSENI Kaïssoune</td>\n",
" <td>5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>OUSSENI Saandati</td>\n",
" <td>7,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>SAID Amina</td>\n",
" <td>9,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>SAID Charfia</td>\n",
" <td>6,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>SAID Hachimia</td>\n",
" <td>6 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>SAID Nasra</td>\n",
" <td>9,5 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>SALIM Laïlouna</td>\n",
" <td>7 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>SIDI Yansilouna</td>\n",
" <td>7 / 11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>SOILIHI Nadjdat</td>\n",
" <td>5 / 11</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark_barem\n",
"0 ABDILLAH Nourouzamane 4 / 11\n",
"1 ABDOU Mouhamadi 7,5 / 11\n",
"2 ABOUDOU Amayoune 7,5 / 11\n",
"3 AHAMED Tansia 6,5 / 11\n",
"4 AHMED Yancoub 6,5 / 11\n",
"5 ALI Cynthia 5 / 11\n",
"6 ANDRIAMAHAZAKA Néni Erika 4 / 11\n",
"7 ATTOUMANI Antibati 5 / 11\n",
"8 ATTOUMANI OUSSENI Jeannette 4 / 11\n",
"9 CHAMASSE Nadjima 5 / 11\n",
"10 CHARMANE RAFION Elda 6,5 / 11\n",
"11 DAOU Naël 5 / 11\n",
"12 DARMINE Sadya 6 / 11\n",
"13 HAMIDOU Fayssoil 5 / 11\n",
"14 HOUMADI Mouhouyi 7 / 11\n",
"15 MADI SAID Zaynati 8,5 / 11\n",
"16 MALIDE Elza 8 / 11\n",
"17 MOUHAMADI ANDILI Issina 8,5 / 11\n",
"18 MOUSSA Samra 8,5 / 11\n",
"19 OUSSENI Kaïssoune 5 / 11\n",
"20 OUSSENI Saandati 7,5 / 11\n",
"21 SAID Amina 9,5 / 11\n",
"22 SAID Charfia 6,5 / 11\n",
"23 SAID Hachimia 6 / 11\n",
"24 SAID Nasra 9,5 / 11\n",
"25 SALIM Laïlouna 7 / 11\n",
"26 SIDI Yansilouna 7 / 11\n",
"27 SOILIHI Nadjdat 5 / 11"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds7_eval[[\"Eleve\", \"Mark_barem\"]]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## CMT3"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"cmT3_flat = flat[flat[\"Nom\"]==\"CMT3\"]"
]
},
{
"cell_type": "code",
"execution_count": 55,
"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": 56,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"count 27.00\n",
"mean 20.52\n",
"std 3.74\n",
"min 12.00\n",
"25% 18.00\n",
"50% 21.00\n",
"75% 23.00\n",
"max 28.00\n",
"Name: Mark, dtype: float64"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cmT3_eval[\"Mark\"].describe()"
]
},
{
"cell_type": "code",
"execution_count": 57,
"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>ABDILLAH Nourouzamane</td>\n",
" <td>18 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ABOUDOU Amayoune</td>\n",
" <td>21 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>AHAMED Tansia</td>\n",
" <td>23 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>AHMED Yancoub</td>\n",
" <td>16 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>ALI Cynthia</td>\n",
" <td>21 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>ANDRIAMAHAZAKA Néni Erika</td>\n",
" <td>21 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ATTOUMANI Antibati</td>\n",
" <td>16 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>ATTOUMANI OUSSENI Jeannette</td>\n",
" <td>21 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>CHAMASSE Nadjima</td>\n",
" <td>25 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>CHARMANE RAFION Elda</td>\n",
" <td>23 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>DAOU Naël</td>\n",
" <td>20 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>DARMINE Sadya</td>\n",
" <td>18 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>HAMIDOU Fayssoil</td>\n",
" <td>19 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>HOUMADI Mouhouyi</td>\n",
" <td>23 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>MADI SAID Zaynati</td>\n",
" <td>23 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>MALIDE Elza</td>\n",
" <td>22 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MOUHAMADI ANDILI Issina</td>\n",
" <td>22 / 24</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MOUSSA Samra</td>\n",
" <td>17 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>OUSSENI Kaïssoune</td>\n",
" <td>13 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>OUSSENI Saandati</td>\n",
" <td>25 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>SAID Amina</td>\n",
" <td>26 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>SAID Charfia</td>\n",
" <td>22 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>SAID Hachimia</td>\n",
" <td>18 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>SAID Nasra</td>\n",
" <td>28 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>SALIM Laïlouna</td>\n",
" <td>20 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>SIDI Yansilouna</td>\n",
" <td>21 / 28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>SOILIHI Nadjdat</td>\n",
" <td>12 / 28</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark_barem\n",
"0 ABDILLAH Nourouzamane 18 / 28\n",
"1 ABOUDOU Amayoune 21 / 28\n",
"2 AHAMED Tansia 23 / 28\n",
"3 AHMED Yancoub 16 / 28\n",
"4 ALI Cynthia 21 / 28\n",
"5 ANDRIAMAHAZAKA Néni Erika 21 / 28\n",
"6 ATTOUMANI Antibati 16 / 28\n",
"7 ATTOUMANI OUSSENI Jeannette 21 / 28\n",
"8 CHAMASSE Nadjima 25 / 28\n",
"9 CHARMANE RAFION Elda 23 / 28\n",
"10 DAOU Naël 20 / 28\n",
"11 DARMINE Sadya 18 / 28\n",
"12 HAMIDOU Fayssoil 19 / 28\n",
"13 HOUMADI Mouhouyi 23 / 28\n",
"14 MADI SAID Zaynati 23 / 28\n",
"15 MALIDE Elza 22 / 28\n",
"16 MOUHAMADI ANDILI Issina 22 / 24\n",
"17 MOUSSA Samra 17 / 28\n",
"18 OUSSENI Kaïssoune 13 / 28\n",
"19 OUSSENI Saandati 25 / 28\n",
"20 SAID Amina 26 / 28\n",
"21 SAID Charfia 22 / 28\n",
"22 SAID Hachimia 18 / 28\n",
"23 SAID Nasra 28 / 28\n",
"24 SALIM Laïlouna 20 / 28\n",
"25 SIDI Yansilouna 21 / 28\n",
"26 SOILIHI Nadjdat 12 / 28"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cmT3_eval[[\"Eleve\", \"Mark_barem\"]]"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"CMT3_eval = tranform_scale(cmT3_eval, 20, 'prop')"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"count 27.00\n",
"mean 14.91\n",
"std 2.72\n",
"min 9.00\n",
"25% 13.00\n",
"50% 15.00\n",
"75% 16.50\n",
"max 20.00\n",
"Name: Mark, dtype: float64"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"CMT3_eval[\"Mark\"].describe()"
]
},
{
"cell_type": "code",
"execution_count": 60,
"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>ABDILLAH Nourouzamane</td>\n",
" <td>13 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>ABOUDOU Amayoune</td>\n",
" <td>15 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>AHAMED Tansia</td>\n",
" <td>16,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>AHMED Yancoub</td>\n",
" <td>11,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>ALI Cynthia</td>\n",
" <td>15 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>ANDRIAMAHAZAKA Néni Erika</td>\n",
" <td>15 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>ATTOUMANI Antibati</td>\n",
" <td>11,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>ATTOUMANI OUSSENI Jeannette</td>\n",
" <td>15 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>CHAMASSE Nadjima</td>\n",
" <td>18 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>CHARMANE RAFION Elda</td>\n",
" <td>16,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>DAOU Naël</td>\n",
" <td>14,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>DARMINE Sadya</td>\n",
" <td>13 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>HAMIDOU Fayssoil</td>\n",
" <td>14 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>HOUMADI Mouhouyi</td>\n",
" <td>16,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>MADI SAID Zaynati</td>\n",
" <td>16,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>MALIDE Elza</td>\n",
" <td>16 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MOUHAMADI ANDILI Issina</td>\n",
" <td>18,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MOUSSA Samra</td>\n",
" <td>12,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>OUSSENI Kaïssoune</td>\n",
" <td>9,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>OUSSENI Saandati</td>\n",
" <td>18 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>SAID Amina</td>\n",
" <td>19 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>SAID Charfia</td>\n",
" <td>16 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>SAID Hachimia</td>\n",
" <td>13 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>SAID Nasra</td>\n",
" <td>20 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>SALIM Laïlouna</td>\n",
" <td>14,5 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>SIDI Yansilouna</td>\n",
" <td>15 / 20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>SOILIHI Nadjdat</td>\n",
" <td>9 / 20</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Eleve Mark_barem\n",
"0 ABDILLAH Nourouzamane 13 / 20\n",
"1 ABOUDOU Amayoune 15 / 20\n",
"2 AHAMED Tansia 16,5 / 20\n",
"3 AHMED Yancoub 11,5 / 20\n",
"4 ALI Cynthia 15 / 20\n",
"5 ANDRIAMAHAZAKA Néni Erika 15 / 20\n",
"6 ATTOUMANI Antibati 11,5 / 20\n",
"7 ATTOUMANI OUSSENI Jeannette 15 / 20\n",
"8 CHAMASSE Nadjima 18 / 20\n",
"9 CHARMANE RAFION Elda 16,5 / 20\n",
"10 DAOU Naël 14,5 / 20\n",
"11 DARMINE Sadya 13 / 20\n",
"12 HAMIDOU Fayssoil 14 / 20\n",
"13 HOUMADI Mouhouyi 16,5 / 20\n",
"14 MADI SAID Zaynati 16,5 / 20\n",
"15 MALIDE Elza 16 / 20\n",
"16 MOUHAMADI ANDILI Issina 18,5 / 20\n",
"17 MOUSSA Samra 12,5 / 20\n",
"18 OUSSENI Kaïssoune 9,5 / 20\n",
"19 OUSSENI Saandati 18 / 20\n",
"20 SAID Amina 19 / 20\n",
"21 SAID Charfia 16 / 20\n",
"22 SAID Hachimia 13 / 20\n",
"23 SAID Nasra 20 / 20\n",
"24 SALIM Laïlouna 14,5 / 20\n",
"25 SIDI Yansilouna 15 / 20\n",
"26 SOILIHI Nadjdat 9 / 20"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"CMT3_eval[[\"Eleve\", \"Mark_barem\"]]"
]
},
{
"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.1"
}
},
"nbformat": 4,
"nbformat_minor": 1
}