From 0335c0b491e930bbdd4020f4670fb45bfd906c38 Mon Sep 17 00:00:00 2001 From: "Yemissi B. Kifouly" Date: Mon, 15 Nov 2021 23:37:09 +0100 Subject: [PATCH 1/5] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9e3edda..d86b101 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,4 @@ If you have technical issues with the website itself, or want to provide feedbac Notebooks, code, and other resources associated with our courses are kept on separate branches in the repo. Here's a list for easy access: [Foundations of Private Computation](https://github.com/OpenMined/courses/tree/foundations-of-private-computation) +[Introduction to Remote Data Science](https://github.com/OpenMined/courses/tree/introduction-to-remote-data-science) From a1f7cadd5d606be7ff2433cb01412642c45e7980 Mon Sep 17 00:00:00 2001 From: "Yemissi B. Kifouly" Date: Mon, 15 Nov 2021 23:37:27 +0100 Subject: [PATCH 2/5] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d86b101..b01d85f 100644 --- a/README.md +++ b/README.md @@ -9,4 +9,5 @@ If you have technical issues with the website itself, or want to provide feedbac Notebooks, code, and other resources associated with our courses are kept on separate branches in the repo. Here's a list for easy access: [Foundations of Private Computation](https://github.com/OpenMined/courses/tree/foundations-of-private-computation) + [Introduction to Remote Data Science](https://github.com/OpenMined/courses/tree/introduction-to-remote-data-science) From ac8b07746e2ca2764cad095c33f0da7a08e8ee40 Mon Sep 17 00:00:00 2001 From: Valerio Maggio Date: Wed, 17 Nov 2021 14:47:56 +0000 Subject: [PATCH 3/5] Cleared Output, missing import, drop inplace, iloc This commit fixes a few minors in the L3_DataPreparation notebook after coding through the first block of Lecture 3 in Introduction to Remote Data Science pre-release. This commit addresses Issue #380 #381 #382 Moreover: - duplicates in raw_data should be applied inplace - plt.show() whenever a plot is generated to avoid the repr of the Axis object - the plot_extrapolated_country function had a missing import of numpy as np - x = list(range(53)) has been updated as per drop inplace - iloc is used whenever accessing an entry in the DataFrame. (Without iloc, the code doesn't work) --- L3_DataPreparation.ipynb | 2446 ++------------------------------------ 1 file changed, 90 insertions(+), 2356 deletions(-) diff --git a/L3_DataPreparation.ipynb b/L3_DataPreparation.ipynb index 221e8a8..bbc2435 100644 --- a/L3_DataPreparation.ipynb +++ b/L3_DataPreparation.ipynb @@ -108,219 +108,56 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": null, + "id": "138e7dc4", + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path \n", + "from os import path as p\n", + "\n", + "BASE_FOLDER = Path(p.abspath(p.curdir))\n", + "DATA_FOLDER = BASE_FOLDER / \"dataset\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, "id": "c0a85288-4f43-4732-98b1-1b9e3bc6eae5", "metadata": {}, "outputs": [], "source": [ "# Load data\n", "import pandas as pd\n", - "raw_data = pd.read_csv(\"https://raw.githubusercontent.com/OpenMined/PySyft/dev/notebooks/course3/dataset/L3_data.csv\")" + "\n", + "if DATA_FOLDER.exists():\n", + " datafile_ref = DATA_FOLDER / \"L3_raw_data.csv\"\n", + "else:\n", + " datafile_ref = \"https://raw.githubusercontent.com/OpenMined/PySyft/dev/notebooks/course3/dataset/L3_data.csv\"\n", + "\n", + "raw_data = pd.read_csv(datafile_ref)" ] }, { "cell_type": "code", - "execution_count": 76, + "execution_count": null, "id": "03a5c8e2-642c-4686-921c-51b9ca9ab89b", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
0123456789...165166167168169170171172173174
011401113309992621344283284109544...5152077224012345212844655221176
111401113309992621344283284109544...5152077224012345212844655221176
2121113782821113575319267295116752...5772316554492246002245774921258
3123815872356107520265296316118642...4732096204732316072754074211109
4109320752964117578371359349115148...5502276484472325631883384321148
\n", - "

5 rows × 175 columns

\n", - "
" - ], - "text/plain": [ - " 0 1 2 3 4 5 6 7 8 9 ... 165 166 167 \\\n", - "0 1140 1113 3099 92 621 344 283 284 1095 44 ... 515 207 722 \n", - "1 1140 1113 3099 92 621 344 283 284 1095 44 ... 515 207 722 \n", - "2 1211 1378 2821 113 575 319 267 295 1167 52 ... 577 231 655 \n", - "3 1238 1587 2356 107 520 265 296 316 1186 42 ... 473 209 620 \n", - "4 1093 2075 2964 117 578 371 359 349 1151 48 ... 550 227 648 \n", - "\n", - " 168 169 170 171 172 173 174 \n", - "0 401 234 521 284 465 522 1176 \n", - "1 401 234 521 284 465 522 1176 \n", - "2 449 224 600 224 577 492 1258 \n", - "3 473 231 607 275 407 421 1109 \n", - "4 447 232 563 188 338 432 1148 \n", - "\n", - "[5 rows x 175 columns]" - ] - }, - "execution_count": 76, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "raw_data.head()" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "7237c140", + "metadata": {}, + "outputs": [], + "source": [ + "raw_data.shape" + ] + }, { "cell_type": "markdown", "id": "8ee93c43-ee4f-4848-ba08-4a31b7366805", @@ -328,26 +165,15 @@ "source": [ "In this dataset, each column corresponds to a country, each row corresponds to a new month where data was collected, and each value in this DataFrame corresponds to the number of COVID19 cases in the country at the start of that month. \n", "\n", - "So for instance, Country 0 had 1140 COVID cases at the start of when this data was collected (row 0), and only 451 when the data was last collected (row 53)." + "So for instance, Country 0 had `2280` COVID cases at the start of when this data was collected (row 0), and only 451 when the data was last collected (row 53)." ] }, { "cell_type": "code", - "execution_count": 79, + "execution_count": null, "id": "58d63f95-0b88-428d-94a9-58bb588aea0d", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(1140, 451)" - ] - }, - "execution_count": 79, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "raw_data[\"0\"][0], raw_data[\"0\"][53]" ] @@ -374,203 +200,10 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "0001c907-e0c5-4a3c-b4ab-c7562e06c638", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
0123456789...165166167168169170171172173174
02280222661981841242688566568219088...10304141444802468104256893010442352
111401113309992621344283284109544...5152077224012345212844655221176
2121113782821113575319267295116752...5772316554492246002245774921258
3123815872356107520265296316118642...4732096204732316072754074211109
4109320752964117578371359349115148...5502276484472325631883384321148
\n", - "

