2017-2018/tools/skeleton/Bilan.ipynb

1930 lines
478 KiB
Plaintext
Raw Permalink Normal View History

{
"cells": [
{
"cell_type": "code",
"execution_count": 90,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import pandas as pd\n",
"from opytex import texenv\n",
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"plt.style.use(\"seaborn-notebook\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Informations sur le devoir"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"{'classe': '', 'date': '', 'titre': ''}"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ds_name = \"\"\n",
"classe = \"\"\n",
"\n",
"latex_info = {}\n",
"latex_info['titre'] = \"\"\n",
"latex_info['classe'] = \"\"\n",
"latex_info['date'] = \"\"\n",
"latex_info"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Import et premiers traitements"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"notes = pd.ExcelFile(\"./../../../../notes/\"+classe+\".xlsx\")\n",
"notes.sheet_names\n",
"notes = notes.parse(ds_name)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"Index(['BB_16_01_23', 'Présentation', 'Exercice 1', 'Réponse', 'Rédaction',\n",
" 'Exercice 2', '1. Developper', '2. Evaluer', 'Exercice 3',\n",
" 'Comparaison', 'Pythagore', 'Thalès', 'Exercice 4', '1. Lecture',\n",
" '2. Max', '3. Moyenne', '4. Etendue', '5. Médiane', 'Exercice 5',\n",
" '1. Opérations', '2. Équation', '3. Probabilité', 'Exercice 6',\n",
" '1. Tableur', '2. Tableur', '3. PGCD', '4. Fraction',\n",
" 'Exercice 7 (QCM)'],\n",
" dtype='object')"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"notes.index"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"notes = notes.T"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#notes = notes.drop('av_arrondi', axis=1)\n",
"#notes = notes.drop('num_sujet', axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"barem = notes[:1]\n",
"notes = notes[1:]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>BB_16_01_23</th>\n",
" <th>Présentation</th>\n",
" <th>Exercice 1</th>\n",
" <th>Réponse</th>\n",
" <th>Rédaction</th>\n",
" <th>Exercice 2</th>\n",
" <th>1. Developper</th>\n",
" <th>2. Evaluer</th>\n",
" <th>Exercice 3</th>\n",
" <th>Comparaison</th>\n",
" <th>...</th>\n",
" <th>Exercice 5</th>\n",
" <th>1. Opérations</th>\n",
" <th>2. Équation</th>\n",
" <th>3. Probabilité</th>\n",
" <th>Exercice 6</th>\n",
" <th>1. Tableur</th>\n",
" <th>2. Tableur</th>\n",
" <th>3. PGCD</th>\n",
" <th>4. Fraction</th>\n",
" <th>Exercice 7 (QCM)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>ABDOU Farida</th>\n",
" <td>22.0</td>\n",
" <td>3</td>\n",
" <td>2.333333</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>0.666667</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>6.333333</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ABOU BACAR Djaha</th>\n",
" <td>20.0</td>\n",
" <td>3</td>\n",
" <td>1.333333</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1.666667</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4.000000</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>0.666667</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>AHAMADA Nabaouya</th>\n",
" <td>23.0</td>\n",
" <td>4</td>\n",
" <td>1.000000</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1.666667</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4.333333</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>4.5</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>AHAMADI Faina</th>\n",
" <td>9.0</td>\n",
" <td>4</td>\n",
" <td>0.666667</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1.000000</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0.000000</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.666667</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1.5</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ALI Mardhuia</th>\n",
" <td>20.5</td>\n",
" <td>4</td>\n",
" <td>1.666667</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>1.000000</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4.000000</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>1.333333</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2.5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ALI SOULAIMANA Chamsia</th>\n",
" <td>24.0</td>\n",
" <td>4</td>\n",
" <td>1.666667</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>1.333333</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>6.333333</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>0.666667</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3.5</td>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ALSENE ALI MADI Stela</th>\n",
" <td>14.5</td>\n",
" <td>4</td>\n",
" <td>1.333333</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1.000000</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2.000000</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>2.666667</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ANDRIATAHIANA Hoby</th>\n",
" <td>22.5</td>\n",
" <td>4</td>\n",
" <td>1.333333</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1.666667</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>3.000000</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>1.333333</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2.5</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ANLI Emeline</th>\n",
" <td>13.0</td>\n",
" <td>3</td>\n",
" <td>0.666667</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0.333333</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1.000000</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>1.5</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>ATHOUMANE Naouidat</th>\n",
" <td>19.5</td>\n",
" <td>4</td>\n",
" <td>1.666667</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>1.666667</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>5.666667</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1.5</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>BOUDRA Nassifanya</th>\n",
" <td>27.0</td>\n",
" <td>3</td>\n",
" <td>1.666667</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>2.000000</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>6.000000</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>1.333333</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>5.5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>CHANFI Nadhrati</th>\n",
" <td>10.5</td>\n",
" <td>4</td>\n",
" <td>0.666667</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0.000000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>0.666667</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.5</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>COMBO Moinécha</th>\n",
" <td>26.0</td>\n",
" <td>2</td>\n",
" <td>1.666667</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0.666667</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>6.000000</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>2.666667</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>3.0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>HALIDI Nisma</th>\n",
" <td>26.0</td>\n",
" <td>4</td>\n",
" <td>1.000000</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0.000000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>6.333333</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>2.000000</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>4.5</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>HAMZA Samianti</th>\n",
" <td>16.0</td>\n",
" <td>4</td>\n",
" <td>0.666667</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2.000000</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>0.333333</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>HOUMADI Mouslimati</th>\n",
" <td>17.0</td>\n",
" <td>2</td>\n",
" <td>1.333333</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0.666667</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2.333333</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>2.000000</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>HOUMADI Chaharazadi</th>\n",
" <td>22.0</td>\n",
" <td>4</td>\n",
" <td>1.333333</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1.000000</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>5.000000</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>1.333333</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1.5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>HOUMADI Nasmi</th>\n",
" <td>20.0</td>\n",
" <td>4</td>\n",
" <td>1.333333</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1.000000</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0.333333</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>0.666667</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4.5</td>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>HOUMADI Dhoirfia</th>\n",
" <td>21.5</td>\n",
" <td>3</td>\n",
" <td>1.333333</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1.333333</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>5.000000</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>0.666667</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4.0</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>LOUTOUFI Nachima</th>\n",
" <td>14.5</td>\n",
" <td>4</td>\n",
" <td>1.666667</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0.333333</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1.333333</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>MALIDE El-Anzize</th>\n",
" <td>18.5</td>\n",
" <td>4</td>\n",
" <td>1.000000</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0.333333</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>6.000000</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>MONNE Kevin</th>\n",
" <td>24.0</td>\n",
" <td>4</td>\n",
" <td>1.666667</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>1.000000</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2.666667</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>4.000000</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3.5</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>MOUSSA Roibouanti</th>\n",
" <td>24.0</td>\n",
" <td>3</td>\n",
" <td>1.666667</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>2.000000</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3.333333</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>1.333333</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>3.5</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>OUSSENI Hilma</th>\n",
" <td>18.0</td>\n",
" <td>4</td>\n",
" <td>1.333333</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0.666667</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>4.000000</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.666667</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0.5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SAANLI Natali</th>\n",
" <td>31.0</td>\n",
" <td>3</td>\n",
" <td>3.000000</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>2.000000</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>6.666667</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>4.000000</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4.5</td>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SAID AHAMADA Roukaya</th>\n",
" <td>20.5</td>\n",
" <td>4</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.666667</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>0.666667</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" <td>4.5</td>\n",
" <td>3</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SANDA Issoufi</th>\n",
" <td>13.0</td>\n",
" <td>4</td>\n",
" <td>1.666667</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0.333333</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>0.666667</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1.5</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SOILIHI Soifia</th>\n",
" <td>20.5</td>\n",
" <td>4</td>\n",
" <td>1.333333</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0.666667</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2.333333</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>2.000000</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SOUFIANI Laila</th>\n",
" <td>10.5</td>\n",
" <td>4</td>\n",
" <td>0.666667</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0.333333</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1.5</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>YOUSSOUF Sitirati</th>\n",
" <td>10.5</td>\n",
" <td>4</td>\n",
" <td>1.000000</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0.333333</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1.000000</td>\n",
" <td>NaN</td>\n",
" <td>...</td>\n",
" <td>0.666667</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>1.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>30 rows × 28 columns</p>\n",
"</div>"
],
"text/plain": [
" BB_16_01_23 Présentation Exercice 1 Réponse \\\n",
"ABDOU Farida 22.0 3 2.333333 3 \n",
"ABOU BACAR Djaha 20.0 3 1.333333 2 \n",
"AHAMADA Nabaouya 23.0 4 1.000000 1 \n",
"AHAMADI Faina 9.0 4 0.666667 0 \n",
"ALI Mardhuia 20.5 4 1.666667 3 \n",
"ALI SOULAIMANA Chamsia 24.0 4 1.666667 3 \n",
"ALSENE ALI MADI Stela 14.5 4 1.333333 2 \n",
"ANDRIATAHIANA Hoby 22.5 4 1.333333 2 \n",
"ANLI Emeline 13.0 3 0.666667 0 \n",
"ATHOUMANE Naouidat 19.5 4 1.666667 3 \n",
"BOUDRA Nassifanya 27.0 3 1.666667 3 \n",
"CHANFI Nadhrati 10.5 4 0.666667 0 \n",
"COMBO Moinécha 26.0 2 1.666667 3 \n",
"HALIDI Nisma 26.0 4 1.000000 1 \n",
"HAMZA Samianti 16.0 4 0.666667 0 \n",
"HOUMADI Mouslimati 17.0 2 1.333333 2 \n",
"HOUMADI Chaharazadi 22.0 4 1.333333 2 \n",
"HOUMADI Nasmi 20.0 4 1.333333 2 \n",
"HOUMADI Dhoirfia 21.5 3 1.333333 2 \n",
"LOUTOUFI Nachima 14.5 4 1.666667 3 \n",
"MALIDE El-Anzize 18.5 4 1.000000 1 \n",
"MONNE Kevin 24.0 4 1.666667 3 \n",
"MOUSSA Roibouanti 24.0 3 1.666667 3 \n",
"OUSSENI Hilma 18.0 4 1.333333 2 \n",
"SAANLI Natali 31.0 3 3.000000 3 \n",
"SAID AHAMADA Roukaya 20.5 4 0.000000 NaN \n",
"SANDA Issoufi 13.0 4 1.666667 3 \n",
"SOILIHI Soifia 20.5 4 1.333333 2 \n",
"SOUFIANI Laila 10.5 4 0.666667 0 \n",
"YOUSSOUF Sitirati 10.5 4 1.000000 1 \n",
"\n",
" Rédaction Exercice 2 1. Developper 2. Evaluer \\\n",
"ABDOU Farida 2 0.666667 1 0 \n",
"ABOU BACAR Djaha 1 1.666667 2 1 \n",
"AHAMADA Nabaouya 1 1.666667 2 1 \n",
"AHAMADI Faina 1 1.000000 1 1 \n",
"ALI Mardhuia 1 1.000000 1 1 \n",
"ALI SOULAIMANA Chamsia 1 1.333333 2 0 \n",
"ALSENE ALI MADI Stela 1 1.000000 1 1 \n",
"ANDRIATAHIANA Hoby 1 1.666667 2 1 \n",
"ANLI Emeline 1 0.333333 0 1 \n",
"ATHOUMANE Naouidat 1 1.666667 2 1 \n",
"BOUDRA Nassifanya 1 2.000000 3 0 \n",
"CHANFI Nadhrati 1 0.000000 0 0 \n",
"COMBO Moinécha 1 0.666667 1 0 \n",
"HALIDI Nisma 1 0.000000 0 0 \n",
"HAMZA Samianti 1 2.000000 3 0 \n",
"HOUMADI Mouslimati 1 0.666667 1 0 \n",
"HOUMADI Chaharazadi 1 1.000000 1 1 \n",
"HOUMADI Nasmi 1 1.000000 1 1 \n",
"HOUMADI Dhoirfia 1 1.333333 2 0 \n",
"LOUTOUFI Nachima 1 0.333333 0 1 \n",
"MALIDE El-Anzize 1 0.333333 0 1 \n",
"MONNE Kevin 1 1.000000 1 1 \n",
"MOUSSA Roibouanti 1 2.000000 2 2 \n",
"OUSSENI Hilma 1 0.666667 1 0 \n",
"SAANLI Natali 3 2.000000 2 2 \n",
"SAID AHAMADA Roukaya NaN 1.666667 2 1 \n",
"SANDA Issoufi 1 0.333333 0 1 \n",
"SOILIHI Soifia 1 0.666667 1 0 \n",
"SOUFIANI Laila 1 0.333333 0 1 \n",
"YOUSSOUF Sitirati 1 0.333333 0 1 \n",
"\n",
" Exercice 3 Comparaison ... Exercice 5 \\\n",
"ABDOU Farida 6.333333 1 ... 0.000000 \n",
"ABOU BACAR Djaha 4.000000 3 ... 0.666667 \n",
"AHAMADA Nabaouya 4.333333 1 ... 0.000000 \n",
"AHAMADI Faina 0.000000 0 ... 0.666667 \n",
"ALI Mardhuia 4.000000 3 ... 1.333333 \n",
"ALI SOULAIMANA Chamsia 6.333333 1 ... 0.666667 \n",
"ALSENE ALI MADI Stela 2.000000 NaN ... 2.666667 \n",
"ANDRIATAHIANA Hoby 3.000000 NaN ... 1.333333 \n",
"ANLI Emeline 1.000000 NaN ... 0.000000 \n",
"ATHOUMANE Naouidat 5.666667 2 ... 0.000000 \n",
"BOUDRA Nassifanya 6.000000 3 ... 1.333333 \n",
"CHANFI Nadhrati 0.000000 NaN ... 0.666667 \n",
"COMBO Moinécha 6.000000 0 ... 2.666667 \n",
"HALIDI Nisma 6.333333 1 ... 2.000000 \n",
"HAMZA Samianti 0.333333 1 ... 0.000000 \n",
"HOUMADI Mouslimati 2.333333 1 ... 2.000000 \n",
"HOUMADI Chaharazadi 5.000000 NaN ... 1.333333 \n",
"HOUMADI Nasmi 0.333333 1 ... 0.666667 \n",
"HOUMADI Dhoirfia 5.000000 NaN ... 0.666667 \n",
"LOUTOUFI Nachima 1.333333 1 ... 0.000000 \n",
"MALIDE El-Anzize 6.000000 0 ... 0.000000 \n",
"MONNE Kevin 2.666667 2 ... 4.000000 \n",
"MOUSSA Roibouanti 3.333333 1 ... 1.333333 \n",
"OUSSENI Hilma 4.000000 0 ... 0.666667 \n",
"SAANLI Natali 6.666667 2 ... 4.000000 \n",
"SAID AHAMADA Roukaya 0.000000 NaN ... 0.666667 \n",
"SANDA Issoufi 0.000000 NaN ... 0.666667 \n",
"SOILIHI Soifia 2.333333 1 ... 2.000000 \n",
"SOUFIANI Laila 0.000000 NaN ... 0.000000 \n",
"YOUSSOUF Sitirati 1.000000 NaN ... 0.666667 \n",
"\n",
" 1. Opérations 2. Équation 3. Probabilité \\\n",
"ABDOU Farida NaN NaN NaN \n",
"ABOU BACAR Djaha 1 NaN NaN \n",
"AHAMADA Nabaouya 0 0 0 \n",
"AHAMADI Faina 0 0 1 \n",
"ALI Mardhuia 1 0 1 \n",
"ALI SOULAIMANA Chamsia 1 0 0 \n",
"ALSENE ALI MADI Stela 1 1 2 \n",
"ANDRIATAHIANA Hoby 0 1 1 \n",
"ANLI Emeline NaN NaN 0 \n",
"ATHOUMANE Naouidat 0 0 0 \n",
"BOUDRA Nassifanya 1 0 1 \n",
"CHANFI Nadhrati 1 0 0 \n",
"COMBO Moinécha 2 2 NaN \n",
"HALIDI Nisma 1 0 2 \n",
"HAMZA Samianti 0 NaN NaN \n",
"HOUMADI Mouslimati 1 2 NaN \n",
"HOUMADI Chaharazadi 0 1 1 \n",
"HOUMADI Nasmi 0 0 1 \n",
"HOUMADI Dhoirfia 0 0 1 \n",
"LOUTOUFI Nachima 0 0 NaN \n",
"MALIDE El-Anzize 0 0 0 \n",
"MONNE Kevin 2 2 2 \n",
"MOUSSA Roibouanti 1 0 1 \n",
"OUSSENI Hilma 0 0 1 \n",
"SAANLI Natali 2 3 1 \n",
"SAID AHAMADA Roukaya 0 NaN 1 \n",
"SANDA Issoufi 1 0 0 \n",
"SOILIHI Soifia 2 0 1 \n",
"SOUFIANI Laila 0 0 0 \n",
"YOUSSOUF Sitirati 0 1 NaN \n",
"\n",
" Exercice 6 1. Tableur 2. Tableur 3. PGCD \\\n",
"ABDOU Farida 1.0 1 1 0 \n",
"ABOU BACAR Djaha 0.0 NaN NaN NaN \n",
"AHAMADA Nabaouya 4.5 3 1 3 \n",
"AHAMADI Faina 1.5 0 1 0 \n",
"ALI Mardhuia 2.5 0 0 2 \n",
"ALI SOULAIMANA Chamsia 3.5 3 NaN 3 \n",
"ALSENE ALI MADI Stela 0.0 NaN NaN NaN \n",
"ANDRIATAHIANA Hoby 2.5 2 NaN NaN \n",
"ANLI Emeline 1.5 NaN NaN NaN \n",
"ATHOUMANE Naouidat 1.5 NaN NaN 3 \n",
"BOUDRA Nassifanya 5.5 3 2 3 \n",
"CHANFI Nadhrati 0.5 NaN 0 0 \n",
"COMBO Moinécha 3.0 2 0 1 \n",
"HALIDI Nisma 4.5 3 0 3 \n",
"HAMZA Samianti 1.0 0 0 0 \n",
"HOUMADI Mouslimati 0.0 NaN NaN NaN \n",
"HOUMADI Chaharazadi 1.5 0 0 0 \n",
"HOUMADI Nasmi 4.5 3 NaN 3 \n",
"HOUMADI Dhoirfia 4.0 3 0 2 \n",
"LOUTOUFI Nachima 1.0 1 0 0 \n",
"MALIDE El-Anzize 1.0 NaN NaN NaN \n",
"MONNE Kevin 3.5 3 0 2 \n",
"MOUSSA Roibouanti 3.5 2 0 2 \n",
"OUSSENI Hilma 0.5 0 0 0 \n",
"SAANLI Natali 4.5 3 NaN 3 \n",
"SAID AHAMADA Roukaya 4.5 3 NaN 3 \n",
"SANDA Issoufi 1.5 1 0 2 \n",
"SOILIHI Soifia 2.0 NaN NaN 3 \n",
"SOUFIANI Laila 1.5 0 NaN 3 \n",
"YOUSSOUF Sitirati 1.0 NaN NaN 2 \n",
"\n",
" 4. Fraction Exercice 7 (QCM) \n",
"ABDOU Farida NaN 3 \n",
"ABOU BACAR Djaha NaN 4 \n",
"AHAMADA Nabaouya 2 2 \n",
"AHAMADI Faina 2 1 \n",
"ALI Mardhuia 3 2 \n",
"ALI SOULAIMANA Chamsia 1 3 \n",
"ALSENE ALI MADI Stela NaN 0 \n",
"ANDRIATAHIANA Hoby 3 3 \n",
"ANLI Emeline 3 3 \n",
"ATHOUMANE Naouidat 0 1 \n",
"BOUDRA Nassifanya 3 3 \n",
"CHANFI Nadhrati 1 3 \n",
"COMBO Moinécha 3 4 \n",
"HALIDI Nisma 3 4 \n",
"HAMZA Samianti 2 4 \n",
"HOUMADI Mouslimati NaN 5 \n",
"HOUMADI Chaharazadi 3 4 \n",
"HOUMADI Nasmi 3 3 \n",
"HOUMADI Dhoirfia 3 3 \n",
"LOUTOUFI Nachima 1 3 \n",
"MALIDE El-Anzize 2 2 \n",
"MONNE Kevin 2 3 \n",
"MOUSSA Roibouanti 3 4 \n",
"OUSSENI Hilma 1 2 \n",
"SAANLI Natali 3 2 \n",
"SAID AHAMADA Roukaya 3 4 \n",
"SANDA Issoufi 0 3 \n",
"SOILIHI Soifia 1 5 \n",
"SOUFIANI Laila 0 2 \n",
"YOUSSOUF Sitirati NaN 0 \n",
"\n",
"[30 rows x 28 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"notes\n",
"#barem"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Supression des notes inutiles "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/lafrite/.virtualenvs/enseignement/lib/python3.5/site-packages/pandas/core/ops.py:680: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n",
" result = getattr(x, name)(y)\n"
]
},
{
"ename": "TypeError",
"evalue": "invalid type comparison",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-9-5bb918f5a68f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mnotes\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnotes\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mnotes\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mds_name\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnotnull\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mnotes\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnotes\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mnotes\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mds_name\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m!=\u001b[0m \u001b[1;34m'abs'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;32m/home/lafrite/.virtualenvs/enseignement/lib/python3.5/site-packages/pandas/core/ops.py\u001b[0m in \u001b[0;36mwrapper\u001b[1;34m(self, other, axis)\u001b[0m\n\u001b[0;32m 724\u001b[0m \u001b[0mother\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mother\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 725\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 726\u001b[1;33m \u001b[0mres\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mna_op\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mother\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 727\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0misscalar\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mres\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 728\u001b[0m raise TypeError('Could not compare %s type with Series'\n",
"\u001b[1;32m/home/lafrite/.virtualenvs/enseignement/lib/python3.5/site-packages/pandas/core/ops.py\u001b[0m in \u001b[0;36mna_op\u001b[1;34m(x, y)\u001b[0m\n\u001b[0;32m 680\u001b[0m \u001b[0mresult\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 681\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mresult\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mNotImplemented\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 682\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"invalid type comparison\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 683\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mAttributeError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 684\u001b[0m \u001b[0mresult\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mop\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mTypeError\u001b[0m: invalid type comparison"
]
}
],
"source": [
"notes = notes[notes[ds_name].notnull()]\n",
"notes = notes[notes[ds_name] != 'abs']"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"notes = notes.astype(float)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Traitement des notes"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"Index(['BB_16_01_23', 'Présentation', 'Exercice 1', 'Réponse', 'Rédaction',\n",
" 'Exercice 2', '1. Developper', '2. Evaluer', 'Exercice 3',\n",
" 'Comparaison', 'Pythagore', 'Thalès', 'Exercice 4', '1. Lecture',\n",
" '2. Max', '3. Moyenne', '4. Etendue', '5. Médiane', 'Exercice 5',\n",
" '1. Opérations', '2. Équation', '3. Probabilité', 'Exercice 6',\n",
" '1. Tableur', '2. Tableur', '3. PGCD', '4. Fraction',\n",
" 'Exercice 7 (QCM)'],\n",
" dtype='object')"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"notes.T.index"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Liste des exercices (non noté en compétences)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"list_exo = [\"Exercice \"+str(i+1) for i in range(6)] + [\"Exercice 7 (QCM)\"]\n",
"list_exo"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Les autres types de notes (presentation, malus...) qui ne sont pas en compétences"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"autres_notes = [\"Présentation\"]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"notes[list_exo] = notes[list_exo].applymap(lambda x:round(x,2))\n",
"#notes[list_exo]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Les éléments avec notes et les éléments par compétences (sous_exo)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"['Réponse',\n",
" 'Rédaction',\n",
" '1. Developper',\n",
" '2. Evaluer',\n",
" 'Comparaison',\n",
" 'Pythagore',\n",
" 'Thalès',\n",
" '1. Lecture',\n",
" '2. Max',\n",
" '3. Moyenne',\n",
" '4. Etendue',\n",
" '5. Médiane',\n",
" '1. Opérations',\n",
" '2. Équation',\n",
" '3. Probabilité',\n",
" '1. Tableur',\n",
" '2. Tableur',\n",
" '3. PGCD',\n",
" '4. Fraction']"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"item_avec_note = list_exo + [ds_name] + autres_notes\n",
"sous_exo = [i for i in notes.T.index if i not in item_avec_note]\n",
"sous_exo"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def toRepVal(val):\n",
" if pd.isnull(val):\n",
" return \"\\\\NoRep\"\n",
" elif val == 0:\n",
" return \"\\\\RepZ\"\n",
" elif val == 1:\n",
" return \"\\\\RepU\"\n",
" elif val == 2:\n",
" return \"\\\\RepD\"\n",
" elif val == 3:\n",
" return \"\\\\RepT\"\n",
" else:\n",
" return val"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"notes[item_avec_note] = notes[item_avec_note].fillna(\".\")\n",
"#notes"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"eleves = notes.copy()\n",
"eleves[sous_exo] = notes[sous_exo].applymap(toRepVal)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"28"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(notes.T.index)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Preparation du fichier .tex"
]
},
{
"cell_type": "code",
"execution_count": 247,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#eleves"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"bilan = texenv.get_template(\"tpl_bilan.tex\")\n",
"with open(\"./bilan\"+classe+\".tex\",\"w\") as f:\n",
" f.write(bilan.render(eleves = eleves, barem = barem, ds_name = ds_name, latex_info = latex_info, nbr_questions = len(barem.T)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Un peu de statistiques"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"count 30.000000\n",
"mean 19.300000\n",
"std 5.518933\n",
"min 9.000000\n",
"25% 14.875000\n",
"50% 20.250000\n",
"75% 22.875000\n",
"max 31.000000\n",
"Name: BB_16_01_23, dtype: float64"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"notes[ds_name].describe()"
]
},
{
"cell_type": "code",
"execution_count": 130,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x7fbb35389278>"
]
},
"execution_count": 130,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nFQAAgGmJVgAAAKYlWgE
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbb353d1c50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#notes_seules = notes[ds_name]\n",
"ax = notes[ds_name].hist(bins = barem[ds_name][0], range=(0,barem[ds_name][0]), figsize = (16,7), )\n",
"ax.set_xlabel(\"Notes\")\n",
"ax.set_ylabel(\"Effectif\")\n",
"#notes_seules.hist()"
]
},
{
"cell_type": "code",
"execution_count": 246,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fbb2d7e3be0>"
]
},
"execution_count": 246,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\neWVFNQ6Hk0sXfuHa6Ys
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbb2d4c8208>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Normalisation des notes de chaque exo\n",
"notes_exo_norm = notes[list_exo] / barem[list_exo].values[0,:]\n",
"#notes_exo_norm\n",
"ax = notes_exo_norm.T.plot(color = \"gray\", legend = False, figsize = (16, 7))\n",
"d_norm = notes_exo_norm.describe()\n",
"d_norm.T[[\"min\", \"25%\", \"50%\", \"75%\", \"max\"]].plot(ax=ax, kind=\"area\", stacked = False, alpha=.1)"
]
},
{
"cell_type": "code",
"execution_count": 180,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nbAMeBvYCT2Tmqa0GktR
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbb2e77ceb8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax = notes[list_exo].hist(figsize = (16,8))"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Réponse</th>\n",
" <th>Rédaction</th>\n",
" <th>1. Developper</th>\n",
" <th>2. Evaluer</th>\n",
" <th>Comparaison</th>\n",
" <th>Pythagore</th>\n",
" <th>Thalès</th>\n",
" <th>1. Lecture</th>\n",
" <th>2. Max</th>\n",
" <th>3. Moyenne</th>\n",
" <th>4. Etendue</th>\n",
" <th>5. Médiane</th>\n",
" <th>1. Opérations</th>\n",
" <th>2. Équation</th>\n",
" <th>3. Probabilité</th>\n",
" <th>1. Tableur</th>\n",
" <th>2. Tableur</th>\n",
" <th>3. PGCD</th>\n",
" <th>4. Fraction</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>29.000000</td>\n",
" <td>29.000000</td>\n",
" <td>30.000000</td>\n",
" <td>30.000000</td>\n",
" <td>20.000000</td>\n",
" <td>21.000000</td>\n",
" <td>19.000000</td>\n",
" <td>30.000000</td>\n",
" <td>29.000000</td>\n",
" <td>29.000000</td>\n",
" <td>30.000000</td>\n",
" <td>30.000000</td>\n",
" <td>28.000000</td>\n",
" <td>25.00000</td>\n",
" <td>23.000000</td>\n",
" <td>21.000000</td>\n",
" <td>16.00000</td>\n",
" <td>24.000000</td>\n",
" <td>25.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>1.896552</td>\n",
" <td>1.103448</td>\n",
" <td>1.166667</td>\n",
" <td>0.700000</td>\n",
" <td>1.250000</td>\n",
" <td>2.571429</td>\n",
" <td>1.736842</td>\n",
" <td>2.900000</td>\n",
" <td>2.862069</td>\n",
" <td>1.551724</td>\n",
" <td>1.633333</td>\n",
" <td>1.566667</td>\n",
" <td>0.642857</td>\n",
" <td>0.52000</td>\n",
" <td>0.782609</td>\n",
" <td>1.714286</td>\n",
" <td>0.31250</td>\n",
" <td>1.791667</td>\n",
" <td>2.040000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.113066</td>\n",
" <td>0.409253</td>\n",
" <td>0.912871</td>\n",
" <td>0.595963</td>\n",
" <td>0.966546</td>\n",
" <td>0.676123</td>\n",
" <td>1.194529</td>\n",
" <td>0.547723</td>\n",
" <td>0.580895</td>\n",
" <td>1.241721</td>\n",
" <td>1.217214</td>\n",
" <td>0.897634</td>\n",
" <td>0.731021</td>\n",
" <td>0.87178</td>\n",
" <td>0.671262</td>\n",
" <td>1.309307</td>\n",
" <td>0.60208</td>\n",
" <td>1.284664</td>\n",
" <td>1.098484</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.00000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.00000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.250000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>2.000000</td>\n",
" <td>0.500000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.250000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.00000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.00000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>2.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>3.000000</td>\n",
" <td>2.000000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>1.000000</td>\n",
" <td>2.000000</td>\n",
" <td>2.000000</td>\n",
" <td>0.500000</td>\n",
" <td>0.00000</td>\n",
" <td>1.000000</td>\n",
" <td>2.000000</td>\n",
" <td>0.00000</td>\n",
" <td>2.000000</td>\n",
" <td>2.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>3.000000</td>\n",
" <td>1.000000</td>\n",
" <td>2.000000</td>\n",
" <td>1.000000</td>\n",
" <td>2.000000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>2.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.00000</td>\n",
" <td>1.000000</td>\n",
" <td>3.000000</td>\n",
" <td>0.25000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>2.000000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" <td>2.000000</td>\n",
" <td>3.00000</td>\n",
" <td>2.000000</td>\n",
" <td>3.000000</td>\n",
" <td>2.00000</td>\n",
" <td>3.000000</td>\n",
" <td>3.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Réponse Rédaction 1. Developper 2. Evaluer Comparaison \\\n",
"count 29.000000 29.000000 30.000000 30.000000 20.000000 \n",
"mean 1.896552 1.103448 1.166667 0.700000 1.250000 \n",
"std 1.113066 0.409253 0.912871 0.595963 0.966546 \n",
"min 0.000000 1.000000 0.000000 0.000000 0.000000 \n",
"25% 1.000000 1.000000 0.250000 0.000000 1.000000 \n",
"50% 2.000000 1.000000 1.000000 1.000000 1.000000 \n",
"75% 3.000000 1.000000 2.000000 1.000000 2.000000 \n",
"max 3.000000 3.000000 3.000000 2.000000 3.000000 \n",
"\n",
" Pythagore Thalès 1. Lecture 2. Max 3. Moyenne 4. Etendue \\\n",
"count 21.000000 19.000000 30.000000 29.000000 29.000000 30.000000 \n",
"mean 2.571429 1.736842 2.900000 2.862069 1.551724 1.633333 \n",
"std 0.676123 1.194529 0.547723 0.580895 1.241721 1.217214 \n",
"min 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"25% 2.000000 0.500000 3.000000 3.000000 0.000000 0.250000 \n",
"50% 3.000000 2.000000 3.000000 3.000000 1.000000 2.000000 \n",
"75% 3.000000 3.000000 3.000000 3.000000 3.000000 3.000000 \n",
"max 3.000000 3.000000 3.000000 3.000000 3.000000 3.000000 \n",
"\n",
" 5. Médiane 1. Opérations 2. Équation 3. Probabilité 1. Tableur \\\n",
"count 30.000000 28.000000 25.00000 23.000000 21.000000 \n",
"mean 1.566667 0.642857 0.52000 0.782609 1.714286 \n",
"std 0.897634 0.731021 0.87178 0.671262 1.309307 \n",
"min 0.000000 0.000000 0.00000 0.000000 0.000000 \n",
"25% 1.000000 0.000000 0.00000 0.000000 0.000000 \n",
"50% 2.000000 0.500000 0.00000 1.000000 2.000000 \n",
"75% 2.000000 1.000000 1.00000 1.000000 3.000000 \n",
"max 3.000000 2.000000 3.00000 2.000000 3.000000 \n",
"\n",
" 2. Tableur 3. PGCD 4. Fraction \n",
"count 16.00000 24.000000 25.000000 \n",
"mean 0.31250 1.791667 2.040000 \n",
"std 0.60208 1.284664 1.098484 \n",
"min 0.00000 0.000000 0.000000 \n",
"25% 0.00000 0.000000 1.000000 \n",
"50% 0.00000 2.000000 2.000000 \n",
"75% 0.25000 3.000000 3.000000 \n",
"max 2.00000 3.000000 3.000000 "
]
},
"execution_count": 105,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"notes_questions = notes[sous_exo]\n",
"notes_analysis = notes_questions.describe()\n",
"notes_analysis"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Réponse</th>\n",
" <th>Rédaction</th>\n",
" <th>1. Developper</th>\n",
" <th>2. Evaluer</th>\n",
" <th>Comparaison</th>\n",
" <th>Pythagore</th>\n",
" <th>Thalès</th>\n",
" <th>1. Lecture</th>\n",
" <th>2. Max</th>\n",
" <th>3. Moyenne</th>\n",
" <th>4. Etendue</th>\n",
" <th>5. Médiane</th>\n",
" <th>1. Opérations</th>\n",
" <th>2. Équation</th>\n",
" <th>3. Probabilité</th>\n",
" <th>1. Tableur</th>\n",
" <th>2. Tableur</th>\n",
" <th>3. PGCD</th>\n",
" <th>4. Fraction</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>29</td>\n",
" <td>29</td>\n",
" <td>30</td>\n",
" <td>30</td>\n",
" <td>20</td>\n",
" <td>21</td>\n",
" <td>19</td>\n",
" <td>30</td>\n",
" <td>29</td>\n",
" <td>29</td>\n",
" <td>30</td>\n",
" <td>30</td>\n",
" <td>28</td>\n",
" <td>25</td>\n",
" <td>23</td>\n",
" <td>21</td>\n",
" <td>16</td>\n",
" <td>24</td>\n",
" <td>25</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Réponse Rédaction 1. Developper 2. Evaluer Comparaison Pythagore \\\n",
"count 29 29 30 30 20 21 \n",
"\n",
" Thalès 1. Lecture 2. Max 3. Moyenne 4. Etendue 5. Médiane \\\n",
"count 19 30 29 29 30 30 \n",
"\n",
" 1. Opérations 2. Équation 3. Probabilité 1. Tableur 2. Tableur \\\n",
"count 28 25 23 21 16 \n",
"\n",
" 3. PGCD 4. Fraction \n",
"count 24 25 "
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# J'aimerai récupérer le nom des questions qui ont été le moins répondus\n",
"notes_analysis[:1]"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Bilan à remplir"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"bilan = texenv.get_template(\"tpl_bilan.tex\")\n",
"with open(\"./fill_bilan.tex\",\"w\") as f:\n",
" f.write(bilan.render(eleves = [(\"Nom\",, barem = barem, ds_name = ds_name, latex_info = latex_info, nbr_questions = len(barem.T)))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}