diff --git a/module3/exo3/exercice.ipynb b/module3/exo3/exercice.ipynb
index bce6d025501b564409e42e3bb5b8bf10ac632e14..b299c2dcd4c8a46fb794e4490befdb990e9f2441 100644
--- a/module3/exo3/exercice.ipynb
+++ b/module3/exo3/exercice.ipynb
@@ -62,9 +62,16 @@
" urllib.request.urlretrieve(data_url, data_file)"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Le document comporte trois colonnes : la première colonne indique leur habitude de tabagisme, la deuxième renseigne si la personne est vivante ou décédée au moment de la seconde étude et enfin, la troisième colonne indique leur âge lors de la première étude"
+ ]
+ },
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 6,
"metadata": {},
"outputs": [
{
@@ -88,9 +95,9 @@
" \n",
" \n",
" | \n",
- " Yes | \n",
- " Alive | \n",
- " 21 | \n",
+ " Smoker | \n",
+ " Status | \n",
+ " Age | \n",
"
\n",
" \n",
"
\n",
@@ -98,447 +105,447 @@
" 0 | \n",
" Yes | \n",
" Alive | \n",
- " 19.3 | \n",
+ " 21.0 | \n",
" \n",
" \n",
" | 1 | \n",
+ " Yes | \n",
+ " Alive | \n",
+ " 19.3 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
" No | \n",
" Dead | \n",
" 57.5 | \n",
"
\n",
" \n",
- " | 2 | \n",
+ " 3 | \n",
" No | \n",
" Alive | \n",
" 47.1 | \n",
"
\n",
" \n",
- " | 3 | \n",
+ " 4 | \n",
" Yes | \n",
" Alive | \n",
" 81.4 | \n",
"
\n",
" \n",
- " | 4 | \n",
+ " 5 | \n",
" No | \n",
" Alive | \n",
" 36.8 | \n",
"
\n",
" \n",
- " | 5 | \n",
+ " 6 | \n",
" No | \n",
" Alive | \n",
" 23.8 | \n",
"
\n",
" \n",
- " | 6 | \n",
+ " 7 | \n",
" Yes | \n",
" Dead | \n",
" 57.5 | \n",
"
\n",
" \n",
- " | 7 | \n",
+ " 8 | \n",
" Yes | \n",
" Alive | \n",
" 24.8 | \n",
"
\n",
" \n",
- " | 8 | \n",
+ " 9 | \n",
" Yes | \n",
" Alive | \n",
" 49.5 | \n",
"
\n",
" \n",
- " | 9 | \n",
+ " 10 | \n",
" Yes | \n",
" Alive | \n",
" 30.0 | \n",
"
\n",
" \n",
- " | 10 | \n",
+ " 11 | \n",
" No | \n",
" Dead | \n",
" 66.0 | \n",
"
\n",
" \n",
- " | 11 | \n",
+ " 12 | \n",
" Yes | \n",
" Alive | \n",
" 49.2 | \n",
"
\n",
" \n",
- " | 12 | \n",
+ " 13 | \n",
" No | \n",
" Alive | \n",
" 58.4 | \n",
"
\n",
" \n",
- " | 13 | \n",
+ " 14 | \n",
" No | \n",
" Dead | \n",
" 60.6 | \n",
"
\n",
" \n",
- " | 14 | \n",
+ " 15 | \n",
" No | \n",
" Alive | \n",
" 25.1 | \n",
"
\n",
" \n",
- " | 15 | \n",
+ " 16 | \n",
" No | \n",
" Alive | \n",
" 43.5 | \n",
"
\n",
" \n",
- " | 16 | \n",
+ " 17 | \n",
" No | \n",
" Alive | \n",
" 27.1 | \n",
"
\n",
" \n",
- " | 17 | \n",
+ " 18 | \n",
" No | \n",
" Alive | \n",
" 58.3 | \n",
"
\n",
" \n",
- " | 18 | \n",
+ " 19 | \n",
" Yes | \n",
" Alive | \n",
" 65.7 | \n",
"
\n",
" \n",
- " | 19 | \n",
+ " 20 | \n",
" No | \n",
" Dead | \n",
" 73.2 | \n",
"
\n",
" \n",
- " | 20 | \n",
+ " 21 | \n",
" Yes | \n",
" Alive | \n",
" 38.3 | \n",
"
\n",
" \n",
- " | 21 | \n",
+ " 22 | \n",
" No | \n",
" Alive | \n",
" 33.4 | \n",
"
\n",
" \n",
- " | 22 | \n",
+ " 23 | \n",
" Yes | \n",
" Dead | \n",
" 62.3 | \n",
"
\n",
" \n",
- " | 23 | \n",
+ " 24 | \n",
" No | \n",
" Alive | \n",
" 18.0 | \n",
"
\n",
" \n",
- " | 24 | \n",
+ " 25 | \n",
" No | \n",
" Alive | \n",
" 56.2 | \n",
"
\n",
" \n",
- " | 25 | \n",
+ " 26 | \n",
" Yes | \n",
" Alive | \n",
" 59.2 | \n",
"
\n",
" \n",
- " | 26 | \n",
+ " 27 | \n",
" No | \n",
" Alive | \n",
" 25.8 | \n",
"
\n",
" \n",
- " | 27 | \n",
+ " 28 | \n",
" No | \n",
" Dead | \n",
" 36.9 | \n",
"
\n",
" \n",
- " | 28 | \n",
+ " 29 | \n",
" No | \n",
" Alive | \n",
" 20.2 | \n",
"
\n",
" \n",
- " | 29 | \n",
- " Yes | \n",
- " Alive | \n",
- " 34.6 | \n",
- "
\n",
- " \n",
" | ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
- " | 1283 | \n",
+ " 1284 | \n",
" Yes | \n",
" Dead | \n",
" 36.0 | \n",
"
\n",
" \n",
- " | 1284 | \n",
+ " 1285 | \n",
" Yes | \n",
" Alive | \n",
" 48.3 | \n",
"
\n",
" \n",
- " | 1285 | \n",
+ " 1286 | \n",
" No | \n",
" Alive | \n",
" 63.1 | \n",
"
\n",
" \n",
- " | 1286 | \n",
+ " 1287 | \n",
" No | \n",
" Alive | \n",
" 60.8 | \n",
"
\n",
" \n",
- " | 1287 | \n",
+ " 1288 | \n",
" Yes | \n",
" Dead | \n",
" 39.3 | \n",
"
\n",
" \n",
- " | 1288 | \n",
+ " 1289 | \n",
" No | \n",
" Alive | \n",
" 36.7 | \n",
"
\n",
" \n",
- " | 1289 | \n",
+ " 1290 | \n",
" No | \n",
" Alive | \n",
" 63.8 | \n",
"
\n",
" \n",
- " | 1290 | \n",
+ " 1291 | \n",
" No | \n",
" Dead | \n",
" 71.3 | \n",
"
\n",
" \n",
- " | 1291 | \n",
+ " 1292 | \n",
" No | \n",
" Alive | \n",
" 57.7 | \n",
"
\n",
" \n",
- " | 1292 | \n",
+ " 1293 | \n",
" No | \n",
" Alive | \n",
" 63.2 | \n",
"
\n",
" \n",
- " | 1293 | \n",
+ " 1294 | \n",
" No | \n",
" Alive | \n",
" 46.6 | \n",
"
\n",
" \n",
- " | 1294 | \n",
+ " 1295 | \n",
" Yes | \n",
" Dead | \n",
" 82.4 | \n",
"
\n",
" \n",
- " | 1295 | \n",
+ " 1296 | \n",
" Yes | \n",
" Alive | \n",
" 38.3 | \n",
"
\n",
" \n",
- " | 1296 | \n",
+ " 1297 | \n",
" Yes | \n",
" Alive | \n",
" 32.7 | \n",
"
\n",
" \n",
- " | 1297 | \n",
+ " 1298 | \n",
" No | \n",
" Alive | \n",
" 39.7 | \n",
"
\n",
" \n",
- " | 1298 | \n",
+ " 1299 | \n",
" Yes | \n",
" Dead | \n",
" 60.0 | \n",
"
\n",
" \n",
- " | 1299 | \n",
+ " 1300 | \n",
" No | \n",
" Dead | \n",
" 71.0 | \n",
"
\n",
" \n",
- " | 1300 | \n",
+ " 1301 | \n",
" No | \n",
" Alive | \n",
" 20.5 | \n",
"
\n",
" \n",
- " | 1301 | \n",
+ " 1302 | \n",
" No | \n",
" Alive | \n",
" 44.4 | \n",
"
\n",
" \n",
- " | 1302 | \n",
+ " 1303 | \n",
" Yes | \n",
" Alive | \n",
" 31.2 | \n",
"
\n",
" \n",
- " | 1303 | \n",
+ " 1304 | \n",
" Yes | \n",
" Alive | \n",
" 47.8 | \n",
"
\n",
" \n",
- " | 1304 | \n",
+ " 1305 | \n",
" Yes | \n",
" Alive | \n",
" 60.9 | \n",
"
\n",
" \n",
- " | 1305 | \n",
+ " 1306 | \n",
" No | \n",
" Dead | \n",
" 61.4 | \n",
"
\n",
" \n",
- " | 1306 | \n",
+ " 1307 | \n",
" Yes | \n",
" Alive | \n",
" 43.0 | \n",
"
\n",
" \n",
- " | 1307 | \n",
+ " 1308 | \n",
" No | \n",
" Alive | \n",
" 42.1 | \n",
"
\n",
" \n",
- " | 1308 | \n",
+ " 1309 | \n",
" Yes | \n",
" Alive | \n",
" 35.9 | \n",
"
\n",
" \n",
- " | 1309 | \n",
+ " 1310 | \n",
" No | \n",
" Alive | \n",
" 22.3 | \n",
"
\n",
" \n",
- " | 1310 | \n",
+ " 1311 | \n",
" Yes | \n",
" Dead | \n",
" 62.1 | \n",
"
\n",
" \n",
- " | 1311 | \n",
+ " 1312 | \n",
" No | \n",
" Dead | \n",
" 88.6 | \n",
"
\n",
" \n",
- " | 1312 | \n",
+ " 1313 | \n",
" No | \n",
" Alive | \n",
" 39.1 | \n",
"
\n",
" \n",
"\n",
- "1313 rows × 3 columns
\n",
+ "1314 rows × 3 columns
\n",
""
],
"text/plain": [
- " Yes Alive 21\n",
- "0 Yes Alive 19.3\n",
- "1 No Dead 57.5\n",
- "2 No Alive 47.1\n",
- "3 Yes Alive 81.4\n",
- "4 No Alive 36.8\n",
- "5 No Alive 23.8\n",
- "6 Yes Dead 57.5\n",
- "7 Yes Alive 24.8\n",
- "8 Yes Alive 49.5\n",
- "9 Yes Alive 30.0\n",
- "10 No Dead 66.0\n",
- "11 Yes Alive 49.2\n",
- "12 No Alive 58.4\n",
- "13 No Dead 60.6\n",
- "14 No Alive 25.1\n",
- "15 No Alive 43.5\n",
- "16 No Alive 27.1\n",
- "17 No Alive 58.3\n",
- "18 Yes Alive 65.7\n",
- "19 No Dead 73.2\n",
- "20 Yes Alive 38.3\n",
- "21 No Alive 33.4\n",
- "22 Yes Dead 62.3\n",
- "23 No Alive 18.0\n",
- "24 No Alive 56.2\n",
- "25 Yes Alive 59.2\n",
- "26 No Alive 25.8\n",
- "27 No Dead 36.9\n",
- "28 No Alive 20.2\n",
- "29 Yes Alive 34.6\n",
- "... ... ... ...\n",
- "1283 Yes Dead 36.0\n",
- "1284 Yes Alive 48.3\n",
- "1285 No Alive 63.1\n",
- "1286 No Alive 60.8\n",
- "1287 Yes Dead 39.3\n",
- "1288 No Alive 36.7\n",
- "1289 No Alive 63.8\n",
- "1290 No Dead 71.3\n",
- "1291 No Alive 57.7\n",
- "1292 No Alive 63.2\n",
- "1293 No Alive 46.6\n",
- "1294 Yes Dead 82.4\n",
- "1295 Yes Alive 38.3\n",
- "1296 Yes Alive 32.7\n",
- "1297 No Alive 39.7\n",
- "1298 Yes Dead 60.0\n",
- "1299 No Dead 71.0\n",
- "1300 No Alive 20.5\n",
- "1301 No Alive 44.4\n",
- "1302 Yes Alive 31.2\n",
- "1303 Yes Alive 47.8\n",
- "1304 Yes Alive 60.9\n",
- "1305 No Dead 61.4\n",
- "1306 Yes Alive 43.0\n",
- "1307 No Alive 42.1\n",
- "1308 Yes Alive 35.9\n",
- "1309 No Alive 22.3\n",
- "1310 Yes Dead 62.1\n",
- "1311 No Dead 88.6\n",
- "1312 No Alive 39.1\n",
+ " Smoker Status Age\n",
+ "0 Yes Alive 21.0\n",
+ "1 Yes Alive 19.3\n",
+ "2 No Dead 57.5\n",
+ "3 No Alive 47.1\n",
+ "4 Yes Alive 81.4\n",
+ "5 No Alive 36.8\n",
+ "6 No Alive 23.8\n",
+ "7 Yes Dead 57.5\n",
+ "8 Yes Alive 24.8\n",
+ "9 Yes Alive 49.5\n",
+ "10 Yes Alive 30.0\n",
+ "11 No Dead 66.0\n",
+ "12 Yes Alive 49.2\n",
+ "13 No Alive 58.4\n",
+ "14 No Dead 60.6\n",
+ "15 No Alive 25.1\n",
+ "16 No Alive 43.5\n",
+ "17 No Alive 27.1\n",
+ "18 No Alive 58.3\n",
+ "19 Yes Alive 65.7\n",
+ "20 No Dead 73.2\n",
+ "21 Yes Alive 38.3\n",
+ "22 No Alive 33.4\n",
+ "23 Yes Dead 62.3\n",
+ "24 No Alive 18.0\n",
+ "25 No Alive 56.2\n",
+ "26 Yes Alive 59.2\n",
+ "27 No Alive 25.8\n",
+ "28 No Dead 36.9\n",
+ "29 No Alive 20.2\n",
+ "... ... ... ...\n",
+ "1284 Yes Dead 36.0\n",
+ "1285 Yes Alive 48.3\n",
+ "1286 No Alive 63.1\n",
+ "1287 No Alive 60.8\n",
+ "1288 Yes Dead 39.3\n",
+ "1289 No Alive 36.7\n",
+ "1290 No Alive 63.8\n",
+ "1291 No Dead 71.3\n",
+ "1292 No Alive 57.7\n",
+ "1293 No Alive 63.2\n",
+ "1294 No Alive 46.6\n",
+ "1295 Yes Dead 82.4\n",
+ "1296 Yes Alive 38.3\n",
+ "1297 Yes Alive 32.7\n",
+ "1298 No Alive 39.7\n",
+ "1299 Yes Dead 60.0\n",
+ "1300 No Dead 71.0\n",
+ "1301 No Alive 20.5\n",
+ "1302 No Alive 44.4\n",
+ "1303 Yes Alive 31.2\n",
+ "1304 Yes Alive 47.8\n",
+ "1305 Yes Alive 60.9\n",
+ "1306 No Dead 61.4\n",
+ "1307 Yes Alive 43.0\n",
+ "1308 No Alive 42.1\n",
+ "1309 Yes Alive 35.9\n",
+ "1310 No Alive 22.3\n",
+ "1311 Yes Dead 62.1\n",
+ "1312 No Dead 88.6\n",
+ "1313 No Alive 39.1\n",
"\n",
- "[1313 rows x 3 columns]"
+ "[1314 rows x 3 columns]"
]
},
- "execution_count": 4,
+ "execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "raw_data = pd.read_csv(data_file, skiprows=1)\n",
+ "raw_data = pd.read_csv(data_file)\n",
"raw_data"
]
},
@@ -546,7 +553,157 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Le document comporte trois colonnes : la première colonne indique leur habitude de tabagisme, la deuxième renseigne si la personne est vivante ou décédée au moment de la seconde étude et enfin, la troisième colonne indique leur âge lors de la première étude"
+ "Pour nous assurer que le jeu de données est complet, nous vérifions qu'il n'y a pas d'informations manquantes conernant l'une des personnes du sondage. Après vérification, il n'y a pas de données manquantes."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Smoker | \n",
+ " Status | \n",
+ " Age | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ "Empty DataFrame\n",
+ "Columns: [Smoker, Status, Age]\n",
+ "Index: []"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "raw_data[raw_data.isnull().any(axis=1)]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Nous calculons le nombre total de femmes vivantes et décédées sur la période en fonction de leur habitude de tabagisme"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "alive_and_smoker = 0\n",
+ "alive_and_non_smoker = 0\n",
+ "dead_and_smoker = 0\n",
+ "dead_and_non_smoker = 0\n",
+ "for i in range(len(raw_data)):\n",
+ " if raw_data.iloc[i][0] == \"Yes\":\n",
+ " if raw_data.iloc[i][1] == \"Alive\":\n",
+ " alive_and_smoker += 1\n",
+ " else :\n",
+ " dead_and_smoker += 1\n",
+ " else :\n",
+ " if raw_data.iloc[i][1] == \"Alive\":\n",
+ " alive_and_non_smoker += 1\n",
+ " else :\n",
+ " dead_and_non_smoker += 1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Nous représentons ensuite ces données sous la forme d'un tableau. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Smoker | \n",
+ " Non-Smoker | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | Alive | \n",
+ " 443 | \n",
+ " 502 | \n",
+ "
\n",
+ " \n",
+ " | Dead | \n",
+ " 139 | \n",
+ " 230 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Smoker Non-Smoker\n",
+ "Alive 443 502\n",
+ "Dead 139 230"
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data = [[alive_and_smoker,alive_and_non_smoker],[dead_and_smoker, dead_and_non_smoker]]\n",
+ "\n",
+ "pd.DataFrame(data, columns=[\"Smoker\", \"Non-Smoker\"], index = [\"Alive\", \"Dead\"])"
]
},
{