diff --git a/module3/exo3/exercice_sarscov.ipynb b/module3/exo3/exercice_sarscov.ipynb
index c5869ee0c910801361af5661821ada8f8a4f48ec..cd46ffa735ff707039c556586b02795ae0fd83f9 100644
--- a/module3/exo3/exercice_sarscov.ipynb
+++ b/module3/exo3/exercice_sarscov.ipynb
@@ -15,7 +15,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## Téléchargement des données\n",
+ "## Téléchargement et traitement des données\n",
"\n",
"Les données relevées sont stockées dans un fichier. Celles-ci sont à la date du 22 juin 2021."
]
@@ -49,405 +49,13 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 2,
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Province/State | \n",
- " Country/Region | \n",
- " Lat | \n",
- " Long | \n",
- " 1/22/20 | \n",
- " 1/23/20 | \n",
- " 1/24/20 | \n",
- " 1/25/20 | \n",
- " 1/26/20 | \n",
- " 1/27/20 | \n",
- " ... | \n",
- " 6/12/21 | \n",
- " 6/13/21 | \n",
- " 6/14/21 | \n",
- " 6/15/21 | \n",
- " 6/16/21 | \n",
- " 6/17/21 | \n",
- " 6/18/21 | \n",
- " 6/19/21 | \n",
- " 6/20/21 | \n",
- " 6/21/21 | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 119 | \n",
- " French Guiana | \n",
- " France | \n",
- " 3.933900 | \n",
- " -53.125800 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " ... | \n",
- " 25506 | \n",
- " 25506 | \n",
- " 25506 | \n",
- " 25788 | \n",
- " 25950 | \n",
- " 26143 | \n",
- " 26143 | \n",
- " 26143 | \n",
- " 26143 | \n",
- " 26450 | \n",
- "
\n",
- " \n",
- " | 120 | \n",
- " French Polynesia | \n",
- " France | \n",
- " -17.679700 | \n",
- " 149.406800 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " ... | \n",
- " 18930 | \n",
- " 18930 | \n",
- " 18939 | \n",
- " 18947 | \n",
- " 18952 | \n",
- " 18957 | \n",
- " 18963 | \n",
- " 18963 | \n",
- " 18963 | \n",
- " 18972 | \n",
- "
\n",
- " \n",
- " | 121 | \n",
- " Guadeloupe | \n",
- " France | \n",
- " 16.265000 | \n",
- " -61.551000 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " ... | \n",
- " 17108 | \n",
- " 17288 | \n",
- " 17288 | \n",
- " 17288 | \n",
- " 17288 | \n",
- " 17288 | \n",
- " 17288 | \n",
- " 17288 | \n",
- " 17288 | \n",
- " 17427 | \n",
- "
\n",
- " \n",
- " | 122 | \n",
- " Martinique | \n",
- " France | \n",
- " 14.641500 | \n",
- " -61.024200 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " ... | \n",
- " 12060 | \n",
- " 12130 | \n",
- " 12130 | \n",
- " 12130 | \n",
- " 12130 | \n",
- " 12130 | \n",
- " 12130 | \n",
- " 12130 | \n",
- " 12130 | \n",
- " 12199 | \n",
- "
\n",
- " \n",
- " | 123 | \n",
- " Mayotte | \n",
- " France | \n",
- " -12.827500 | \n",
- " 45.166244 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " ... | \n",
- " 19373 | \n",
- " 19373 | \n",
- " 19378 | \n",
- " 19378 | \n",
- " 19378 | \n",
- " 19378 | \n",
- " 19389 | \n",
- " 19389 | \n",
- " 19389 | \n",
- " 19389 | \n",
- "
\n",
- " \n",
- " | 124 | \n",
- " New Caledonia | \n",
- " France | \n",
- " -20.904305 | \n",
- " 165.618042 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " ... | \n",
- " 128 | \n",
- " 128 | \n",
- " 128 | \n",
- " 128 | \n",
- " 128 | \n",
- " 128 | \n",
- " 128 | \n",
- " 128 | \n",
- " 129 | \n",
- " 129 | \n",
- "
\n",
- " \n",
- " | 125 | \n",
- " Reunion | \n",
- " France | \n",
- " -21.115100 | \n",
- " 55.536400 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " ... | \n",
- " 27235 | \n",
- " 27235 | \n",
- " 27235 | \n",
- " 27235 | \n",
- " 28441 | \n",
- " 28441 | \n",
- " 28441 | \n",
- " 28441 | \n",
- " 28441 | \n",
- " 28441 | \n",
- "
\n",
- " \n",
- " | 126 | \n",
- " Saint Barthelemy | \n",
- " France | \n",
- " 17.900000 | \n",
- " -62.833300 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " ... | \n",
- " 1005 | \n",
- " 1005 | \n",
- " 1005 | \n",
- " 1005 | \n",
- " 1005 | \n",
- " 1005 | \n",
- " 1005 | \n",
- " 1005 | \n",
- " 1005 | \n",
- " 1005 | \n",
- "
\n",
- " \n",
- " | 127 | \n",
- " Saint Pierre and Miquelon | \n",
- " France | \n",
- " 46.885200 | \n",
- " -56.315900 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " ... | \n",
- " 25 | \n",
- " 25 | \n",
- " 25 | \n",
- " 25 | \n",
- " 26 | \n",
- " 26 | \n",
- " 26 | \n",
- " 26 | \n",
- " 26 | \n",
- " 26 | \n",
- "
\n",
- " \n",
- " | 128 | \n",
- " St Martin | \n",
- " France | \n",
- " 18.070800 | \n",
- " -63.050100 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " ... | \n",
- " 2040 | \n",
- " 2040 | \n",
- " 2040 | \n",
- " 2040 | \n",
- " 2040 | \n",
- " 2133 | \n",
- " 2133 | \n",
- " 2133 | \n",
- " 2133 | \n",
- " 2133 | \n",
- "
\n",
- " \n",
- " | 129 | \n",
- " Wallis and Futuna | \n",
- " France | \n",
- " -14.293800 | \n",
- " -178.116500 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " ... | \n",
- " 445 | \n",
- " 445 | \n",
- " 445 | \n",
- " 445 | \n",
- " 445 | \n",
- " 445 | \n",
- " 445 | \n",
- " 445 | \n",
- " 445 | \n",
- " 445 | \n",
- "
\n",
- " \n",
- " | 130 | \n",
- " NaN | \n",
- " France | \n",
- " 46.227600 | \n",
- " 2.213700 | \n",
- " 0 | \n",
- " 0 | \n",
- " 2 | \n",
- " 3 | \n",
- " 3 | \n",
- " 3 | \n",
- " ... | \n",
- " 5675604 | \n",
- " 5678209 | \n",
- " 5678893 | \n",
- " 5681846 | \n",
- " 5683536 | \n",
- " 5685387 | \n",
- " 5688557 | \n",
- " 5691181 | \n",
- " 5692996 | \n",
- " 5692968 | \n",
- "
\n",
- " \n",
- "
\n",
- "
12 rows × 521 columns
\n",
- "
"
- ],
- "text/plain": [
- " Province/State Country/Region Lat Long 1/22/20 \\\n",
- "119 French Guiana France 3.933900 -53.125800 0 \n",
- "120 French Polynesia France -17.679700 149.406800 0 \n",
- "121 Guadeloupe France 16.265000 -61.551000 0 \n",
- "122 Martinique France 14.641500 -61.024200 0 \n",
- "123 Mayotte France -12.827500 45.166244 0 \n",
- "124 New Caledonia France -20.904305 165.618042 0 \n",
- "125 Reunion France -21.115100 55.536400 0 \n",
- "126 Saint Barthelemy France 17.900000 -62.833300 0 \n",
- "127 Saint Pierre and Miquelon France 46.885200 -56.315900 0 \n",
- "128 St Martin France 18.070800 -63.050100 0 \n",
- "129 Wallis and Futuna France -14.293800 -178.116500 0 \n",
- "130 NaN France 46.227600 2.213700 0 \n",
- "\n",
- " 1/23/20 1/24/20 1/25/20 1/26/20 1/27/20 ... 6/12/21 6/13/21 \\\n",
- "119 0 0 0 0 0 ... 25506 25506 \n",
- "120 0 0 0 0 0 ... 18930 18930 \n",
- "121 0 0 0 0 0 ... 17108 17288 \n",
- "122 0 0 0 0 0 ... 12060 12130 \n",
- "123 0 0 0 0 0 ... 19373 19373 \n",
- "124 0 0 0 0 0 ... 128 128 \n",
- "125 0 0 0 0 0 ... 27235 27235 \n",
- "126 0 0 0 0 0 ... 1005 1005 \n",
- "127 0 0 0 0 0 ... 25 25 \n",
- "128 0 0 0 0 0 ... 2040 2040 \n",
- "129 0 0 0 0 0 ... 445 445 \n",
- "130 0 2 3 3 3 ... 5675604 5678209 \n",
- "\n",
- " 6/14/21 6/15/21 6/16/21 6/17/21 6/18/21 6/19/21 6/20/21 6/21/21 \n",
- "119 25506 25788 25950 26143 26143 26143 26143 26450 \n",
- "120 18939 18947 18952 18957 18963 18963 18963 18972 \n",
- "121 17288 17288 17288 17288 17288 17288 17288 17427 \n",
- "122 12130 12130 12130 12130 12130 12130 12130 12199 \n",
- "123 19378 19378 19378 19378 19389 19389 19389 19389 \n",
- "124 128 128 128 128 128 128 129 129 \n",
- "125 27235 27235 28441 28441 28441 28441 28441 28441 \n",
- "126 1005 1005 1005 1005 1005 1005 1005 1005 \n",
- "127 25 25 26 26 26 26 26 26 \n",
- "128 2040 2040 2040 2133 2133 2133 2133 2133 \n",
- "129 445 445 445 445 445 445 445 445 \n",
- "130 5678893 5681846 5683536 5685387 5688557 5691181 5692996 5692968 \n",
- "\n",
- "[12 rows x 521 columns]"
- ]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
- "%matplotlib inline\n",
- "import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"\n",
- "raw_data = pd.read_csv(data_file, sep=',')\n",
- "raw_data[raw_data['Country/Region'] == 'France']"
+ "raw_data = pd.read_csv(data_file, sep=',')"
]
},
{
@@ -475,7 +83,7 @@
" 'Japan', 'Korea,South', 'Netherlands', 'Portugal', 'Spain',\n",
" 'United Kingdom', 'US']\n",
"\n",
- "data = raw_data[raw_data['Country/Region'].isin(selectedCountries)]"
+ "selectedData = raw_data[raw_data['Country/Region'].isin(selectedCountries)]"
]
},
{
@@ -489,6 +97,31 @@
"cell_type": "code",
"execution_count": 4,
"metadata": {},
+ "outputs": [],
+ "source": [
+ "dataChina = selectedData[selectedData['Country/Region'] == 'China']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "dataOther = selectedData[selectedData['Province/State'] != selectedData['Province/State']]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "On peut finalement concaténer ces deux jeux de données."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
"outputs": [
{
"data": {
@@ -536,11 +169,35 @@
" \n",
" \n",
" \n",
+ " | 23 | \n",
+ " NaN | \n",
+ " Belgium | \n",
+ " 50.833300 | \n",
+ " 4.469936 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " ... | \n",
+ " 1075765 | \n",
+ " 1076338 | \n",
+ " 1076579 | \n",
+ " 1077087 | \n",
+ " 1077758 | \n",
+ " 1078251 | \n",
+ " 1078251 | \n",
+ " 1079084 | \n",
+ " 1079415 | \n",
+ " 1079640 | \n",
+ "
\n",
+ " \n",
" | 58 | \n",
" Anhui | \n",
" China | \n",
- " 31.8257 | \n",
- " 117.2264 | \n",
+ " 31.825700 | \n",
+ " 117.226400 | \n",
" 1 | \n",
" 9 | \n",
" 15 | \n",
@@ -563,8 +220,8 @@
" 59 | \n",
" Beijing | \n",
" China | \n",
- " 40.1824 | \n",
- " 116.4142 | \n",
+ " 40.182400 | \n",
+ " 116.414200 | \n",
" 14 | \n",
" 22 | \n",
" 36 | \n",
@@ -587,8 +244,8 @@
" 60 | \n",
" Chongqing | \n",
" China | \n",
- " 30.0572 | \n",
- " 107.8740 | \n",
+ " 30.057200 | \n",
+ " 107.874000 | \n",
" 6 | \n",
" 9 | \n",
" 27 | \n",
@@ -611,8 +268,8 @@
" 61 | \n",
" Fujian | \n",
" China | \n",
- " 26.0789 | \n",
- " 117.9874 | \n",
+ " 26.078900 | \n",
+ " 117.987400 | \n",
" 1 | \n",
" 5 | \n",
" 10 | \n",
@@ -635,8 +292,8 @@
" 62 | \n",
" Gansu | \n",
" China | \n",
- " 35.7518 | \n",
- " 104.2861 | \n",
+ " 35.751800 | \n",
+ " 104.286100 | \n",
" 0 | \n",
" 2 | \n",
" 2 | \n",
@@ -659,8 +316,8 @@
" 63 | \n",
" Guangdong | \n",
" China | \n",
- " 23.3417 | \n",
- " 113.4244 | \n",
+ " 23.341700 | \n",
+ " 113.424400 | \n",
" 26 | \n",
" 32 | \n",
" 53 | \n",
@@ -683,8 +340,8 @@
" 64 | \n",
" Guangxi | \n",
" China | \n",
- " 23.8298 | \n",
- " 108.7881 | \n",
+ " 23.829800 | \n",
+ " 108.788100 | \n",
" 2 | \n",
" 5 | \n",
" 23 | \n",
@@ -707,8 +364,8 @@
" 65 | \n",
" Guizhou | \n",
" China | \n",
- " 26.8154 | \n",
- " 106.8748 | \n",
+ " 26.815400 | \n",
+ " 106.874800 | \n",
" 1 | \n",
" 3 | \n",
" 3 | \n",
@@ -731,8 +388,8 @@
" 66 | \n",
" Hainan | \n",
" China | \n",
- " 19.1959 | \n",
- " 109.7453 | \n",
+ " 19.195900 | \n",
+ " 109.745300 | \n",
" 4 | \n",
" 5 | \n",
" 8 | \n",
@@ -755,8 +412,8 @@
" 67 | \n",
" Hebei | \n",
" China | \n",
- " 39.5490 | \n",
- " 116.1306 | \n",
+ " 39.549000 | \n",
+ " 116.130600 | \n",
" 1 | \n",
" 1 | \n",
" 2 | \n",
@@ -779,8 +436,8 @@
" 68 | \n",
" Heilongjiang | \n",
" China | \n",
- " 47.8620 | \n",
- " 127.7615 | \n",
+ " 47.862000 | \n",
+ " 127.761500 | \n",
" 0 | \n",
" 2 | \n",
" 4 | \n",
@@ -803,8 +460,8 @@
" 69 | \n",
" Henan | \n",
" China | \n",
- " 37.8957 | \n",
- " 114.9042 | \n",
+ " 37.895700 | \n",
+ " 114.904200 | \n",
" 5 | \n",
" 5 | \n",
" 9 | \n",
@@ -827,8 +484,8 @@
" 70 | \n",
" Hong Kong | \n",
" China | \n",
- " 22.3000 | \n",
- " 114.2000 | \n",
+ " 22.300000 | \n",
+ " 114.200000 | \n",
" 0 | \n",
" 2 | \n",
" 2 | \n",
@@ -851,8 +508,8 @@
" 71 | \n",
" Hubei | \n",
" China | \n",
- " 30.9756 | \n",
- " 112.2707 | \n",
+ " 30.975600 | \n",
+ " 112.270700 | \n",
" 444 | \n",
" 444 | \n",
" 549 | \n",
@@ -875,8 +532,8 @@
" 72 | \n",
" Hunan | \n",
" China | \n",
- " 27.6104 | \n",
- " 111.7088 | \n",
+ " 27.610400 | \n",
+ " 111.708800 | \n",
" 4 | \n",
" 9 | \n",
" 24 | \n",
@@ -899,8 +556,8 @@
" 73 | \n",
" Inner Mongolia | \n",
" China | \n",
- " 44.0935 | \n",
- " 113.9448 | \n",
+ " 44.093500 | \n",
+ " 113.944800 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
@@ -923,8 +580,8 @@
" 74 | \n",
" Jiangsu | \n",
" China | \n",
- " 32.9711 | \n",
- " 119.4550 | \n",
+ " 32.971100 | \n",
+ " 119.455000 | \n",
" 1 | \n",
" 5 | \n",
" 9 | \n",
@@ -947,8 +604,8 @@
" 75 | \n",
" Jiangxi | \n",
" China | \n",
- " 27.6140 | \n",
- " 115.7221 | \n",
+ " 27.614000 | \n",
+ " 115.722100 | \n",
" 2 | \n",
" 7 | \n",
" 18 | \n",
@@ -971,8 +628,8 @@
" 76 | \n",
" Jilin | \n",
" China | \n",
- " 43.6661 | \n",
- " 126.1923 | \n",
+ " 43.666100 | \n",
+ " 126.192300 | \n",
" 0 | \n",
" 1 | \n",
" 3 | \n",
@@ -995,8 +652,8 @@
" 77 | \n",
" Liaoning | \n",
" China | \n",
- " 41.2956 | \n",
- " 122.6085 | \n",
+ " 41.295600 | \n",
+ " 122.608500 | \n",
" 2 | \n",
" 3 | \n",
" 4 | \n",
@@ -1019,8 +676,8 @@
" 78 | \n",
" Macau | \n",
" China | \n",
- " 22.1667 | \n",
- " 113.5500 | \n",
+ " 22.166700 | \n",
+ " 113.550000 | \n",
" 1 | \n",
" 2 | \n",
" 2 | \n",
@@ -1043,8 +700,8 @@
" 79 | \n",
" Ningxia | \n",
" China | \n",
- " 37.2692 | \n",
- " 106.1655 | \n",
+ " 37.269200 | \n",
+ " 106.165500 | \n",
" 1 | \n",
" 1 | \n",
" 2 | \n",
@@ -1067,8 +724,8 @@
" 80 | \n",
" Qinghai | \n",
" China | \n",
- " 35.7452 | \n",
- " 95.9956 | \n",
+ " 35.745200 | \n",
+ " 95.995600 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
@@ -1091,8 +748,8 @@
" 81 | \n",
" Shaanxi | \n",
" China | \n",
- " 35.1917 | \n",
- " 108.8701 | \n",
+ " 35.191700 | \n",
+ " 108.870100 | \n",
" 0 | \n",
" 3 | \n",
" 5 | \n",
@@ -1115,8 +772,8 @@
" 82 | \n",
" Shandong | \n",
" China | \n",
- " 36.3427 | \n",
- " 118.1498 | \n",
+ " 36.342700 | \n",
+ " 118.149800 | \n",
" 2 | \n",
" 6 | \n",
" 15 | \n",
@@ -1139,8 +796,8 @@
" 83 | \n",
" Shanghai | \n",
" China | \n",
- " 31.2020 | \n",
- " 121.4491 | \n",
+ " 31.202000 | \n",
+ " 121.449100 | \n",
" 9 | \n",
" 16 | \n",
" 20 | \n",
@@ -1163,8 +820,8 @@
" 84 | \n",
" Shanxi | \n",
" China | \n",
- " 37.5777 | \n",
- " 112.2922 | \n",
+ " 37.577700 | \n",
+ " 112.292200 | \n",
" 1 | \n",
" 1 | \n",
" 1 | \n",
@@ -1187,8 +844,8 @@
" 85 | \n",
" Sichuan | \n",
" China | \n",
- " 30.6171 | \n",
- " 102.7103 | \n",
+ " 30.617100 | \n",
+ " 102.710300 | \n",
" 5 | \n",
" 8 | \n",
" 15 | \n",
@@ -1211,8 +868,8 @@
" 86 | \n",
" Tianjin | \n",
" China | \n",
- " 39.3054 | \n",
- " 117.3230 | \n",
+ " 39.305400 | \n",
+ " 117.323000 | \n",
" 4 | \n",
" 4 | \n",
" 8 | \n",
@@ -1235,8 +892,8 @@
" 87 | \n",
" Tibet | \n",
" China | \n",
- " 31.6927 | \n",
- " 88.0924 | \n",
+ " 31.692700 | \n",
+ " 88.092400 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
@@ -1283,8 +940,8 @@
" 89 | \n",
" Xinjiang | \n",
" China | \n",
- " 41.1129 | \n",
- " 85.2401 | \n",
+ " 41.112900 | \n",
+ " 85.240100 | \n",
" 0 | \n",
" 2 | \n",
" 2 | \n",
@@ -1307,8 +964,8 @@
" 90 | \n",
" Yunnan | \n",
" China | \n",
- " 24.9740 | \n",
- " 101.4870 | \n",
+ " 24.974000 | \n",
+ " 101.487000 | \n",
" 1 | \n",
" 2 | \n",
" 5 | \n",
@@ -1331,8 +988,8 @@
" 91 | \n",
" Zhejiang | \n",
" China | \n",
- " 29.1832 | \n",
- " 120.0934 | \n",
+ " 29.183200 | \n",
+ " 120.093400 | \n",
" 10 | \n",
" 27 | \n",
" 43 | \n",
@@ -1351,207 +1008,6 @@
" 1379 | \n",
" 1383 | \n",
"
\n",
- " \n",
- "\n",
- "34 rows × 521 columns
\n",
- ""
- ],
- "text/plain": [
- " Province/State Country/Region Lat Long 1/22/20 1/23/20 \\\n",
- "58 Anhui China 31.8257 117.2264 1 9 \n",
- "59 Beijing China 40.1824 116.4142 14 22 \n",
- "60 Chongqing China 30.0572 107.8740 6 9 \n",
- "61 Fujian China 26.0789 117.9874 1 5 \n",
- "62 Gansu China 35.7518 104.2861 0 2 \n",
- "63 Guangdong China 23.3417 113.4244 26 32 \n",
- "64 Guangxi China 23.8298 108.7881 2 5 \n",
- "65 Guizhou China 26.8154 106.8748 1 3 \n",
- "66 Hainan China 19.1959 109.7453 4 5 \n",
- "67 Hebei China 39.5490 116.1306 1 1 \n",
- "68 Heilongjiang China 47.8620 127.7615 0 2 \n",
- "69 Henan China 37.8957 114.9042 5 5 \n",
- "70 Hong Kong China 22.3000 114.2000 0 2 \n",
- "71 Hubei China 30.9756 112.2707 444 444 \n",
- "72 Hunan China 27.6104 111.7088 4 9 \n",
- "73 Inner Mongolia China 44.0935 113.9448 0 0 \n",
- "74 Jiangsu China 32.9711 119.4550 1 5 \n",
- "75 Jiangxi China 27.6140 115.7221 2 7 \n",
- "76 Jilin China 43.6661 126.1923 0 1 \n",
- "77 Liaoning China 41.2956 122.6085 2 3 \n",
- "78 Macau China 22.1667 113.5500 1 2 \n",
- "79 Ningxia China 37.2692 106.1655 1 1 \n",
- "80 Qinghai China 35.7452 95.9956 0 0 \n",
- "81 Shaanxi China 35.1917 108.8701 0 3 \n",
- "82 Shandong China 36.3427 118.1498 2 6 \n",
- "83 Shanghai China 31.2020 121.4491 9 16 \n",
- "84 Shanxi China 37.5777 112.2922 1 1 \n",
- "85 Sichuan China 30.6171 102.7103 5 8 \n",
- "86 Tianjin China 39.3054 117.3230 4 4 \n",
- "87 Tibet China 31.6927 88.0924 0 0 \n",
- "88 Unknown China NaN NaN 0 0 \n",
- "89 Xinjiang China 41.1129 85.2401 0 2 \n",
- "90 Yunnan China 24.9740 101.4870 1 2 \n",
- "91 Zhejiang China 29.1832 120.0934 10 27 \n",
- "\n",
- " 1/24/20 1/25/20 1/26/20 1/27/20 ... 6/12/21 6/13/21 6/14/21 \\\n",
- "58 15 39 60 70 ... 1004 1004 1004 \n",
- "59 36 41 68 80 ... 1069 1070 1071 \n",
- "60 27 57 75 110 ... 598 598 598 \n",
- "61 10 18 35 59 ... 637 637 638 \n",
- "62 2 4 7 14 ... 194 194 194 \n",
- "63 53 78 111 151 ... 2618 2625 2635 \n",
- "64 23 23 36 46 ... 275 275 275 \n",
- "65 3 4 5 7 ... 147 147 147 \n",
- "66 8 19 22 33 ... 188 188 188 \n",
- "67 2 8 13 18 ... 1317 1317 1317 \n",
- "68 4 9 15 21 ... 1612 1612 1612 \n",
- "69 9 32 83 128 ... 1316 1316 1316 \n",
- "70 2 5 8 8 ... 11877 11877 11878 \n",
- "71 549 761 1058 1423 ... 68159 68159 68159 \n",
- "72 24 43 69 100 ... 1051 1051 1051 \n",
- "73 1 7 7 11 ... 390 393 393 \n",
- "74 9 18 33 47 ... 735 736 736 \n",
- "75 18 18 36 72 ... 937 937 937 \n",
- "76 3 4 4 6 ... 573 573 573 \n",
- "77 4 17 21 27 ... 426 426 426 \n",
- "78 2 2 5 6 ... 52 52 52 \n",
- "79 2 3 4 7 ... 76 76 76 \n",
- "80 0 1 1 6 ... 18 18 18 \n",
- "81 5 15 22 35 ... 622 622 622 \n",
- "82 15 27 46 75 ... 883 883 883 \n",
- "83 20 33 40 53 ... 2155 2160 2165 \n",
- "84 1 6 9 13 ... 253 253 253 \n",
- "85 15 28 44 69 ... 1050 1054 1055 \n",
- "86 8 10 14 23 ... 398 398 398 \n",
- "87 0 0 0 0 ... 1 1 1 \n",
- "88 0 0 0 0 ... 0 0 0 \n",
- "89 2 3 4 5 ... 980 980 980 \n",
- "90 5 11 16 26 ... 374 376 377 \n",
- "91 43 62 104 128 ... 1372 1372 1373 \n",
- "\n",
- " 6/15/21 6/16/21 6/17/21 6/18/21 6/19/21 6/20/21 6/21/21 \n",
- "58 1004 1004 1004 1004 1004 1004 1004 \n",
- "59 1071 1072 1072 1073 1073 1075 1075 \n",
- "60 598 598 598 598 598 598 598 \n",
- "61 638 641 646 650 651 652 659 \n",
- "62 194 194 194 194 194 194 194 \n",
- "63 2650 2657 2666 2680 2692 2699 2706 \n",
- "64 275 275 275 275 275 275 275 \n",
- "65 147 147 147 147 147 147 147 \n",
- "66 188 188 188 188 188 188 188 \n",
- "67 1317 1317 1317 1317 1317 1317 1317 \n",
- "68 1612 1612 1612 1612 1612 1612 1612 \n",
- "69 1316 1316 1316 1316 1316 1317 1317 \n",
- "70 11880 11881 11881 11884 11885 11886 11889 \n",
- "71 68159 68160 68160 68160 68160 68160 68160 \n",
- "72 1051 1051 1051 1051 1051 1051 1051 \n",
- "73 393 393 393 393 393 393 394 \n",
- "74 738 739 739 739 739 740 740 \n",
- "75 937 937 937 937 937 937 937 \n",
- "76 573 573 573 573 573 573 573 \n",
- "77 426 426 426 426 426 426 426 \n",
- "78 52 52 52 53 53 53 53 \n",
- "79 76 76 76 76 76 76 76 \n",
- "80 18 18 18 18 18 18 18 \n",
- "81 622 622 622 624 624 624 624 \n",
- "82 883 883 883 883 883 883 883 \n",
- "83 2168 2170 2173 2179 2182 2183 2184 \n",
- "84 253 253 253 253 253 253 253 \n",
- "85 1056 1057 1057 1057 1058 1059 1064 \n",
- "86 398 398 399 399 399 399 399 \n",
- "87 1 1 1 1 1 1 1 \n",
- "88 0 0 0 0 0 0 0 \n",
- "89 980 980 980 980 980 980 980 \n",
- "90 377 380 382 384 388 391 391 \n",
- "91 1373 1373 1376 1377 1379 1379 1383 \n",
- "\n",
- "[34 rows x 521 columns]"
- ]
- },
- "execution_count": 4,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "dataChina = data[data['Country/Region'] == 'China']\n",
- "dataChina"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Province/State | \n",
- " Country/Region | \n",
- " Lat | \n",
- " Long | \n",
- " 1/22/20 | \n",
- " 1/23/20 | \n",
- " 1/24/20 | \n",
- " 1/25/20 | \n",
- " 1/26/20 | \n",
- " 1/27/20 | \n",
- " ... | \n",
- " 6/12/21 | \n",
- " 6/13/21 | \n",
- " 6/14/21 | \n",
- " 6/15/21 | \n",
- " 6/16/21 | \n",
- " 6/17/21 | \n",
- " 6/18/21 | \n",
- " 6/19/21 | \n",
- " 6/20/21 | \n",
- " 6/21/21 | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " | 23 | \n",
- " NaN | \n",
- " Belgium | \n",
- " 50.833300 | \n",
- " 4.469936 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " ... | \n",
- " 1075765 | \n",
- " 1076338 | \n",
- " 1076579 | \n",
- " 1077087 | \n",
- " 1077758 | \n",
- " 1078251 | \n",
- " 1078251 | \n",
- " 1079084 | \n",
- " 1079415 | \n",
- " 1079640 | \n",
- "
\n",
" \n",
" | 130 | \n",
" NaN | \n",
@@ -1794,25 +1250,93 @@
"
\n",
" \n",
"
\n",
- "
11 rows × 521 columns
\n",
+ "
45 rows × 521 columns
\n",
"
"
],
"text/plain": [
- " Province/State Country/Region Lat Long 1/22/20 1/23/20 \\\n",
- "23 NaN Belgium 50.833300 4.469936 0 0 \n",
- "130 NaN France 46.227600 2.213700 0 0 \n",
- "134 NaN Germany 51.165691 10.451526 0 0 \n",
- "149 NaN Iran 32.427908 53.688046 0 0 \n",
- "153 NaN Italy 41.871940 12.567380 0 0 \n",
- "155 NaN Japan 36.204824 138.252924 2 2 \n",
- "197 NaN Netherlands 52.132600 5.291300 0 0 \n",
- "214 NaN Portugal 39.399900 -8.224500 0 0 \n",
- "237 NaN Spain 40.463667 -3.749220 0 0 \n",
- "253 NaN US 40.000000 -100.000000 1 1 \n",
- "268 NaN United Kingdom 55.378100 -3.436000 0 0 \n",
+ " Province/State Country/Region Lat Long 1/22/20 1/23/20 \\\n",
+ "23 NaN Belgium 50.833300 4.469936 0 0 \n",
+ "58 Anhui China 31.825700 117.226400 1 9 \n",
+ "59 Beijing China 40.182400 116.414200 14 22 \n",
+ "60 Chongqing China 30.057200 107.874000 6 9 \n",
+ "61 Fujian China 26.078900 117.987400 1 5 \n",
+ "62 Gansu China 35.751800 104.286100 0 2 \n",
+ "63 Guangdong China 23.341700 113.424400 26 32 \n",
+ "64 Guangxi China 23.829800 108.788100 2 5 \n",
+ "65 Guizhou China 26.815400 106.874800 1 3 \n",
+ "66 Hainan China 19.195900 109.745300 4 5 \n",
+ "67 Hebei China 39.549000 116.130600 1 1 \n",
+ "68 Heilongjiang China 47.862000 127.761500 0 2 \n",
+ "69 Henan China 37.895700 114.904200 5 5 \n",
+ "70 Hong Kong China 22.300000 114.200000 0 2 \n",
+ "71 Hubei China 30.975600 112.270700 444 444 \n",
+ "72 Hunan China 27.610400 111.708800 4 9 \n",
+ "73 Inner Mongolia China 44.093500 113.944800 0 0 \n",
+ "74 Jiangsu China 32.971100 119.455000 1 5 \n",
+ "75 Jiangxi China 27.614000 115.722100 2 7 \n",
+ "76 Jilin China 43.666100 126.192300 0 1 \n",
+ "77 Liaoning China 41.295600 122.608500 2 3 \n",
+ "78 Macau China 22.166700 113.550000 1 2 \n",
+ "79 Ningxia China 37.269200 106.165500 1 1 \n",
+ "80 Qinghai China 35.745200 95.995600 0 0 \n",
+ "81 Shaanxi China 35.191700 108.870100 0 3 \n",
+ "82 Shandong China 36.342700 118.149800 2 6 \n",
+ "83 Shanghai China 31.202000 121.449100 9 16 \n",
+ "84 Shanxi China 37.577700 112.292200 1 1 \n",
+ "85 Sichuan China 30.617100 102.710300 5 8 \n",
+ "86 Tianjin China 39.305400 117.323000 4 4 \n",
+ "87 Tibet China 31.692700 88.092400 0 0 \n",
+ "88 Unknown China NaN NaN 0 0 \n",
+ "89 Xinjiang China 41.112900 85.240100 0 2 \n",
+ "90 Yunnan China 24.974000 101.487000 1 2 \n",
+ "91 Zhejiang China 29.183200 120.093400 10 27 \n",
+ "130 NaN France 46.227600 2.213700 0 0 \n",
+ "134 NaN Germany 51.165691 10.451526 0 0 \n",
+ "149 NaN Iran 32.427908 53.688046 0 0 \n",
+ "153 NaN Italy 41.871940 12.567380 0 0 \n",
+ "155 NaN Japan 36.204824 138.252924 2 2 \n",
+ "197 NaN Netherlands 52.132600 5.291300 0 0 \n",
+ "214 NaN Portugal 39.399900 -8.224500 0 0 \n",
+ "237 NaN Spain 40.463667 -3.749220 0 0 \n",
+ "253 NaN US 40.000000 -100.000000 1 1 \n",
+ "268 NaN United Kingdom 55.378100 -3.436000 0 0 \n",
"\n",
" 1/24/20 1/25/20 1/26/20 1/27/20 ... 6/12/21 6/13/21 \\\n",
"23 0 0 0 0 ... 1075765 1076338 \n",
+ "58 15 39 60 70 ... 1004 1004 \n",
+ "59 36 41 68 80 ... 1069 1070 \n",
+ "60 27 57 75 110 ... 598 598 \n",
+ "61 10 18 35 59 ... 637 637 \n",
+ "62 2 4 7 14 ... 194 194 \n",
+ "63 53 78 111 151 ... 2618 2625 \n",
+ "64 23 23 36 46 ... 275 275 \n",
+ "65 3 4 5 7 ... 147 147 \n",
+ "66 8 19 22 33 ... 188 188 \n",
+ "67 2 8 13 18 ... 1317 1317 \n",
+ "68 4 9 15 21 ... 1612 1612 \n",
+ "69 9 32 83 128 ... 1316 1316 \n",
+ "70 2 5 8 8 ... 11877 11877 \n",
+ "71 549 761 1058 1423 ... 68159 68159 \n",
+ "72 24 43 69 100 ... 1051 1051 \n",
+ "73 1 7 7 11 ... 390 393 \n",
+ "74 9 18 33 47 ... 735 736 \n",
+ "75 18 18 36 72 ... 937 937 \n",
+ "76 3 4 4 6 ... 573 573 \n",
+ "77 4 17 21 27 ... 426 426 \n",
+ "78 2 2 5 6 ... 52 52 \n",
+ "79 2 3 4 7 ... 76 76 \n",
+ "80 0 1 1 6 ... 18 18 \n",
+ "81 5 15 22 35 ... 622 622 \n",
+ "82 15 27 46 75 ... 883 883 \n",
+ "83 20 33 40 53 ... 2155 2160 \n",
+ "84 1 6 9 13 ... 253 253 \n",
+ "85 15 28 44 69 ... 1050 1054 \n",
+ "86 8 10 14 23 ... 398 398 \n",
+ "87 0 0 0 0 ... 1 1 \n",
+ "88 0 0 0 0 ... 0 0 \n",
+ "89 2 3 4 5 ... 980 980 \n",
+ "90 5 11 16 26 ... 374 376 \n",
+ "91 43 62 104 128 ... 1372 1372 \n",
"130 2 3 3 3 ... 5675604 5678209 \n",
"134 0 0 0 1 ... 3722295 3723295 \n",
"149 0 0 0 0 ... 3020522 3028717 \n",
@@ -1826,6 +1350,40 @@
"\n",
" 6/14/21 6/15/21 6/16/21 6/17/21 6/18/21 6/19/21 6/20/21 \\\n",
"23 1076579 1077087 1077758 1078251 1078251 1079084 1079415 \n",
+ "58 1004 1004 1004 1004 1004 1004 1004 \n",
+ "59 1071 1071 1072 1072 1073 1073 1075 \n",
+ "60 598 598 598 598 598 598 598 \n",
+ "61 638 638 641 646 650 651 652 \n",
+ "62 194 194 194 194 194 194 194 \n",
+ "63 2635 2650 2657 2666 2680 2692 2699 \n",
+ "64 275 275 275 275 275 275 275 \n",
+ "65 147 147 147 147 147 147 147 \n",
+ "66 188 188 188 188 188 188 188 \n",
+ "67 1317 1317 1317 1317 1317 1317 1317 \n",
+ "68 1612 1612 1612 1612 1612 1612 1612 \n",
+ "69 1316 1316 1316 1316 1316 1316 1317 \n",
+ "70 11878 11880 11881 11881 11884 11885 11886 \n",
+ "71 68159 68159 68160 68160 68160 68160 68160 \n",
+ "72 1051 1051 1051 1051 1051 1051 1051 \n",
+ "73 393 393 393 393 393 393 393 \n",
+ "74 736 738 739 739 739 739 740 \n",
+ "75 937 937 937 937 937 937 937 \n",
+ "76 573 573 573 573 573 573 573 \n",
+ "77 426 426 426 426 426 426 426 \n",
+ "78 52 52 52 52 53 53 53 \n",
+ "79 76 76 76 76 76 76 76 \n",
+ "80 18 18 18 18 18 18 18 \n",
+ "81 622 622 622 622 624 624 624 \n",
+ "82 883 883 883 883 883 883 883 \n",
+ "83 2165 2168 2170 2173 2179 2182 2183 \n",
+ "84 253 253 253 253 253 253 253 \n",
+ "85 1055 1056 1057 1057 1057 1058 1059 \n",
+ "86 398 398 398 399 399 399 399 \n",
+ "87 1 1 1 1 1 1 1 \n",
+ "88 0 0 0 0 0 0 0 \n",
+ "89 980 980 980 980 980 980 980 \n",
+ "90 377 377 380 382 384 388 391 \n",
+ "91 1373 1373 1373 1376 1377 1379 1379 \n",
"130 5678893 5681846 5683536 5685387 5688557 5691181 5692996 \n",
"134 3724168 3725328 3726767 3727668 3728601 3729597 3730126 \n",
"149 3039432 3049648 3060135 3070426 3080526 3086974 3095135 \n",
@@ -1839,6 +1397,40 @@
"\n",
" 6/21/21 \n",
"23 1079640 \n",
+ "58 1004 \n",
+ "59 1075 \n",
+ "60 598 \n",
+ "61 659 \n",
+ "62 194 \n",
+ "63 2706 \n",
+ "64 275 \n",
+ "65 147 \n",
+ "66 188 \n",
+ "67 1317 \n",
+ "68 1612 \n",
+ "69 1317 \n",
+ "70 11889 \n",
+ "71 68160 \n",
+ "72 1051 \n",
+ "73 394 \n",
+ "74 740 \n",
+ "75 937 \n",
+ "76 573 \n",
+ "77 426 \n",
+ "78 53 \n",
+ "79 76 \n",
+ "80 18 \n",
+ "81 624 \n",
+ "82 883 \n",
+ "83 2184 \n",
+ "84 253 \n",
+ "85 1064 \n",
+ "86 399 \n",
+ "87 1 \n",
+ "88 0 \n",
+ "89 980 \n",
+ "90 391 \n",
+ "91 1383 \n",
"130 5692968 \n",
"134 3730619 \n",
"149 3105620 \n",
@@ -1850,17 +1442,113 @@
"253 33554275 \n",
"268 4640507 \n",
"\n",
- "[11 rows x 521 columns]"
+ "[45 rows x 521 columns]"
]
},
- "execution_count": 7,
+ "execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "dataOther = data[data['Province/State'] != data['Province/State']]\n",
- "dataOther"
+ "data = pd.concat([dataOther, dataChina]).sort_index()\n",
+ "data"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "On remarque d'ailleurs, pour la Chine (`index 88`), une ligne vide sans intérêt pour la suit de nos travaux car pleine de *zéros* ; on la supprime."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data = data.drop([88])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Visualisation des données\n",
+ "\n",
+ "On cherche à visualiser le nombre cumulé de cas à chaque date disponible.\n",
+ "Présentons dans un premier temps les données telles qu'elles."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# Extraction des dates, lieux et nombre de cas cumulés\n",
+ "dates = data.keys()[4:] # Dates\n",
+ "place = data.get_values()[:,:2] # [Province , Country]\n",
+ "cases = data.get_values()[:,4:] # Cas"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Reformattons les noms des différents pays/régions pour plus de lisibilité. Passons ainsi du format\n",
+ " `[Province, Country]`\n",
+ "au format\n",
+ " `[Country (-Province?)]`\n",
+ "où l'on ne précise la province que si c'est nécessaire."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def convert_location_names(place) :\n",
+ " places = []\n",
+ " for i in range(len(place)) :\n",
+ " newDate = place[i,1]\n",
+ " # Cas où la province est spécifiée (non- 'NaN')\n",
+ " if not place[i,0] != place[i,0] :\n",
+ " newDate = newDate + \" - \" + place[i,0]\n",
+ " places.append(newDate)\n",
+ " return places\n",
+ "place = convert_location_names(place) # Attention à ne pas réexécuter plusieurs fois cette cellule"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "for i,p in enumerate(place) :\n",
+ " plt.plot(dates, cases[i,:], label=p)\n",
+ "# On ne montre pas toutes les dates pour plus de lisibilité\n",
+ "\n",
+ "plt.show()"
]
},
{