5 rows × 175 columns

\n", - "
" - ], - "text/plain": [ - " 0 1 2 3 4 5 6 7 8 9 ... 165 166 167 \\\n", - "0 2280 2226 6198 184 1242 688 566 568 2190 88 ... 1030 414 1444 \n", - "1 1140 1113 3099 92 621 344 283 284 1095 44 ... 515 207 722 \n", - "2 1211 1378 2821 113 575 319 267 295 1167 52 ... 577 231 655 \n", - "3 1238 1587 2356 107 520 265 296 316 1186 42 ... 473 209 620 \n", - "4 1093 2075 2964 117 578 371 359 349 1151 48 ... 550 227 648 \n", - "\n", - " 168 169 170 171 172 173 174 \n", - "0 802 468 1042 568 930 1044 2352 \n", - "1 401 234 521 284 465 522 1176 \n", - "2 449 224 600 224 577 492 1258 \n", - "3 473 231 607 275 407 421 1109 \n", - "4 447 232 563 188 338 432 1148 \n", - "\n", - "[5 rows x 175 columns]" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "raw_data.head()" ] @@ -587,7 +220,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "31f5b683-61cc-4390-b8bb-ed6e0dfae50b", "metadata": {}, "outputs": [], @@ -606,203 +239,10 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "5abf254c-7063-4d37-8b44-88964fa05d33", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
0123456789...165166167168169170171172173174
011401113309992621344283284109544...5152077224012345212844655221176
111401113309992621344283284109544...5152077224012345212844655221176
2121113782821113575319267295116752...5772316554492246002245774921258
3123815872356107520265296316118642...4732096204732316072754074211109
4109320752964117578371359349115148...5502276484472325631883384321148
\n", - "

5 rows × 175 columns

\n", - "
" - ], - "text/plain": [ - " 0 1 2 3 4 5 6 7 8 9 ... 165 166 167 \\\n", - "0 1140 1113 3099 92 621 344 283 284 1095 44 ... 515 207 722 \n", - "1 1140 1113 3099 92 621 344 283 284 1095 44 ... 515 207 722 \n", - "2 1211 1378 2821 113 575 319 267 295 1167 52 ... 577 231 655 \n", - "3 1238 1587 2356 107 520 265 296 316 1186 42 ... 473 209 620 \n", - "4 1093 2075 2964 117 578 371 359 349 1151 48 ... 550 227 648 \n", - "\n", - " 168 169 170 171 172 173 174 \n", - "0 401 234 521 284 465 522 1176 \n", - "1 401 234 521 284 465 522 1176 \n", - "2 449 224 600 224 577 492 1258 \n", - "3 473 231 607 275 407 421 1109 \n", - "4 447 232 563 188 338 432 1148 \n", - "\n", - "[5 rows x 175 columns]" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# See the resultant data\n", "raw_data.head()" @@ -820,1529 +260,57 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "d33b2214-8fe5-4787-8d56-5c5aa29acf54", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
0123456789...165166167168169170171172173174
111401113309992621344283284109544...5152077224012345212844655221176
2121113782821113575319267295116752...5772316554492246002245774921258
3123815872356107520265296316118642...4732096204732316072754074211109
4109320752964117578371359349115148...5502276484472325631883384321148
596622693390135614432341428110749...2851896403982505351833824591181
675824303575178802511330552104643...2481676084712665701303604951173
785827094260180696455347488101442...2601945294642584581002884241197
887725564860178747309458457100046...2471904124362504111074504401193
992527654145251770283462495113146...3491773714342054191145094581224
1062930715022259775287507438120762...228197418512206348754904861337
1180631475101295845266585433125960...378221436499213337245664481057
1289537405833294843308606451156764...397211428506211321186093361173
1381835597090342680278662468161263...40621745955319634920690360956
1473544706549337622370702583170270...29422040054421434021792354703
1566138145180361707364775720162071...26515840250316038014603364965
1662936654548324790425694725140356...332136330730198383146343611264
1763242174414386760365709741143241...31214934190912245215318369917
1862264095078420799351743847156736...333136350101416138918219397896
19589607360035091021381777756205623...586143360106215945223268323764
20604594830244611018311866724186018...525147402100615343321271360759
21527579030374271017253905878168919...541165434118213749717299353880
22498556529364781036341801791189719...586143381111274556153494111140
23483699225684751099372848689186421...491148426121467397174513921203
24478756020564491061255773571233924...405147417143453417235373651131
25519914319174591125244719734273725...398136335146856458235333601178
2647185152455472906237689713312326...380125331160452519214973781085
2747285352273533937263681730345228...414128353174558458204123671336
2848293142290657941234576715286528...307136317157950485193963881590
29367118502488603921199641626281426...416136359164361494173743731628
30376130202349552877151567617301823...240138326136862516173833751508
31336142353180552824146656580293022...249131310137049567104094591376
32267138534212601757158582539266620...2561252901216476339565475913
33328138333753652581114656507235718...20811524011934159296214961049
34416127533749635566141655537302121...17210921613243560766584231028
35456133243433583628138542611323023...1951162011810356104613480953
36434160703117537607122485653393417...2361241981728385954409531942
3736315712210051564594550600428616...21410813917394658753724931084
3837915150219351357580575711500711...208981491743475986416545872
39375154442196638500101570734498711...1969115921616256233605631029
40322148441556749463107444832534211...1469117821518061233925661253
41321154151408687415108505843606012...1567515122609568934056391613
42235158801731692366115600785677111...1816914726809563333416061546
432751680715311016382112701726731713...1665916126017771633065621348
442572295812591244451123658821819516...2436217730266765843055741278
45267279401254123342086683750860913...1826120435717271742956041189
462553756317841885349887177581155015...1945820642776981173326631006
472563751915802213372746078221283715...1905220540145780393666531049
482584117516942263319596188051365315...18650173392457738113775971040
492334258218902226281556858391376215...18347191445434695124357481233
502983888816702214295427379011534716...1635518243073772011446667813
513224374618352518290336558831833316...1796018344032886211594670861
523904653717352463270305999942298018...196561823768297166517723962
5345144942182927852724264610852059621...1775713829453372355658061073
\n", - "

