2018-03-28 12:30:27 +00:00
|
|
|
{
|
|
|
|
"cells": [
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"# Analyse du ds 5 pour les 302"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 1,
|
|
|
|
"metadata": {
|
|
|
|
"collapsed": true
|
|
|
|
},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"import sqlite3\n",
|
|
|
|
"import pandas as pd\n",
|
|
|
|
"import numpy as np\n",
|
|
|
|
"from math import ceil\n",
|
|
|
|
"import seaborn as sns\n",
|
|
|
|
"import matplotlib.pyplot as plt\n",
|
|
|
|
"%matplotlib inline\n",
|
|
|
|
"from pprint import pprint"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 2,
|
|
|
|
"metadata": {
|
|
|
|
"collapsed": true
|
|
|
|
},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"from repytex.tools.evaluation import Evaluation"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 3,
|
|
|
|
"metadata": {
|
|
|
|
"collapsed": true
|
|
|
|
},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"db = \"../recopytex.db\"\n",
|
|
|
|
"conn = sqlite3.connect(db)\n",
|
|
|
|
"c = conn.cursor()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 4,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"name": "stdout",
|
|
|
|
"output_type": "stream",
|
|
|
|
"text": [
|
|
|
|
"La tribu des 302 (id = 1)\n"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"tribe_name = \"302\"\n",
|
|
|
|
"tribe_id = c.execute(\"SELECT id from tribe WHERE tribe.name == ?\", (tribe_name,)).fetchone()[0]\n",
|
|
|
|
"print(f\"La tribu des {tribe_name} (id = {tribe_id})\")"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 5,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"name": "stdout",
|
|
|
|
"output_type": "stream",
|
|
|
|
"text": [
|
|
|
|
"Liste des évaluations:\n",
|
|
|
|
" - DS1 mise en jambe (id = 1)\n",
|
|
|
|
" - DS2 (id = 5)\n",
|
|
|
|
" - Pyramide de pièces (id = 8)\n",
|
|
|
|
" - DS3 (id = 10)\n",
|
|
|
|
" - DM noel (id = 14)\n",
|
|
|
|
" - DS4 (id = 16)\n",
|
|
|
|
" - DNB blanc1 (id = 21)\n",
|
|
|
|
" - DS5 (id = 29)\n",
|
|
|
|
" - Téléphérique (id = 30)\n"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"evals = c.execute(\"SELECT id, name from eval WHERE eval.tribe_id == ?\", (tribe_id,))\n",
|
|
|
|
"print(\"Liste des évaluations:\")\n",
|
|
|
|
"for e in evals:\n",
|
|
|
|
" print(f\" - {e[1]} (id = {e[0]})\")"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 81,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"<eval DS5 for 302>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 81,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"ev_id = 29\n",
|
|
|
|
"ev = Evaluation.from_sqlite(ev_id, conn)\n",
|
|
|
|
"ev"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"## Il semble qu'il y est des doublons"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 82,
|
|
|
|
"metadata": {
|
|
|
|
"collapsed": true
|
|
|
|
},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"q_sc_df = ev.sc_df.set_index(\"id\")"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 83,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"Index(['question_id', 'student_id', 'value'], dtype='object')"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 83,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"q_sc_df.columns"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 84,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"question_id 2285\n",
|
|
|
|
"student_id 2285\n",
|
|
|
|
"value 2285\n",
|
|
|
|
"dtype: int64"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 84,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"q_sc_df.count()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 85,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/html": [
|
|
|
|
"<div>\n",
|
|
|
|
"<style>\n",
|
|
|
|
" .dataframe thead tr:only-child th {\n",
|
|
|
|
" text-align: right;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe thead th {\n",
|
|
|
|
" text-align: left;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe tbody tr th {\n",
|
|
|
|
" vertical-align: top;\n",
|
|
|
|
" }\n",
|
|
|
|
"</style>\n",
|
|
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
|
|
" <thead>\n",
|
|
|
|
" <tr style=\"text-align: right;\">\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th>question_id</th>\n",
|
|
|
|
" <th>student_id</th>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>id</th>\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" </thead>\n",
|
|
|
|
" <tbody>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>7917</th>\n",
|
|
|
|
" <td>302</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>7918</th>\n",
|
|
|
|
" <td>303</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>7919</th>\n",
|
|
|
|
" <td>304</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>7920</th>\n",
|
|
|
|
" <td>302</td>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>7921</th>\n",
|
|
|
|
" <td>303</td>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" </tbody>\n",
|
|
|
|
"</table>\n",
|
|
|
|
"</div>"
|
|
|
|
],
|
|
|
|
"text/plain": [
|
|
|
|
" question_id student_id\n",
|
|
|
|
"id \n",
|
|
|
|
"7917 302 1\n",
|
|
|
|
"7918 303 1\n",
|
|
|
|
"7919 304 1\n",
|
|
|
|
"7920 302 2\n",
|
|
|
|
"7921 303 2"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 85,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"qst_filtered = q_sc_df[q_sc_df.duplicated(['question_id', 'student_id'], keep='first')]\n",
|
|
|
|
"qst_filtered[['question_id', 'student_id']].head()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 86,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/html": [
|
|
|
|
"<div>\n",
|
|
|
|
"<style>\n",
|
|
|
|
" .dataframe thead tr:only-child th {\n",
|
|
|
|
" text-align: right;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe thead th {\n",
|
|
|
|
" text-align: left;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe tbody tr th {\n",
|
|
|
|
" vertical-align: top;\n",
|
|
|
|
" }\n",
|
|
|
|
"</style>\n",
|
|
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
|
|
" <thead>\n",
|
|
|
|
" <tr style=\"text-align: right;\">\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th>question_id</th>\n",
|
|
|
|
" <th>student_id</th>\n",
|
|
|
|
" <th>value</th>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>id</th>\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" </thead>\n",
|
|
|
|
" <tbody>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>10616</th>\n",
|
|
|
|
" <td>327</td>\n",
|
|
|
|
" <td>26</td>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" </tbody>\n",
|
|
|
|
"</table>\n",
|
|
|
|
"</div>"
|
|
|
|
],
|
|
|
|
"text/plain": [
|
|
|
|
" question_id student_id value\n",
|
|
|
|
"id \n",
|
|
|
|
"10616 327 26 2"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 86,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"qst_filtered.tail(1)"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 87,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"question_id 1600\n",
|
|
|
|
"student_id 1600\n",
|
|
|
|
"value 1600\n",
|
|
|
|
"dtype: int64"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 87,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"q_sc_df[q_sc_df.duplicated(['question_id', 'student_id', 'value'], keep='last')].count()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 88,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"26"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 88,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"len(q_sc_df[\"question_id\"].unique())"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 89,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"25"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 89,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"len(q_sc_df[\"student_id\"].unique())"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 90,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"650"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 90,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"26 * 25"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"Donc j'ai des notes qui sont differentes pour un même élève sur une même questions...\n",
|
|
|
|
"\n",
|
|
|
|
"Je veux maintenant trouver ces notes."
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 91,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"student_id question_id\n",
|
|
|
|
"10 310 {0, 1}\n",
|
|
|
|
"12 309 {1, 2}\n",
|
|
|
|
"13 311 {2, 3}\n",
|
|
|
|
"14 303 {2, 3}\n",
|
|
|
|
"16 313 {2, 3}\n",
|
|
|
|
"Name: value, dtype: object"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 91,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"gped_sc = q_sc_df.groupby([\"student_id\", \"question_id\"])['value'].apply(set)\n",
|
|
|
|
"gped_sc[gped_sc.apply(lambda x: len(x) != 1)].head()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
2018-03-28 17:31:22 +00:00
|
|
|
"On garde la dernière note enregistrée"
|
2018-03-28 12:30:27 +00:00
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 92,
|
|
|
|
"metadata": {
|
|
|
|
"collapsed": true
|
|
|
|
},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"def keep_last(df):\n",
|
|
|
|
" return df.sort_index().tail(1)"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 93,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/html": [
|
|
|
|
"<div>\n",
|
|
|
|
"<style>\n",
|
|
|
|
" .dataframe thead tr:only-child th {\n",
|
|
|
|
" text-align: right;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe thead th {\n",
|
|
|
|
" text-align: left;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe tbody tr th {\n",
|
|
|
|
" vertical-align: top;\n",
|
|
|
|
" }\n",
|
|
|
|
"</style>\n",
|
|
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
|
|
" <thead>\n",
|
|
|
|
" <tr style=\"text-align: right;\">\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th>student_id</th>\n",
|
|
|
|
" <th>question_id</th>\n",
|
|
|
|
" <th>value</th>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>id</th>\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" </thead>\n",
|
|
|
|
" <tbody>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>8079</th>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>302</td>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>8080</th>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>303</td>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>8081</th>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>304</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>8484</th>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>305</td>\n",
|
|
|
|
" <td>3</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>8485</th>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>306</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" </tbody>\n",
|
|
|
|
"</table>\n",
|
|
|
|
"</div>"
|
|
|
|
],
|
|
|
|
"text/plain": [
|
|
|
|
" student_id question_id value\n",
|
|
|
|
"id \n",
|
|
|
|
"8079 1 302 2\n",
|
|
|
|
"8080 1 303 2\n",
|
|
|
|
"8081 1 304 1\n",
|
|
|
|
"8484 1 305 3\n",
|
|
|
|
"8485 1 306 1"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 93,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"gped_sc = q_sc_df.groupby([\"student_id\", \"question_id\"])['value'].apply(keep_last)\n",
|
|
|
|
"q_sc_df = gped_sc.reset_index().set_index(\"id\")\n",
|
|
|
|
"q_sc_df.head()"
|
|
|
|
]
|
|
|
|
},
|
2018-03-28 17:31:22 +00:00
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 147,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"q_sc_df['fullname_st'] = q_sc_df[['name_st', 'surname_st']].apply(lambda x: \" \".join(x), axis=1)"
|
|
|
|
]
|
|
|
|
},
|
2018-03-28 12:30:27 +00:00
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"## Recalcul des notes et compétences"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"Jointure avec la dataframe sur les élèves"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 94,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"Index(['id', 'name_st', 'surname_st', 'mail_st', 'commment_st', 'tribe_id'], dtype='object')"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 94,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"st_df = ev.s_df\n",
|
|
|
|
"st_df.columns = st_df.columns.map(lambda x: f\"{x}_st\" if 'id' not in x else x)\n",
|
|
|
|
"st_df.columns"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 95,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/html": [
|
|
|
|
"<div>\n",
|
|
|
|
"<style>\n",
|
|
|
|
" .dataframe thead tr:only-child th {\n",
|
|
|
|
" text-align: right;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe thead th {\n",
|
|
|
|
" text-align: left;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe tbody tr th {\n",
|
|
|
|
" vertical-align: top;\n",
|
|
|
|
" }\n",
|
|
|
|
"</style>\n",
|
|
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
|
|
" <thead>\n",
|
|
|
|
" <tr style=\"text-align: right;\">\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th>student_id</th>\n",
|
|
|
|
" <th>question_id</th>\n",
|
|
|
|
" <th>value</th>\n",
|
|
|
|
" <th>id</th>\n",
|
|
|
|
" <th>name_st</th>\n",
|
|
|
|
" <th>surname_st</th>\n",
|
|
|
|
" <th>mail_st</th>\n",
|
|
|
|
" <th>commment_st</th>\n",
|
|
|
|
" <th>tribe_id</th>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" </thead>\n",
|
|
|
|
" <tbody>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>0</th>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>302</td>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>ABDALLAH ALLAOUI</td>\n",
|
|
|
|
" <td>Taiassima</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>1</th>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>303</td>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>ABDALLAH ALLAOUI</td>\n",
|
|
|
|
" <td>Taiassima</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>2</th>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>304</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>ABDALLAH ALLAOUI</td>\n",
|
|
|
|
" <td>Taiassima</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>3</th>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>305</td>\n",
|
|
|
|
" <td>3</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>ABDALLAH ALLAOUI</td>\n",
|
|
|
|
" <td>Taiassima</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>4</th>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>306</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>ABDALLAH ALLAOUI</td>\n",
|
|
|
|
" <td>Taiassima</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" </tbody>\n",
|
|
|
|
"</table>\n",
|
|
|
|
"</div>"
|
|
|
|
],
|
|
|
|
"text/plain": [
|
|
|
|
" student_id question_id value id name_st surname_st mail_st \\\n",
|
|
|
|
"0 1 302 2 1 ABDALLAH ALLAOUI Taiassima \n",
|
|
|
|
"1 1 303 2 1 ABDALLAH ALLAOUI Taiassima \n",
|
|
|
|
"2 1 304 1 1 ABDALLAH ALLAOUI Taiassima \n",
|
|
|
|
"3 1 305 3 1 ABDALLAH ALLAOUI Taiassima \n",
|
|
|
|
"4 1 306 1 1 ABDALLAH ALLAOUI Taiassima \n",
|
|
|
|
"\n",
|
|
|
|
" commment_st tribe_id \n",
|
|
|
|
"0 None 1 \n",
|
|
|
|
"1 None 1 \n",
|
|
|
|
"2 None 1 \n",
|
|
|
|
"3 None 1 \n",
|
|
|
|
"4 None 1 "
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 95,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"q_sc_df = q_sc_df.merge(st_df, left_on=\"student_id\", right_on=\"id\", suffixes=(\"\", \"_st\"))\n",
|
|
|
|
"q_sc_df.head()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"Jointure avec la dataframe sur les questions"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 96,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"Index(['id', 'name_q', 'score_rate_q', 'is_leveled_q', 'exercise_id',\n",
|
|
|
|
" 'competence_q', 'domain_q', 'comment_q'],\n",
|
|
|
|
" dtype='object')"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 96,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"q_df = ev.q_df\n",
|
|
|
|
"q_df.columns = q_df.columns.map(lambda x: f\"{x}_q\" if 'id' not in x else x)\n",
|
|
|
|
"q_df.columns"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 97,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/html": [
|
|
|
|
"<div>\n",
|
|
|
|
"<style>\n",
|
|
|
|
" .dataframe thead tr:only-child th {\n",
|
|
|
|
" text-align: right;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe thead th {\n",
|
|
|
|
" text-align: left;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe tbody tr th {\n",
|
|
|
|
" vertical-align: top;\n",
|
|
|
|
" }\n",
|
|
|
|
"</style>\n",
|
|
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
|
|
" <thead>\n",
|
|
|
|
" <tr style=\"text-align: right;\">\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th>student_id</th>\n",
|
|
|
|
" <th>question_id</th>\n",
|
|
|
|
" <th>value</th>\n",
|
|
|
|
" <th>id</th>\n",
|
|
|
|
" <th>name_st</th>\n",
|
|
|
|
" <th>surname_st</th>\n",
|
|
|
|
" <th>mail_st</th>\n",
|
|
|
|
" <th>commment_st</th>\n",
|
|
|
|
" <th>tribe_id</th>\n",
|
|
|
|
" <th>id_q</th>\n",
|
|
|
|
" <th>name_q</th>\n",
|
|
|
|
" <th>score_rate_q</th>\n",
|
|
|
|
" <th>is_leveled_q</th>\n",
|
|
|
|
" <th>exercise_id</th>\n",
|
|
|
|
" <th>competence_q</th>\n",
|
|
|
|
" <th>domain_q</th>\n",
|
|
|
|
" <th>comment_q</th>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" </thead>\n",
|
|
|
|
" <tbody>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>645</th>\n",
|
|
|
|
" <td>23</td>\n",
|
|
|
|
" <td>331</td>\n",
|
|
|
|
" <td>3</td>\n",
|
|
|
|
" <td>23</td>\n",
|
|
|
|
" <td>MOUSSRI</td>\n",
|
|
|
|
" <td>Bakari</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>331</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>10</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>102</td>\n",
|
|
|
|
" <td>Com</td>\n",
|
|
|
|
" <td>Présentation</td>\n",
|
|
|
|
" <td>Présentation de la copie</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>646</th>\n",
|
|
|
|
" <td>24</td>\n",
|
|
|
|
" <td>331</td>\n",
|
|
|
|
" <td>3</td>\n",
|
|
|
|
" <td>24</td>\n",
|
|
|
|
" <td>SAÏD</td>\n",
|
|
|
|
" <td>Fatoumia</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>331</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>10</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>102</td>\n",
|
|
|
|
" <td>Com</td>\n",
|
|
|
|
" <td>Présentation</td>\n",
|
|
|
|
" <td>Présentation de la copie</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>647</th>\n",
|
|
|
|
" <td>25</td>\n",
|
|
|
|
" <td>331</td>\n",
|
|
|
|
" <td>3</td>\n",
|
|
|
|
" <td>25</td>\n",
|
|
|
|
" <td>SAKOTRA</td>\n",
|
|
|
|
" <td>Claudiana</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>331</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>10</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>102</td>\n",
|
|
|
|
" <td>Com</td>\n",
|
|
|
|
" <td>Présentation</td>\n",
|
|
|
|
" <td>Présentation de la copie</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>648</th>\n",
|
|
|
|
" <td>26</td>\n",
|
|
|
|
" <td>331</td>\n",
|
|
|
|
" <td>3</td>\n",
|
|
|
|
" <td>26</td>\n",
|
|
|
|
" <td>TOUFAIL</td>\n",
|
|
|
|
" <td>Salahou</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>331</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>10</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>102</td>\n",
|
|
|
|
" <td>Com</td>\n",
|
|
|
|
" <td>Présentation</td>\n",
|
|
|
|
" <td>Présentation de la copie</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>649</th>\n",
|
|
|
|
" <td>76</td>\n",
|
|
|
|
" <td>331</td>\n",
|
|
|
|
" <td>3</td>\n",
|
|
|
|
" <td>76</td>\n",
|
|
|
|
" <td>Ibrahim</td>\n",
|
|
|
|
" <td>Chaharzade</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>331</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>10</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>102</td>\n",
|
|
|
|
" <td>Com</td>\n",
|
|
|
|
" <td>Présentation</td>\n",
|
|
|
|
" <td>Présentation de la copie</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" </tbody>\n",
|
|
|
|
"</table>\n",
|
|
|
|
"</div>"
|
|
|
|
],
|
|
|
|
"text/plain": [
|
|
|
|
" student_id question_id value id name_st surname_st mail_st \\\n",
|
|
|
|
"645 23 331 3 23 MOUSSRI Bakari \n",
|
|
|
|
"646 24 331 3 24 SAÏD Fatoumia \n",
|
|
|
|
"647 25 331 3 25 SAKOTRA Claudiana \n",
|
|
|
|
"648 26 331 3 26 TOUFAIL Salahou \n",
|
|
|
|
"649 76 331 3 76 Ibrahim Chaharzade \n",
|
|
|
|
"\n",
|
|
|
|
" commment_st tribe_id id_q name_q score_rate_q is_leveled_q \\\n",
|
|
|
|
"645 None 1 331 10 1 \n",
|
|
|
|
"646 None 1 331 10 1 \n",
|
|
|
|
"647 None 1 331 10 1 \n",
|
|
|
|
"648 None 1 331 10 1 \n",
|
|
|
|
"649 None 1 331 10 1 \n",
|
|
|
|
"\n",
|
|
|
|
" exercise_id competence_q domain_q comment_q \n",
|
|
|
|
"645 102 Com Présentation Présentation de la copie \n",
|
|
|
|
"646 102 Com Présentation Présentation de la copie \n",
|
|
|
|
"647 102 Com Présentation Présentation de la copie \n",
|
|
|
|
"648 102 Com Présentation Présentation de la copie \n",
|
|
|
|
"649 102 Com Présentation Présentation de la copie "
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 97,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"q_sc_df = q_sc_df.merge(q_df, left_on=\"question_id\", right_on=\"id\", suffixes=(\"\", \"_q\"))\n",
|
|
|
|
"q_sc_df.tail()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"Calcul des notes"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 98,
|
|
|
|
"metadata": {
|
|
|
|
"collapsed": true
|
|
|
|
},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"q_sc_df[\"value_no_dot\"] = q_sc_df[\"value\"].replace('.', 0)"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 99,
|
|
|
|
"metadata": {
|
|
|
|
"collapsed": true
|
|
|
|
},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"q_sc_df[\"mark\"] = q_sc_df[\"score_rate_q\"] * q_sc_df[\"value_no_dot\"] / 3"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 100,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"Index(['student_id', 'question_id', 'value', 'id', 'name_st', 'surname_st',\n",
|
|
|
|
" 'mail_st', 'commment_st', 'tribe_id', 'id_q', 'name_q', 'score_rate_q',\n",
|
|
|
|
" 'is_leveled_q', 'exercise_id', 'competence_q', 'domain_q', 'comment_q',\n",
|
|
|
|
" 'value_no_dot', 'mark'],\n",
|
|
|
|
" dtype='object')"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 100,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"q_sc_df.columns"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 101,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/html": [
|
|
|
|
"<div>\n",
|
|
|
|
"<style>\n",
|
|
|
|
" .dataframe thead tr:only-child th {\n",
|
|
|
|
" text-align: right;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe thead th {\n",
|
|
|
|
" text-align: left;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe tbody tr th {\n",
|
|
|
|
" vertical-align: top;\n",
|
|
|
|
" }\n",
|
|
|
|
"</style>\n",
|
|
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
|
|
" <thead>\n",
|
|
|
|
" <tr style=\"text-align: right;\">\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th>score_rate_q</th>\n",
|
|
|
|
" <th>mark</th>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>student_id</th>\n",
|
|
|
|
" <th>exercise_id</th>\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" </thead>\n",
|
|
|
|
" <tbody>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th rowspan=\"7\" valign=\"top\">1</th>\n",
|
|
|
|
" <th>95</th>\n",
|
|
|
|
" <td>12</td>\n",
|
|
|
|
" <td>6.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>96</th>\n",
|
|
|
|
" <td>10</td>\n",
|
|
|
|
" <td>5.333333</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>97</th>\n",
|
|
|
|
" <td>17</td>\n",
|
|
|
|
" <td>4.000000</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>98</th>\n",
|
|
|
|
" <td>18</td>\n",
|
|
|
|
" <td>4.000000</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>99</th>\n",
|
|
|
|
" <td>18</td>\n",
|
|
|
|
" <td>7.000000</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>100</th>\n",
|
|
|
|
" <td>15</td>\n",
|
|
|
|
" <td>1.000000</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>102</th>\n",
|
|
|
|
" <td>10</td>\n",
|
|
|
|
" <td>10.000000</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th rowspan=\"3\" valign=\"top\">2</th>\n",
|
|
|
|
" <th>95</th>\n",
|
|
|
|
" <td>12</td>\n",
|
|
|
|
" <td>6.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>96</th>\n",
|
|
|
|
" <td>10</td>\n",
|
|
|
|
" <td>4.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>97</th>\n",
|
|
|
|
" <td>17</td>\n",
|
|
|
|
" <td>9.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" </tbody>\n",
|
|
|
|
"</table>\n",
|
|
|
|
"</div>"
|
|
|
|
],
|
|
|
|
"text/plain": [
|
|
|
|
" score_rate_q mark\n",
|
|
|
|
"student_id exercise_id \n",
|
|
|
|
"1 95 12 6.666667\n",
|
|
|
|
" 96 10 5.333333\n",
|
|
|
|
" 97 17 4.000000\n",
|
|
|
|
" 98 18 4.000000\n",
|
|
|
|
" 99 18 7.000000\n",
|
|
|
|
" 100 15 1.000000\n",
|
|
|
|
" 102 10 10.000000\n",
|
|
|
|
"2 95 12 6.666667\n",
|
|
|
|
" 96 10 4.666667\n",
|
|
|
|
" 97 17 9.666667"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 101,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"q_sc_df.groupby(['student_id', 'exercise_id'])[[\"score_rate_q\", 'mark']].sum().head(10)"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"Voila... j'ai les notes..."
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2018-03-28 17:31:22 +00:00
|
|
|
"execution_count": 179,
|
2018-03-28 12:30:27 +00:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/html": [
|
|
|
|
"<div>\n",
|
|
|
|
"<style>\n",
|
|
|
|
" .dataframe thead tr:only-child th {\n",
|
|
|
|
" text-align: right;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe thead th {\n",
|
|
|
|
" text-align: left;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe tbody tr th {\n",
|
|
|
|
" vertical-align: top;\n",
|
|
|
|
" }\n",
|
|
|
|
"</style>\n",
|
|
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
|
|
" <thead>\n",
|
|
|
|
" <tr style=\"text-align: right;\">\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th>score_rate_q</th>\n",
|
|
|
|
" <th>mark</th>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>fullname_st</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <th></th>\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" </thead>\n",
|
|
|
|
" <tbody>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>ABDALLAH ALLAOUI Taiassima</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>38.000000</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>ADANI Ismou</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>60.333333</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>AHAMADI Asbahati</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>43.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>AHAMADI OUSSENI Ansufiddine</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>25.000000</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>AHAMED Fayadhi</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>31.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>AHMED SAID Hadaïta</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>62.000000</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>ALI MADI Anissa</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>77.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>ALI Raydel</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>62.333333</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>ATTOUMANE ALI Fatima</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>42.000000</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>BACHIROU Elzame</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>21.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>BINALI Zalida</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>63.000000</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>BOINA Abdillah Mze Limassi</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>69.333333</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>BOUDRA Zaankidine</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>35.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>BOURA Kayssoiria</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>44.000000</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>HALADI Asna</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>68.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>HALIDI Soibrata</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>37.333333</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>HAMEDALY Doulkifly</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>34.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>IBRAHIM Nassur</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>56.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>Ibrahim Chaharzade</th>\n",
|
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>50.333333</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>MOHAMED Nadia</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>51.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>MOUHOUDHOIRE Izak</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>36.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>MOUSSRI Bakari</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>24.000000</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>SAKOTRA Claudiana</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <td>52.666667</td>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>SAÏD Fatoumia</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <td>58.333333</td>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>TOUFAIL Salahou</th>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <td>100</td>\n",
|
|
|
|
" <td>56.000000</td>\n",
|
|
|
|
" </tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" </tbody>\n",
|
|
|
|
"</table>\n",
|
|
|
|
"</div>"
|
|
|
|
],
|
|
|
|
"text/plain": [
|
|
|
|
" score_rate_q mark\n",
|
|
|
|
"fullname_st \n",
|
|
|
|
"ABDALLAH ALLAOUI Taiassima 100 38.000000\n",
|
|
|
|
"ADANI Ismou 100 60.333333\n",
|
|
|
|
"AHAMADI Asbahati 100 43.666667\n",
|
|
|
|
"AHAMADI OUSSENI Ansufiddine 100 25.000000\n",
|
|
|
|
"AHAMED Fayadhi 100 31.666667\n",
|
|
|
|
"AHMED SAID Hadaïta 100 62.000000\n",
|
|
|
|
"ALI MADI Anissa 100 77.666667\n",
|
|
|
|
"ALI Raydel 100 62.333333\n",
|
|
|
|
"ATTOUMANE ALI Fatima 100 42.000000\n",
|
|
|
|
"BACHIROU Elzame 100 21.666667\n",
|
|
|
|
"BINALI Zalida 100 63.000000\n",
|
|
|
|
"BOINA Abdillah Mze Limassi 100 69.333333\n",
|
|
|
|
"BOUDRA Zaankidine 100 35.666667\n",
|
|
|
|
"BOURA Kayssoiria 100 44.000000\n",
|
|
|
|
"HALADI Asna 100 68.666667\n",
|
|
|
|
"HALIDI Soibrata 100 37.333333\n",
|
|
|
|
"HAMEDALY Doulkifly 100 34.666667\n",
|
|
|
|
"IBRAHIM Nassur 100 56.666667\n",
|
|
|
|
"Ibrahim Chaharzade 100 50.333333\n",
|
|
|
|
"MOHAMED Nadia 100 51.666667\n",
|
|
|
|
"MOUHOUDHOIRE Izak 100 36.666667\n",
|
|
|
|
"MOUSSRI Bakari 100 24.000000\n",
|
|
|
|
"SAKOTRA Claudiana 100 52.666667\n",
|
|
|
|
"SAÏD Fatoumia 100 58.333333\n",
|
|
|
|
"TOUFAIL Salahou 100 56.000000"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 179,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"mark_df = q_sc_df.groupby(['fullname_st'])[[\"score_rate_q\", 'mark']].sum()\n",
|
|
|
|
"mark_df"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 192,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"array([<matplotlib.axes._subplots.AxesSubplot object at 0x7f153c0b35f8>], dtype=object)"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 192,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"image/png": "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\n3tZXUZKk1eEnciWpIYa
|
|
|
|
"text/plain": [
|
|
|
|
"<matplotlib.figure.Figure at 0x7f153be4e0f0>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"fig, ax = plt.subplots()\n",
|
|
|
|
"ax.set_xlim([0, 100])\n",
|
|
|
|
"mark_df.hist(\"mark\",bins=20, ax=ax)"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 197,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"<matplotlib.axes._subplots.AxesSubplot at 0x7f1539c2f7b8>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 197,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"image/png": "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\n7XBML+bX4TSq+ibwZqu
|
|
|
|
"text/plain": [
|
|
|
|
"<matplotlib.figure.Figure at 0x7f1539c91e10>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"mark_df[\"mark\"].plot.kde()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 193,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"count 25.000000\n",
|
|
|
|
"mean 48.133333\n",
|
|
|
|
"std 15.323064\n",
|
|
|
|
"min 21.666667\n",
|
|
|
|
"25% 36.666667\n",
|
|
|
|
"50% 50.333333\n",
|
|
|
|
"75% 60.333333\n",
|
|
|
|
"max 77.666667\n",
|
|
|
|
"Name: mark, dtype: float64"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 193,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"mark_df['mark'].describe()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"## Comparaison entre compétences brutes et coefficientés"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 110,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/html": [
|
|
|
|
"<div>\n",
|
|
|
|
"<style>\n",
|
|
|
|
" .dataframe thead tr:only-child th {\n",
|
|
|
|
" text-align: right;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe thead th {\n",
|
|
|
|
" text-align: left;\n",
|
|
|
|
" }\n",
|
|
|
|
"\n",
|
|
|
|
" .dataframe tbody tr th {\n",
|
|
|
|
" vertical-align: top;\n",
|
|
|
|
" }\n",
|
|
|
|
"</style>\n",
|
|
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
|
|
" <thead>\n",
|
|
|
|
" <tr style=\"text-align: right;\">\n",
|
|
|
|
" <th></th>\n",
|
|
|
|
" <th>student_id</th>\n",
|
|
|
|
" <th>question_id</th>\n",
|
|
|
|
" <th>value</th>\n",
|
|
|
|
" <th>id</th>\n",
|
|
|
|
" <th>name_st</th>\n",
|
|
|
|
" <th>surname_st</th>\n",
|
|
|
|
" <th>mail_st</th>\n",
|
|
|
|
" <th>commment_st</th>\n",
|
|
|
|
" <th>tribe_id</th>\n",
|
|
|
|
" <th>id_q</th>\n",
|
|
|
|
" <th>name_q</th>\n",
|
|
|
|
" <th>score_rate_q</th>\n",
|
|
|
|
" <th>is_leveled_q</th>\n",
|
|
|
|
" <th>exercise_id</th>\n",
|
|
|
|
" <th>competence_q</th>\n",
|
|
|
|
" <th>domain_q</th>\n",
|
|
|
|
" <th>comment_q</th>\n",
|
|
|
|
" <th>value_no_dot</th>\n",
|
|
|
|
" <th>mark</th>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" </thead>\n",
|
|
|
|
" <tbody>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" <tr>\n",
|
2018-03-28 17:31:22 +00:00
|
|
|
" <th>0</th>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>302</td>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>ABDALLAH ALLAOUI</td>\n",
|
|
|
|
" <td>Taiassima</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>302</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>4</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>95</td>\n",
|
|
|
|
" <td>Rep</td>\n",
|
|
|
|
" <td>Proba</td>\n",
|
|
|
|
" <td>Calculer une probabilité</td>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" <td>2.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>1</th>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" <td>302</td>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" <td>ADANI</td>\n",
|
|
|
|
" <td>Ismou</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>302</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>4</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>95</td>\n",
|
|
|
|
" <td>Rep</td>\n",
|
|
|
|
" <td>Proba</td>\n",
|
|
|
|
" <td>Calculer une probabilité</td>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" <td>2.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>2</th>\n",
|
|
|
|
" <td>4</td>\n",
|
|
|
|
" <td>302</td>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" <td>4</td>\n",
|
|
|
|
" <td>AHAMADI</td>\n",
|
|
|
|
" <td>Asbahati</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>302</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>4</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>95</td>\n",
|
|
|
|
" <td>Rep</td>\n",
|
|
|
|
" <td>Proba</td>\n",
|
|
|
|
" <td>Calculer une probabilité</td>\n",
|
|
|
|
" <td>2</td>\n",
|
|
|
|
" <td>2.666667</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>3</th>\n",
|
|
|
|
" <td>5</td>\n",
|
|
|
|
" <td>302</td>\n",
|
|
|
|
" <td>3</td>\n",
|
|
|
|
" <td>5</td>\n",
|
|
|
|
" <td>AHAMADI OUSSENI</td>\n",
|
|
|
|
" <td>Ansufiddine</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>302</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>4</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>95</td>\n",
|
|
|
|
" <td>Rep</td>\n",
|
|
|
|
" <td>Proba</td>\n",
|
|
|
|
" <td>Calculer une probabilité</td>\n",
|
|
|
|
" <td>3</td>\n",
|
|
|
|
" <td>4.000000</td>\n",
|
|
|
|
" </tr>\n",
|
|
|
|
" <tr>\n",
|
|
|
|
" <th>4</th>\n",
|
|
|
|
" <td>6</td>\n",
|
|
|
|
" <td>302</td>\n",
|
|
|
|
" <td>3</td>\n",
|
|
|
|
" <td>6</td>\n",
|
|
|
|
" <td>AHAMED</td>\n",
|
|
|
|
" <td>Fayadhi</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>None</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>302</td>\n",
|
|
|
|
" <td></td>\n",
|
|
|
|
" <td>4</td>\n",
|
|
|
|
" <td>1</td>\n",
|
|
|
|
" <td>95</td>\n",
|
|
|
|
" <td>Rep</td>\n",
|
|
|
|
" <td>Proba</td>\n",
|
|
|
|
" <td>Calculer une probabilité</td>\n",
|
|
|
|
" <td>3</td>\n",
|
|
|
|
" <td>4.000000</td>\n",
|
2018-03-28 12:30:27 +00:00
|
|
|
" </tr>\n",
|
|
|
|
" </tbody>\n",
|
|
|
|
"</table>\n",
|
|
|
|
"</div>"
|
|
|
|
],
|
|
|
|
"text/plain": [
|
2018-03-28 17:31:22 +00:00
|
|
|
" student_id question_id value id name_st surname_st mail_st \\\n",
|
|
|
|
"0 1 302 2 1 ABDALLAH ALLAOUI Taiassima \n",
|
|
|
|
"1 2 302 2 2 ADANI Ismou \n",
|
|
|
|
"2 4 302 2 4 AHAMADI Asbahati \n",
|
|
|
|
"3 5 302 3 5 AHAMADI OUSSENI Ansufiddine \n",
|
|
|
|
"4 6 302 3 6 AHAMED Fayadhi \n",
|
|
|
|
"\n",
|
|
|
|
" commment_st tribe_id id_q name_q score_rate_q is_leveled_q exercise_id \\\n",
|
|
|
|
"0 None 1 302 4 1 95 \n",
|
|
|
|
"1 None 1 302 4 1 95 \n",
|
|
|
|
"2 None 1 302 4 1 95 \n",
|
|
|
|
"3 None 1 302 4 1 95 \n",
|
|
|
|
"4 None 1 302 4 1 95 \n",
|
|
|
|
"\n",
|
|
|
|
" competence_q domain_q comment_q value_no_dot mark \n",
|
|
|
|
"0 Rep Proba Calculer une probabilité 2 2.666667 \n",
|
|
|
|
"1 Rep Proba Calculer une probabilité 2 2.666667 \n",
|
|
|
|
"2 Rep Proba Calculer une probabilité 2 2.666667 \n",
|
|
|
|
"3 Rep Proba Calculer une probabilité 3 4.000000 \n",
|
|
|
|
"4 Rep Proba Calculer une probabilité 3 4.000000 "
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"execution_count": 110,
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"q_sc_df.head()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"Bilan des compétences sans coefficients"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 141,
|
|
|
|
"metadata": {
|
|
|
|
"collapsed": true
|
|
|
|
},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"def value_mean(df):\n",
|
|
|
|
" df_ = df.replace(\".\", 0)\n",
|
|
|
|
" return round(df_[\"value\"].mean(), 0)"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"Bilan avec les coefficients"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 152,
|
|
|
|
"metadata": {
|
|
|
|
"collapsed": true
|
|
|
|
},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"def mark_mean(df):\n",
|
|
|
|
" df_ = df.replace(\".\", 0)\n",
|
|
|
|
" mark_sum = df_[\"mark\"].sum() * 3\n",
|
|
|
|
" rate_sum = df_[\"score_rate_q\"].sum()\n",
|
|
|
|
" try:\n",
|
|
|
|
" return round(mark_sum / rate_sum, 0)\n",
|
|
|
|
" except ZeroDivisionError:\n",
|
|
|
|
" return np.nan"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"Bilan des compétences"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 156,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"comp_value_df = q_sc_df.groupby(['fullname_st', \"competence_q\"]).apply(value_mean).unstack()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 157,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"comp_mark_df = q_sc_df.groupby(['fullname_st', \"competence_q\"]).apply(mark_mean).unstack()"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 195,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"text/plain": [
|
|
|
|
"<matplotlib.axes._subplots.AxesSubplot at 0x7f153b92a6d8>"
|
2018-03-28 12:30:27 +00:00
|
|
|
]
|
|
|
|
},
|
2018-03-28 17:31:22 +00:00
|
|
|
"execution_count": 195,
|
2018-03-28 12:30:27 +00:00
|
|
|
"metadata": {},
|
|
|
|
"output_type": "execute_result"
|
2018-03-28 17:31:22 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"data": {
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAArsAAAIoCAYAAABpkSNvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XucFNWd///Xe2ZgACEogkNEApFFjYqCaBJcCGD0G9ZL\nBMXLLFmjGxb9bRI2cWPImkSJRIKauAm4JgJG0RDReEMkq+IFR+INUGAUBUHASyIqGhYBuUx/fn/U\naSybnltPzXTT83k+Hjy66tSpT52qnj58+vTpapkZzjnnnHPOFaOSfDfAOeecc8655uLJrnPOOeec\nK1qe7DrnnHPOuaLlya5zzjnnnCtanuw655xzzrmi5cmuc84555wrWp7sOuecc865ouXJrnPOOeec\nK1qe7DrnnHPOuaLlya5zzjnnnCtaZflugHMtpOh/F9sWjkkkjobNBpYmEgsGAsm2LalY6XhJnmvy\nbStqyncDclDU/Ughv7YAtn7lsESi7Ve1uqDP1fuRRmlQP+Iju84555xzrmh5suucc84554qWJ7vO\nOeecc65o+Zxd51qBy2etY2H1Zg7sVMa8K49ucryqquVcffVtpFIpzjlnOOPGfb0g2tZaztO5fCjU\n15cO6k755deiLl3BjF3z7mT33bfl3K5CPc/maFtr0eIju5JGSjJJR8TKekvaLmmZpOWSnpZ0eNg2\nTNJmSS9KWiWpStLpWeIukzQno+xWSaMzynpLeqmWtpVJek/SlIzyhZKOb0iMsP17kj6W1DlWNkzS\ng1nqfip2xrZfS3pbUklG+UhJKyS9Iqla0siGtDVbGyR9LVy7ZZI+Ctd4maRaewpJPSXdWdv2xpJ0\ntaThScVzexs1qCszxvdNJFZNTYqrrrqFmTN/yPz51/Hgg0+zZs1bBdG21nKezuVDwb6+amrYeeMU\ntl9wKtsvOZc2o8agXn1yblvBnmfCbWtN8jGNoRJYFB7j1ppZfzM7FpgFXB7b9pSZDTCzw4HxwA2S\nvpreKOkLQCkwRNJ+TWjbKcBq4BxJTfmmcCWwGDgr1wAhwR0FvAkMjZUfC/wSONPMvgB8HfilpGNy\nOY6ZPRyue39gCTAmrF9Qxz5vmtl5uRyvlng/NrMnkorn9nbCYZ3o3CGZD3JWrFhDr14V9OxZQdu2\nZZx22iAeeyz3byIn2bbWcp7O5UOhvr5s03ukVq+MVrZvJbVhLepWkXPbCvU8k25ba9Kiya6kjsBg\n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\nSbpFUnUYlR4eyi+UdEP
|
|
|
|
"text/plain": [
|
|
|
|
"<matplotlib.figure.Figure at 0x7f153bb70630>"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data"
|
2018-03-28 12:30:27 +00:00
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
2018-03-28 17:31:22 +00:00
|
|
|
"f, (ax1, ax2) = plt.subplots(1, 2, figsize=(9, 9), sharey=True)\n",
|
|
|
|
"ax2.set_xlabel('')\n",
|
|
|
|
"sns.heatmap(comp_value_df,linewidths=0.2, annot=True, square=True, cbar=False, cmap=\"YlOrRd\", ax=ax1)\n",
|
|
|
|
"sns.heatmap(comp_mark_df,linewidths=0.2, annot=True, square=True, cbar=False, cmap=\"YlOrRd\", ax=ax2)"
|
2018-03-28 12:30:27 +00:00
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": null,
|
|
|
|
"metadata": {
|
|
|
|
"collapsed": true
|
|
|
|
},
|
|
|
|
"outputs": [],
|
|
|
|
"source": []
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"metadata": {
|
|
|
|
"kernelspec": {
|
|
|
|
"display_name": "Python 3",
|
|
|
|
"language": "python",
|
|
|
|
"name": "python3"
|
|
|
|
},
|
|
|
|
"language_info": {
|
|
|
|
"codemirror_mode": {
|
|
|
|
"name": "ipython",
|
|
|
|
"version": 3
|
|
|
|
},
|
|
|
|
"file_extension": ".py",
|
|
|
|
"mimetype": "text/x-python",
|
|
|
|
"name": "python",
|
|
|
|
"nbconvert_exporter": "python",
|
|
|
|
"pygments_lexer": "ipython3",
|
|
|
|
"version": "3.6.4"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"nbformat": 4,
|
|
|
|
"nbformat_minor": 2
|
|
|
|
}
|