53 rows × 175 columns

\n", - "
" - ], - "text/plain": [ - " 0 1 2 3 4 5 6 7 8 9 ... 165 166 \\\n", - "1 1140 1113 3099 92 621 344 283 284 1095 44 ... 515 207 \n", - "2 1211 1378 2821 113 575 319 267 295 1167 52 ... 577 231 \n", - "3 1238 1587 2356 107 520 265 296 316 1186 42 ... 473 209 \n", - "4 1093 2075 2964 117 578 371 359 349 1151 48 ... 550 227 \n", - "5 966 2269 3390 135 614 432 341 428 1107 49 ... 285 189 \n", - "6 758 2430 3575 178 802 511 330 552 1046 43 ... 248 167 \n", - "7 858 2709 4260 180 696 455 347 488 1014 42 ... 260 194 \n", - "8 877 2556 4860 178 747 309 458 457 1000 46 ... 247 190 \n", - "9 925 2765 4145 251 770 283 462 495 1131 46 ... 349 177 \n", - "10 629 3071 5022 259 775 287 507 438 1207 62 ... 228 197 \n", - "11 806 3147 5101 295 845 266 585 433 1259 60 ... 378 221 \n", - "12 895 3740 5833 294 843 308 606 451 1567 64 ... 397 211 \n", - "13 818 3559 7090 342 680 278 662 468 1612 63 ... 406 217 \n", - "14 735 4470 6549 337 622 370 702 583 1702 70 ... 294 220 \n", - "15 661 3814 5180 361 707 364 775 720 1620 71 ... 265 158 \n", - "16 629 3665 4548 324 790 425 694 725 1403 56 ... 332 136 \n", - "17 632 4217 4414 386 760 365 709 741 1432 41 ... 312 149 \n", - "18 622 6409 5078 420 799 351 743 847 1567 36 ... 333 136 \n", - "19 589 6073 6003 509 1021 381 777 756 2056 23 ... 586 143 \n", - "20 604 5948 3024 461 1018 311 866 724 1860 18 ... 525 147 \n", - "21 527 5790 3037 427 1017 253 905 878 1689 19 ... 541 165 \n", - "22 498 5565 2936 478 1036 341 801 791 1897 19 ... 586 143 \n", - "23 483 6992 2568 475 1099 372 848 689 1864 21 ... 491 148 \n", - "24 478 7560 2056 449 1061 255 773 571 2339 24 ... 405 147 \n", - "25 519 9143 1917 459 1125 244 719 734 2737 25 ... 398 136 \n", - "26 471 8515 2455 472 906 237 689 713 3123 26 ... 380 125 \n", - "27 472 8535 2273 533 937 263 681 730 3452 28 ... 414 128 \n", - "28 482 9314 2290 657 941 234 576 715 2865 28 ... 307 136 \n", - "29 367 11850 2488 603 921 199 641 626 2814 26 ... 416 136 \n", - "30 376 13020 2349 552 877 151 567 617 3018 23 ... 240 138 \n", - "31 336 14235 3180 552 824 146 656 580 2930 22 ... 249 131 \n", - "32 267 13853 4212 601 757 158 582 539 2666 20 ... 256 125 \n", - "33 328 13833 3753 652 581 114 656 507 2357 18 ... 208 115 \n", - "34 416 12753 3749 635 566 141 655 537 3021 21 ... 172 109 \n", - "35 456 13324 3433 583 628 138 542 611 3230 23 ... 195 116 \n", - "36 434 16070 3117 537 607 122 485 653 3934 17 ... 236 124 \n", - "37 363 15712 2100 515 645 94 550 600 4286 16 ... 214 108 \n", - "38 379 15150 2193 513 575 80 575 711 5007 11 ... 208 98 \n", - "39 375 15444 2196 638 500 101 570 734 4987 11 ... 196 91 \n", - "40 322 14844 1556 749 463 107 444 832 5342 11 ... 146 91 \n", - "41 321 15415 1408 687 415 108 505 843 6060 12 ... 156 75 \n", - "42 235 15880 1731 692 366 115 600 785 6771 11 ... 181 69 \n", - "43 275 16807 1531 1016 382 112 701 726 7317 13 ... 166 59 \n", - "44 257 22958 1259 1244 451 123 658 821 8195 16 ... 243 62 \n", - "45 267 27940 1254 1233 420 86 683 750 8609 13 ... 182 61 \n", - "46 255 37563 1784 1885 349 88 717 758 11550 15 ... 194 58 \n", - "47 256 37519 1580 2213 372 74 607 822 12837 15 ... 190 52 \n", - "48 258 41175 1694 2263 319 59 618 805 13653 15 ... 186 50 \n", - "49 233 42582 1890 2226 281 55 685 839 13762 15 ... 183 47 \n", - "50 298 38888 1670 2214 295 42 737 901 15347 16 ... 163 55 \n", - "51 322 43746 1835 2518 290 33 655 883 18333 16 ... 179 60 \n", - "52 390 46537 1735 2463 270 30 599 994 22980 18 ... 196 56 \n", - "53 451 44942 1829 2785 272 42 646 1085 20596 21 ... 177 57 \n", - "\n", - " 167 168 169 170 171 172 173 174 \n", - "1 722 401 234 521 284 465 522 1176 \n", - "2 655 449 224 600 224 577 492 1258 \n", - "3 620 473 231 607 275 407 421 1109 \n", - "4 648 447 232 563 188 338 432 1148 \n", - "5 640 398 250 535 183 382 459 1181 \n", - "6 608 471 266 570 130 360 495 1173 \n", - "7 529 464 258 458 100 288 424 1197 \n", - "8 412 436 250 411 107 450 440 1193 \n", - "9 371 434 205 419 114 509 458 1224 \n", - "10 418 512 206 348 75 490 486 1337 \n", - "11 436 499 213 337 24 566 448 1057 \n", - "12 428 506 211 321 18 609 336 1173 \n", - "13 459 553 196 349 20 690 360 956 \n", - "14 400 544 214 340 21 792 354 703 \n", - "15 402 503 160 380 14 603 364 965 \n", - "16 330 730 198 383 14 634 361 1264 \n", - "17 341 909 122 452 15 318 369 917 \n", - "18 350 1014 161 389 18 219 397 896 \n", - "19 360 1062 159 452 23 268 323 764 \n", - "20 402 1006 153 433 21 271 360 759 \n", - "21 434 1182 137 497 17 299 353 880 \n", - "22 381 1112 74 556 15 349 411 1140 \n", - "23 426 1214 67 397 17 451 392 1203 \n", - "24 417 1434 53 417 23 537 365 1131 \n", - "25 335 1468 56 458 23 533 360 1178 \n", - "26 331 1604 52 519 21 497 378 1085 \n", - "27 353 1745 58 458 20 412 367 1336 \n", - "28 317 1579 50 485 19 396 388 1590 \n", - "29 359 1643 61 494 17 374 373 1628 \n", - "30 326 1368 62 516 17 383 375 1508 \n", - "31 310 1370 49 567 10 409 459 1376 \n", - "32 290 1216 47 633 9 565 475 913 \n", - "33 240 1193 41 592 9 621 496 1049 \n", - "34 216 1324 35 607 6 658 423 1028 \n", - "35 201 1810 35 610 4 613 480 953 \n", - "36 198 1728 38 595 4 409 531 942 \n", - "37 139 1739 46 587 5 372 493 1084 \n", - "38 149 1743 47 598 6 416 545 872 \n", - "39 159 2161 62 562 3 360 563 1029 \n", - "40 178 2151 80 612 3 392 566 1253 \n", - "41 151 2260 95 689 3 405 639 1613 \n", - "42 147 2680 95 633 3 341 606 1546 \n", - "43 161 2601 77 716 3 306 562 1348 \n", - "44 177 3026 67 658 4 305 574 1278 \n", - "45 204 3571 72 717 4 295 604 1189 \n", - "46 206 4277 69 811 7 332 663 1006 \n", - "47 205 4014 57 803 9 366 653 1049 \n", - "48 173 3924 57 738 11 377 597 1040 \n", - "49 191 4454 34 695 12 435 748 1233 \n", - "50 182 4307 37 720 11 446 667 813 \n", - "51 183 4403 28 862 11 594 670 861 \n", - "52 182 3768 29 716 6 517 723 962 \n", - "53 138 2945 33 723 5 565 806 1073 \n", - "\n", - "[53 rows x 175 columns]" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Remove duplicated row\n", - "raw_data.drop([0])" + "raw_data.drop([0], inplace=True)" ] }, { - "cell_type": "markdown", - "id": "8326c068-5e4a-40cf-ba7b-3e707469a1a3", + "cell_type": "code", + "execution_count": null, + "id": "8acb70cc", "metadata": {}, + "outputs": [], "source": [ - "At this point, we might decide to visualize our dataset and see if there are any obvious outliers or anomalies. Let's look at the first country!" + "raw_data.shape" ] }, { - "cell_type": "code", - "execution_count": 51, - "id": "ddd7fef2-7ca3-440c-8bbd-6e17690f0db7", + "cell_type": "markdown", + "id": "8326c068-5e4a-40cf-ba7b-3e707469a1a3", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 51, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], "source": [ - "import matplotlib.pyplot as plt\n", - "plt.plot(raw_data.T[24], \"r-*\")" + "At this point, we might decide to visualize our dataset and see if there are any obvious outliers or anomalies. Let's look at the first country!" ] }, { "cell_type": "code", - "execution_count": 46, - "id": "ed96e05f-68c7-4390-8571-6c481fe5818f", + "execution_count": null, + "id": "ddd7fef2-7ca3-440c-8bbd-6e17690f0db7", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "54" - ] - }, - "execution_count": 46, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "raw_data.T[0].shape[0]" + "import matplotlib.pyplot as plt\n", + "plt.plot(raw_data.T.iloc[0], \"r-*\")\n", + "plt.show()" ] }, { "cell_type": "code", - "execution_count": 66, + "execution_count": null, "id": "bb0378da-80cd-43e4-bb0e-1778b132785e", "metadata": {}, "outputs": [], "source": [ + "import numpy as np \n", + "\n", "def plot_extrapolated_country(idx):\n", - " x = list(range(54))\n", - " y = raw_data.T[idx]\n", + " x = list(range(53))\n", + " y = raw_data.T.iloc[idx]\n", " \n", " plt.plot(y)\n", " \n", @@ -2359,49 +327,25 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": null, "id": "f252c345-c5e2-4f00-83c1-5f24f5992656", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plot_extrapolated_country(129)" ] }, { "cell_type": "code", - "execution_count": 49, + "execution_count": null, "id": "9c67efe9-764f-4ce0-9c71-a5519e949885", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "129" - ] - }, - "execution_count": 49, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "thingies = []\n", "for i in range(raw_data.T.shape[0]):\n", - " x = range(54)\n", - " y = raw_data.T[i]\n", + " x = range(53)\n", + " y = raw_data.T.iloc[i]\n", " slope, intercept = np.polyfit(x, y, 1)\n", " thingies.append(slope) #raw_data.T[i, -1] - raw_data.T[i, 0])\n", " \n", @@ -2410,35 +354,13 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": null, "id": "0fdaf6f8-d371-43fe-a064-f5a7a14073a0", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 80, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ - "pd.DataFrame(raw_data).plot(legend=False)" + "pd.DataFrame(raw_data).plot(legend=False)\n", + "plt.show()" ] }, { @@ -2446,7 +368,9 @@ "id": "c34d0da1-0e3e-4aaf-b26a-744e9a5c9dac", "metadata": {}, "source": [ - "This seems alright, and doesn't seem to have any clear outliers or anomalies. We could do this for other countries, and maybe even employ other visualization methods such as clustering or PCA, depending on the type of data we're working with." + "This seems alright, and doesn't seem to have any clear outliers or anomalies. \n", + "\n", + "We could do this for other countries, and maybe even employ other visualization methods such as clustering or PCA, depending on the type of data we're working with." ] }, { @@ -2512,19 +436,10 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "ddeb8d90-2dac-4637-a938-485d1548f94e", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "raw_data is of type: \n", - "raw_data is of type: \n" - ] - } - ], + "outputs": [], "source": [ "# Convert a Pandas Dataframe to NumPy array\n", "print(f'raw_data is of type: {type(raw_data)}')\n", @@ -2534,19 +449,10 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "a69125e4-579e-4b1c-a2bf-d72040d58d45", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "test_data is of type: \n", - "test_data is of type: \n" - ] - } - ], + "outputs": [], "source": [ "# Convert a PyTorch Tensor to a NumPy array\n", "import torch\n", @@ -2566,7 +472,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "id": "90c1d0f3-e33b-4985-a9ac-0d0626a18792", "metadata": {}, "outputs": [], @@ -2585,19 +491,10 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "805c2b1a-8a1f-47c3-8de2-4fafab86a2ef", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "random_data is of dtype: float64\n", - "random_data is now of type: int32\n" - ] - } - ], + "outputs": [], "source": [ "random_data = np.random.random((5, 5)) * 10\n", "print(f'random_data is of dtype: {random_data.dtype}')\n", @@ -2679,7 +576,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "7c765d97-e091-4351-a0d4-420fb1121c32", "metadata": {}, "outputs": [], @@ -2713,7 +610,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "id": "0f741fe4-5adf-4406-8727-18af72477dbe", "metadata": {}, "outputs": [], @@ -2743,39 +640,10 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "id": "c3d7642b-00f2-486a-80d8-9fee4a41bdae", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Connecting to http://localhost:8081... done! \t Logging into new_phil_node... done!\n", - "Loading dataset... checking dataset name for uniqueness.......\n", - "\n", - "WARNING - Dataset Name Conflict: A dataset named 'COVID19 Cases in 175 countries' already exists.\n", - "\n" - ] - }, - { - "name": "stdin", - "output_type": "stream", - "text": [ - "Do you want to upload this dataset anyway? (y/n) y\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Loading dataset... uploading... SUCCESS! \n", - "\n", - "Run .datasets to see your new dataset loaded into your machine!\n" - ] - } - ], + "outputs": [], "source": [ "# Login to Domain Node\n", "domain_node = sy.login(email=\"info@openmined.org\", password=\"changethis\", port=8081)\n", @@ -2800,144 +668,10 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "id": "a397bf1c-c32e-4dbd-a53d-d5464b37c412", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
IdxNameDescriptionAssetsId
[0]COVID Synthetic Weekly CasesSynthetically-generated COVID weekly case dataset[\"0\"] -> Tensor

[\"1\"] -> Tensor

[\"2\"] -> Tensor

[\"3\"] -> Tensor

[\"4\"] -> Tensor

[\"5\"] -> Tensor

[\"6\"] -> Tensor

[\"7\"] -> Tensor

[\"8\"] -> Tensor

[\"9\"] -> Tensor

cb441fdc-aefa-4a44-8f1e-fe61c4e0eb3a
[1]COVID Synthetic Weekly Cases v6Synthetically-generated COVID weekly case dataset[\"weeklyCases\"] -> Tensor

[\"nextWeekCases\"] -> Tensor

8d1e7ac7-a562-4f05-805f-9f6cac0a0d54
[2]COVID Synthetic Weekly Cases v7Synthetically-generated COVID weekly case dataset[\"weeklyCases\"] -> Tensor

32ea0eaf-5c47-4b27-8d2b-7a899e227dcc
[3]COVID19 Cases in 175 countriesWeekly data for an entire year[\"Country 0\"] -> Tensor

[\"Country 1\"] -> Tensor

[\"Country 2\"] -> Tensor

[\"Country 3\"] -> Tensor

[\"Country 4\"] -> Tensor

[\"Country 5\"] -> Tensor

[\"Country 6\"] -> Tensor

[\"Country 7\"] -> Tensor

[\"Country 8\"] -> Tensor

[\"Country 9\"] -> Tensor

[\"Country 10\"] -> Tensor

[\"Country 11\"] -> Tensor

[\"Country 12\"] -> Tensor

[\"Country 13\"] -> Tensor

[\"Country 14\"] -> Tensor

[\"Country 15\"] -> Tensor

[\"Country 16\"] -> Tensor

[\"Country 17\"] -> Tensor

[\"Country 18\"] -> Tensor

[\"Country 19\"] -> Tensor

[\"Country 20\"] -> Tensor

[\"Country 21\"] -> Tensor

[\"Country 22\"] -> Tensor

[\"Country 23\"] -> Tensor

[\"Country 24\"] -> Tensor

[\"Country 25\"] -> Tensor

[\"Country 26\"] -> Tensor

[\"Country 27\"] -> Tensor

[\"Country 28\"] -> Tensor

[\"Country 29\"] -> Tensor

[\"Country 30\"] -> Tensor

[\"Country 31\"] -> Tensor

[\"Country 32\"] -> Tensor

[\"Country 33\"] -> Tensor

[\"Country 34\"] -> Tensor

[\"Country 35\"] -> Tensor

[\"Country 36\"] -> Tensor

[\"Country 37\"] -> Tensor

[\"Country 38\"] -> Tensor

[\"Country 39\"] -> Tensor

[\"Country 40\"] -> Tensor

[\"Country 41\"] -> Tensor

[\"Country 42\"] -> Tensor

[\"Country 43\"] -> Tensor

[\"Country 44\"] -> Tensor

[\"Country 45\"] -> Tensor

[\"Country 46\"] -> Tensor

[\"Country 47\"] -> Tensor

[\"Country 48\"] -> Tensor

[\"Country 49\"] -> Tensor

[\"Country 50\"] -> Tensor

[\"Country 51\"] -> Tensor

[\"Country 52\"] -> Tensor

[\"Country 53\"] -> Tensor

[\"Country 54\"] -> Tensor

[\"Country 55\"] -> Tensor

[\"Country 56\"] -> Tensor

[\"Country 57\"] -> Tensor

[\"Country 58\"] -> Tensor

[\"Country 59\"] -> Tensor

[\"Country 60\"] -> Tensor

[\"Country 61\"] -> Tensor

[\"Country 62\"] -> Tensor

[\"Country 63\"] -> Tensor

[\"Country 64\"] -> Tensor

[\"Country 65\"] -> Tensor

[\"Country 66\"] -> Tensor

[\"Country 67\"] -> Tensor

[\"Country 68\"] -> Tensor

[\"Country 69\"] -> Tensor

[\"Country 70\"] -> Tensor

[\"Country 71\"] -> Tensor

[\"Country 72\"] -> Tensor

[\"Country 73\"] -> Tensor

[\"Country 74\"] -> Tensor

[\"Country 75\"] -> Tensor

[\"Country 76\"] -> Tensor

[\"Country 77\"] -> Tensor

[\"Country 78\"] -> Tensor

[\"Country 79\"] -> Tensor

[\"Country 80\"] -> Tensor

[\"Country 81\"] -> Tensor

[\"Country 82\"] -> Tensor

[\"Country 83\"] -> Tensor

[\"Country 84\"] -> Tensor

[\"Country 85\"] -> Tensor

[\"Country 86\"] -> Tensor

[\"Country 87\"] -> Tensor

[\"Country 88\"] -> Tensor

[\"Country 89\"] -> Tensor

[\"Country 90\"] -> Tensor

[\"Country 91\"] -> Tensor

[\"Country 92\"] -> Tensor

[\"Country 93\"] -> Tensor

[\"Country 94\"] -> Tensor

[\"Country 95\"] -> Tensor

[\"Country 96\"] -> Tensor

[\"Country 97\"] -> Tensor

[\"Country 98\"] -> Tensor

[\"Country 99\"] -> Tensor

[\"Country 100\"] -> Tensor

[\"Country 101\"] -> Tensor

[\"Country 102\"] -> Tensor

[\"Country 103\"] -> Tensor

[\"Country 104\"] -> Tensor

[\"Country 105\"] -> Tensor

[\"Country 106\"] -> Tensor

[\"Country 107\"] -> Tensor

[\"Country 108\"] -> Tensor

[\"Country 109\"] -> Tensor

[\"Country 110\"] -> Tensor

[\"Country 111\"] -> Tensor

[\"Country 112\"] -> Tensor

[\"Country 113\"] -> Tensor

[\"Country 114\"] -> Tensor

[\"Country 115\"] -> Tensor

[\"Country 116\"] -> Tensor

[\"Country 117\"] -> Tensor

[\"Country 118\"] -> Tensor

[\"Country 119\"] -> Tensor

[\"Country 120\"] -> Tensor

[\"Country 121\"] -> Tensor

[\"Country 122\"] -> Tensor

[\"Country 123\"] -> Tensor

[\"Country 124\"] -> Tensor

[\"Country 125\"] -> Tensor

[\"Country 126\"] -> Tensor

[\"Country 127\"] -> Tensor

[\"Country 128\"] -> Tensor

[\"Country 129\"] -> Tensor

[\"Country 130\"] -> Tensor

[\"Country 131\"] -> Tensor

[\"Country 132\"] -> Tensor

[\"Country 133\"] -> Tensor

[\"Country 134\"] -> Tensor

[\"Country 135\"] -> Tensor

[\"Country 136\"] -> Tensor

[\"Country 137\"] -> Tensor

[\"Country 138\"] -> Tensor

[\"Country 139\"] -> Tensor

[\"Country 140\"] -> Tensor

[\"Country 141\"] -> Tensor

[\"Country 142\"] -> Tensor

[\"Country 143\"] -> Tensor

[\"Country 144\"] -> Tensor

[\"Country 145\"] -> Tensor

[\"Country 146\"] -> Tensor

[\"Country 147\"] -> Tensor

[\"Country 148\"] -> Tensor

[\"Country 149\"] -> Tensor

[\"Country 150\"] -> Tensor

[\"Country 151\"] -> Tensor

[\"Country 152\"] -> Tensor

[\"Country 153\"] -> Tensor

[\"Country 154\"] -> Tensor

[\"Country 155\"] -> Tensor

[\"Country 156\"] -> Tensor

[\"Country 157\"] -> Tensor

[\"Country 158\"] -> Tensor

[\"Country 159\"] -> Tensor

[\"Country 160\"] -> Tensor

[\"Country 161\"] -> Tensor

[\"Country 162\"] -> Tensor

[\"Country 163\"] -> Tensor

[\"Country 164\"] -> Tensor

[\"Country 165\"] -> Tensor

[\"Country 166\"] -> Tensor

[\"Country 167\"] -> Tensor

[\"Country 168\"] -> Tensor

[\"Country 169\"] -> Tensor

[\"Country 170\"] -> Tensor

[\"Country 171\"] -> Tensor

[\"Country 172\"] -> Tensor

[\"Country 173\"] -> Tensor

[\"Country 174\"] -> Tensor

c0f71066-0ca1-4062-a356-bf5793ab9070
[4]COVID19 Cases in 175 countriesWeekly data for an entire year[\"Country 0\"] -> Tensor

[\"Country 1\"] -> Tensor

[\"Country 2\"] -> Tensor

[\"Country 3\"] -> Tensor

[\"Country 4\"] -> Tensor

[\"Country 5\"] -> Tensor

[\"Country 6\"] -> Tensor

[\"Country 7\"] -> Tensor

[\"Country 8\"] -> Tensor

[\"Country 9\"] -> Tensor

[\"Country 10\"] -> Tensor

[\"Country 11\"] -> Tensor

[\"Country 12\"] -> Tensor

[\"Country 13\"] -> Tensor

[\"Country 14\"] -> Tensor

[\"Country 15\"] -> Tensor

[\"Country 16\"] -> Tensor

[\"Country 17\"] -> Tensor

[\"Country 18\"] -> Tensor

[\"Country 19\"] -> Tensor

[\"Country 20\"] -> Tensor

[\"Country 21\"] -> Tensor

[\"Country 22\"] -> Tensor

[\"Country 23\"] -> Tensor

[\"Country 24\"] -> Tensor

[\"Country 25\"] -> Tensor

[\"Country 26\"] -> Tensor

[\"Country 27\"] -> Tensor

[\"Country 28\"] -> Tensor

[\"Country 29\"] -> Tensor

[\"Country 30\"] -> Tensor

[\"Country 31\"] -> Tensor

[\"Country 32\"] -> Tensor

[\"Country 33\"] -> Tensor

[\"Country 34\"] -> Tensor

[\"Country 35\"] -> Tensor

[\"Country 36\"] -> Tensor

[\"Country 37\"] -> Tensor

[\"Country 38\"] -> Tensor

[\"Country 39\"] -> Tensor

[\"Country 40\"] -> Tensor

[\"Country 41\"] -> Tensor

[\"Country 42\"] -> Tensor

[\"Country 43\"] -> Tensor

[\"Country 44\"] -> Tensor

[\"Country 45\"] -> Tensor

[\"Country 46\"] -> Tensor

[\"Country 47\"] -> Tensor

[\"Country 48\"] -> Tensor

[\"Country 49\"] -> Tensor

[\"Country 50\"] -> Tensor

[\"Country 51\"] -> Tensor

[\"Country 52\"] -> Tensor

[\"Country 53\"] -> Tensor

[\"Country 54\"] -> Tensor

[\"Country 55\"] -> Tensor

[\"Country 56\"] -> Tensor

[\"Country 57\"] -> Tensor

[\"Country 58\"] -> Tensor

[\"Country 59\"] -> Tensor

[\"Country 60\"] -> Tensor

[\"Country 61\"] -> Tensor

[\"Country 62\"] -> Tensor

[\"Country 63\"] -> Tensor

[\"Country 64\"] -> Tensor

[\"Country 65\"] -> Tensor

[\"Country 66\"] -> Tensor

[\"Country 67\"] -> Tensor

[\"Country 68\"] -> Tensor

[\"Country 69\"] -> Tensor

[\"Country 70\"] -> Tensor

[\"Country 71\"] -> Tensor

[\"Country 72\"] -> Tensor

[\"Country 73\"] -> Tensor

[\"Country 74\"] -> Tensor

[\"Country 75\"] -> Tensor

[\"Country 76\"] -> Tensor

[\"Country 77\"] -> Tensor

[\"Country 78\"] -> Tensor

[\"Country 79\"] -> Tensor

[\"Country 80\"] -> Tensor

[\"Country 81\"] -> Tensor

[\"Country 82\"] -> Tensor

[\"Country 83\"] -> Tensor

[\"Country 84\"] -> Tensor

[\"Country 85\"] -> Tensor

[\"Country 86\"] -> Tensor

[\"Country 87\"] -> Tensor

[\"Country 88\"] -> Tensor

[\"Country 89\"] -> Tensor

[\"Country 90\"] -> Tensor

[\"Country 91\"] -> Tensor

[\"Country 92\"] -> Tensor

[\"Country 93\"] -> Tensor

[\"Country 94\"] -> Tensor

[\"Country 95\"] -> Tensor

[\"Country 96\"] -> Tensor

[\"Country 97\"] -> Tensor

[\"Country 98\"] -> Tensor

[\"Country 99\"] -> Tensor

[\"Country 100\"] -> Tensor

[\"Country 101\"] -> Tensor

[\"Country 102\"] -> Tensor

[\"Country 103\"] -> Tensor

[\"Country 104\"] -> Tensor

[\"Country 105\"] -> Tensor

[\"Country 106\"] -> Tensor

[\"Country 107\"] -> Tensor

[\"Country 108\"] -> Tensor

[\"Country 109\"] -> Tensor

[\"Country 110\"] -> Tensor

[\"Country 111\"] -> Tensor

[\"Country 112\"] -> Tensor

[\"Country 113\"] -> Tensor

[\"Country 114\"] -> Tensor

[\"Country 115\"] -> Tensor

[\"Country 116\"] -> Tensor

[\"Country 117\"] -> Tensor

[\"Country 118\"] -> Tensor

[\"Country 119\"] -> Tensor

[\"Country 120\"] -> Tensor

[\"Country 121\"] -> Tensor

[\"Country 122\"] -> Tensor

[\"Country 123\"] -> Tensor

[\"Country 124\"] -> Tensor

[\"Country 125\"] -> Tensor

[\"Country 126\"] -> Tensor

[\"Country 127\"] -> Tensor

[\"Country 128\"] -> Tensor

[\"Country 129\"] -> Tensor

[\"Country 130\"] -> Tensor

[\"Country 131\"] -> Tensor

[\"Country 132\"] -> Tensor

[\"Country 133\"] -> Tensor

[\"Country 134\"] -> Tensor

[\"Country 135\"] -> Tensor

[\"Country 136\"] -> Tensor

[\"Country 137\"] -> Tensor

[\"Country 138\"] -> Tensor

[\"Country 139\"] -> Tensor

[\"Country 140\"] -> Tensor

[\"Country 141\"] -> Tensor

[\"Country 142\"] -> Tensor

[\"Country 143\"] -> Tensor

[\"Country 144\"] -> Tensor

[\"Country 145\"] -> Tensor

[\"Country 146\"] -> Tensor

[\"Country 147\"] -> Tensor

[\"Country 148\"] -> Tensor

[\"Country 149\"] -> Tensor

[\"Country 150\"] -> Tensor

[\"Country 151\"] -> Tensor

[\"Country 152\"] -> Tensor

[\"Country 153\"] -> Tensor

[\"Country 154\"] -> Tensor

[\"Country 155\"] -> Tensor

[\"Country 156\"] -> Tensor

[\"Country 157\"] -> Tensor

[\"Country 158\"] -> Tensor

[\"Country 159\"] -> Tensor

[\"Country 160\"] -> Tensor

[\"Country 161\"] -> Tensor

[\"Country 162\"] -> Tensor

[\"Country 163\"] -> Tensor

[\"Country 164\"] -> Tensor

[\"Country 165\"] -> Tensor

[\"Country 166\"] -> Tensor

[\"Country 167\"] -> Tensor

[\"Country 168\"] -> Tensor

[\"Country 169\"] -> Tensor

[\"Country 170\"] -> Tensor

[\"Country 171\"] -> Tensor

[\"Country 172\"] -> Tensor

[\"Country 173\"] -> Tensor

[\"Country 174\"] -> Tensor

f1e37695-43f1-4d44-9242-b0d62391e406
\n", - "\n", - " " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "domain_node.datasets" ] From c5fc01a91ac88a923f4ac479358ac55a8781043c Mon Sep 17 00:00:00 2001 From: Valerio Maggio Date: Wed, 17 Nov 2021 15:37:56 +0000 Subject: [PATCH 4/5] FIX typo in Annotation w/ Syft part to get Country0 data after inplace --- L3_DataPreparation.ipynb | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/L3_DataPreparation.ipynb b/L3_DataPreparation.ipynb index bbc2435..1a1126f 100644 --- a/L3_DataPreparation.ipynb +++ b/L3_DataPreparation.ipynb @@ -109,7 +109,7 @@ { "cell_type": "code", "execution_count": null, - "id": "138e7dc4", + "id": "7aa38f0f", "metadata": {}, "outputs": [], "source": [ @@ -151,7 +151,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7237c140", + "id": "4f3e1c4d", "metadata": {}, "outputs": [], "source": [ @@ -165,7 +165,7 @@ "source": [ "In this dataset, each column corresponds to a country, each row corresponds to a new month where data was collected, and each value in this DataFrame corresponds to the number of COVID19 cases in the country at the start of that month. \n", "\n", - "So for instance, Country 0 had `2280` COVID cases at the start of when this data was collected (row 0), and only 451 when the data was last collected (row 53)." + "So for instance, Country 0 had `2280` COVID cases at the start of when this data was collected (`row 0`), and only `451` when the data was last collected (`row 53`)." ] }, { @@ -272,7 +272,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8acb70cc", + "id": "af5d91b3", "metadata": {}, "outputs": [], "source": [ @@ -574,6 +574,16 @@ "Now, the actual process of annotating data with DP Metadata is pretty straight forward. We start by importing the PySyft library, and then by calling .private() to the end of your Syft Tensor, as shown below:" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "d0e8c7c3", + "metadata": {}, + "outputs": [], + "source": [ + "raw_data.T[0].shape" + ] + }, { "cell_type": "code", "execution_count": null, @@ -584,7 +594,7 @@ "import syft as sy\n", "\n", "# select all of Country 0's data\n", - "country0_data = raw_data[1:, :]\n", + "country0_data = raw_data.T[0]\n", "\n", "# Specify it to be a np.int32 dtype\n", "country0_data = country0_data.astype(np.int32)\n", @@ -608,6 +618,16 @@ "Now that we're familiar with how to do this, let's repeat this process for all the Countries in our dataset." ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "acc669c1", + "metadata": {}, + "outputs": [], + "source": [ + "raw_data.shape[-1]" + ] + }, { "cell_type": "code", "execution_count": null, @@ -625,7 +645,9 @@ " entities.append(new_entity)\n", " \n", " # Add it to the Dataset Dictionary\n", - " dataset[country_name] = sy.Tensor(raw_data[:, i].astype(np.int32)).private(min_val=0, max_val=150000, entities=new_entity)" + " entry = sy.Tensor(raw_data[:, i].astype(np.int32)).private(min_val=0, max_val=150000, \n", + " entities=new_entity)\n", + " dataset[country_name] = entry" ] }, { From 168ac4329075ce1c3b40b67fa51c4fc3ef30eb7e Mon Sep 17 00:00:00 2001 From: Valerio Maggio Date: Wed, 17 Nov 2021 15:45:59 +0000 Subject: [PATCH 5/5] FIX another sneaky bug which considered twice country0 data --- L3_DataPreparation.ipynb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/L3_DataPreparation.ipynb b/L3_DataPreparation.ipynb index 1a1126f..fb7d9a0 100644 --- a/L3_DataPreparation.ipynb +++ b/L3_DataPreparation.ipynb @@ -109,7 +109,7 @@ { "cell_type": "code", "execution_count": null, - "id": "7aa38f0f", + "id": "7b71f450", "metadata": {}, "outputs": [], "source": [ @@ -151,7 +151,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4f3e1c4d", + "id": "09a5662b", "metadata": {}, "outputs": [], "source": [ @@ -272,7 +272,7 @@ { "cell_type": "code", "execution_count": null, - "id": "af5d91b3", + "id": "6d6741b8", "metadata": {}, "outputs": [], "source": [ @@ -577,7 +577,7 @@ { "cell_type": "code", "execution_count": null, - "id": "d0e8c7c3", + "id": "d8f0cd3d", "metadata": {}, "outputs": [], "source": [ @@ -621,7 +621,7 @@ { "cell_type": "code", "execution_count": null, - "id": "acc669c1", + "id": "bc60923b", "metadata": {}, "outputs": [], "source": [ @@ -637,7 +637,7 @@ "source": [ "dataset = {\"Country 0\" : data}\n", "entities = []\n", - "for i in range(raw_data.shape[-1]):\n", + "for i in range(1, raw_data.shape[-1]):\n", " country_name = f\"Country {i}\"\n", " \n", " # Create a new Entity correspoinding to the country and add it to the list\n",