Skip to content

Instantly share code, notes, and snippets.

@bartaelterman
Created March 18, 2020 21:58
Show Gist options
  • Save bartaelterman/381961fe4fc98bbdf6b18dc32bdca9da to your computer and use it in GitHub Desktop.
Save bartaelterman/381961fe4fc98bbdf6b18dc32bdca9da to your computer and use it in GitHub Desktop.
COV-19 exploration
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"import altair as alt"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"import datetime"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"!rm time_series_19-covid-Confirmed.csv"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--2020-03-18 21:47:19-- https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Confirmed.csv\n",
"Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.36.133\n",
"Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.36.133|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 72722 (71K) [text/plain]\n",
"Saving to: ‘time_series_19-covid-Confirmed.csv’\n",
"\n",
"time_series_19-covi 100%[===================>] 71.02K --.-KB/s in 0.02s \n",
"\n",
"2020-03-18 21:47:19 (3.33 MB/s) - ‘time_series_19-covid-Confirmed.csv’ saved [72722/72722]\n",
"\n",
"--2020-03-18 21:47:19-- https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Recovered.csv\n",
"Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.36.133\n",
"Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.36.133|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 69976 (68K) [text/plain]\n",
"Saving to: ‘time_series_19-covid-Recovered.csv’\n",
"\n",
"time_series_19-covi 100%[===================>] 68.34K --.-KB/s in 0.02s \n",
"\n",
"2020-03-18 21:47:19 (2.92 MB/s) - ‘time_series_19-covid-Recovered.csv’ saved [69976/69976]\n",
"\n",
"--2020-03-18 21:47:19-- https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Deaths.csv\n",
"Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.36.133\n",
"Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.36.133|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 67723 (66K) [text/plain]\n",
"Saving to: ‘time_series_19-covid-Deaths.csv’\n",
"\n",
"time_series_19-covi 100%[===================>] 66.14K --.-KB/s in 0.02s \n",
"\n",
"2020-03-18 21:47:20 (3.08 MB/s) - ‘time_series_19-covid-Deaths.csv’ saved [67723/67723]\n",
"\n"
]
}
],
"source": [
"!wget https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Confirmed.csv\n",
"!wget https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Recovered.csv\n",
"!wget https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Deaths.csv"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [],
"source": [
"def aggregate_and_transpose_data(ts_data, agg='province'):\n",
" df = ts_data.copy()\n",
" df.drop(['Lat', 'Long'], axis=1, inplace=True)\n",
" if agg == 'province':\n",
" df.drop(['Country/Region'], axis=1, inplace=True)\n",
" region_col = 'Province/State'\n",
" else:\n",
" df.drop(['Province/State'], axis=1, inplace=True)\n",
" df = df.groupby('Country/Region', as_index=False).sum()\n",
" region_col = 'Country/Region'\n",
" df.index = pd.Index(df[region_col])\n",
" df = df.drop([region_col], axis=1).T\n",
" df['time'] = df.index\n",
" df['time'] = pd.to_datetime(df['time'])\n",
" df = df.melt(id_vars=['time'])\n",
" return df"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [],
"source": [
"def merge_confirmed_deaths_recovered(confirmed_df, deaths_df, recovered_df):\n",
" confirmed_df = confirmed_df.rename({'value': 'confirmed'}, axis=1)\n",
" deaths_df = deaths_df.rename({'value': 'deaths'}, axis=1)\n",
" recovered_df = recovered_df.rename({'value': 'recovered'}, axis=1)\n",
" tmp = pd.merge(confirmed_df, deaths_df, on=['time', 'Country/Region'])\n",
" merged = pd.merge(tmp, recovered_df, on=['time', 'Country/Region'])\n",
" return merged"
]
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {},
"outputs": [],
"source": [
"def add_columns(data):\n",
" # get nr of people ill at any time point\n",
" data['currently_ill'] = data['confirmed'] - data['deaths'] - data['recovered']\n",
" # new cases = confirmed today - confirmed yesterday\n",
" out_dfs = []\n",
" groups = data.groupby('Country/Region')\n",
" for name, group in groups:\n",
" country_df = group.copy()\n",
" country_df['confirmed_yesterday'] = country_df['confirmed'].shift(fill_value=0)\n",
" out_dfs.append(country_df)\n",
" data = pd.concat(out_dfs)\n",
" data['new_confirmed'] = data['confirmed'] - data['confirmed_yesterday']\n",
" return data\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"confirmed = pd.read_csv('time_series_19-covid-Confirmed.csv')"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Province/State</th>\n",
" <th>Country/Region</th>\n",
" <th>Lat</th>\n",
" <th>Long</th>\n",
" <th>1/22/20</th>\n",
" <th>1/23/20</th>\n",
" <th>1/24/20</th>\n",
" <th>1/25/20</th>\n",
" <th>1/26/20</th>\n",
" <th>1/27/20</th>\n",
" <th>...</th>\n",
" <th>3/8/20</th>\n",
" <th>3/9/20</th>\n",
" <th>3/10/20</th>\n",
" <th>3/11/20</th>\n",
" <th>3/12/20</th>\n",
" <th>3/13/20</th>\n",
" <th>3/14/20</th>\n",
" <th>3/15/20</th>\n",
" <th>3/16/20</th>\n",
" <th>3/17/20</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>NaN</td>\n",
" <td>Thailand</td>\n",
" <td>15.0000</td>\n",
" <td>101.0000</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>...</td>\n",
" <td>50</td>\n",
" <td>50</td>\n",
" <td>53</td>\n",
" <td>59</td>\n",
" <td>70</td>\n",
" <td>75</td>\n",
" <td>82</td>\n",
" <td>114</td>\n",
" <td>147</td>\n",
" <td>177</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>NaN</td>\n",
" <td>Japan</td>\n",
" <td>36.0000</td>\n",
" <td>138.0000</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>...</td>\n",
" <td>502</td>\n",
" <td>511</td>\n",
" <td>581</td>\n",
" <td>639</td>\n",
" <td>639</td>\n",
" <td>701</td>\n",
" <td>773</td>\n",
" <td>839</td>\n",
" <td>825</td>\n",
" <td>878</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>NaN</td>\n",
" <td>Singapore</td>\n",
" <td>1.2833</td>\n",
" <td>103.8333</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>...</td>\n",
" <td>150</td>\n",
" <td>150</td>\n",
" <td>160</td>\n",
" <td>178</td>\n",
" <td>178</td>\n",
" <td>200</td>\n",
" <td>212</td>\n",
" <td>226</td>\n",
" <td>243</td>\n",
" <td>266</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>NaN</td>\n",
" <td>Nepal</td>\n",
" <td>28.1667</td>\n",
" <td>84.2500</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>NaN</td>\n",
" <td>Malaysia</td>\n",
" <td>2.5000</td>\n",
" <td>112.5000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>...</td>\n",
" <td>99</td>\n",
" <td>117</td>\n",
" <td>129</td>\n",
" <td>149</td>\n",
" <td>149</td>\n",
" <td>197</td>\n",
" <td>238</td>\n",
" <td>428</td>\n",
" <td>566</td>\n",
" <td>673</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 60 columns</p>\n",
"</div>"
],
"text/plain": [
" Province/State Country/Region Lat Long 1/22/20 1/23/20 1/24/20 \\\n",
"0 NaN Thailand 15.0000 101.0000 2 3 5 \n",
"1 NaN Japan 36.0000 138.0000 2 1 2 \n",
"2 NaN Singapore 1.2833 103.8333 0 1 3 \n",
"3 NaN Nepal 28.1667 84.2500 0 0 0 \n",
"4 NaN Malaysia 2.5000 112.5000 0 0 0 \n",
"\n",
" 1/25/20 1/26/20 1/27/20 ... 3/8/20 3/9/20 3/10/20 3/11/20 3/12/20 \\\n",
"0 7 8 8 ... 50 50 53 59 70 \n",
"1 2 4 4 ... 502 511 581 639 639 \n",
"2 3 4 5 ... 150 150 160 178 178 \n",
"3 1 1 1 ... 1 1 1 1 1 \n",
"4 3 4 4 ... 99 117 129 149 149 \n",
"\n",
" 3/13/20 3/14/20 3/15/20 3/16/20 3/17/20 \n",
"0 75 82 114 147 177 \n",
"1 701 773 839 825 878 \n",
"2 200 212 226 243 266 \n",
"3 1 1 1 1 1 \n",
"4 197 238 428 566 673 \n",
"\n",
"[5 rows x 60 columns]"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"confirmed.head()"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"deaths = pd.read_csv('time_series_19-covid-Deaths.csv')"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Province/State</th>\n",
" <th>Country/Region</th>\n",
" <th>Lat</th>\n",
" <th>Long</th>\n",
" <th>1/22/20</th>\n",
" <th>1/23/20</th>\n",
" <th>1/24/20</th>\n",
" <th>1/25/20</th>\n",
" <th>1/26/20</th>\n",
" <th>1/27/20</th>\n",
" <th>...</th>\n",
" <th>3/8/20</th>\n",
" <th>3/9/20</th>\n",
" <th>3/10/20</th>\n",
" <th>3/11/20</th>\n",
" <th>3/12/20</th>\n",
" <th>3/13/20</th>\n",
" <th>3/14/20</th>\n",
" <th>3/15/20</th>\n",
" <th>3/16/20</th>\n",
" <th>3/17/20</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>NaN</td>\n",
" <td>Thailand</td>\n",
" <td>15.0000</td>\n",
" <td>101.0000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>NaN</td>\n",
" <td>Japan</td>\n",
" <td>36.0000</td>\n",
" <td>138.0000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>10</td>\n",
" <td>10</td>\n",
" <td>15</td>\n",
" <td>16</td>\n",
" <td>19</td>\n",
" <td>22</td>\n",
" <td>22</td>\n",
" <td>27</td>\n",
" <td>29</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>NaN</td>\n",
" <td>Singapore</td>\n",
" <td>1.2833</td>\n",
" <td>103.8333</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>NaN</td>\n",
" <td>Nepal</td>\n",
" <td>28.1667</td>\n",
" <td>84.2500</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>NaN</td>\n",
" <td>Malaysia</td>\n",
" <td>2.5000</td>\n",
" <td>112.5000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 60 columns</p>\n",
"</div>"
],
"text/plain": [
" Province/State Country/Region Lat Long 1/22/20 1/23/20 1/24/20 \\\n",
"0 NaN Thailand 15.0000 101.0000 0 0 0 \n",
"1 NaN Japan 36.0000 138.0000 0 0 0 \n",
"2 NaN Singapore 1.2833 103.8333 0 0 0 \n",
"3 NaN Nepal 28.1667 84.2500 0 0 0 \n",
"4 NaN Malaysia 2.5000 112.5000 0 0 0 \n",
"\n",
" 1/25/20 1/26/20 1/27/20 ... 3/8/20 3/9/20 3/10/20 3/11/20 3/12/20 \\\n",
"0 0 0 0 ... 1 1 1 1 1 \n",
"1 0 0 0 ... 6 10 10 15 16 \n",
"2 0 0 0 ... 0 0 0 0 0 \n",
"3 0 0 0 ... 0 0 0 0 0 \n",
"4 0 0 0 ... 0 0 0 0 0 \n",
"\n",
" 3/13/20 3/14/20 3/15/20 3/16/20 3/17/20 \n",
"0 1 1 1 1 1 \n",
"1 19 22 22 27 29 \n",
"2 0 0 0 0 0 \n",
"3 0 0 0 0 0 \n",
"4 0 0 0 0 2 \n",
"\n",
"[5 rows x 60 columns]"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"deaths.head()"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"recovered = pd.read_csv('time_series_19-covid-Recovered.csv')"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Province/State</th>\n",
" <th>Country/Region</th>\n",
" <th>Lat</th>\n",
" <th>Long</th>\n",
" <th>1/22/20</th>\n",
" <th>1/23/20</th>\n",
" <th>1/24/20</th>\n",
" <th>1/25/20</th>\n",
" <th>1/26/20</th>\n",
" <th>1/27/20</th>\n",
" <th>...</th>\n",
" <th>3/8/20</th>\n",
" <th>3/9/20</th>\n",
" <th>3/10/20</th>\n",
" <th>3/11/20</th>\n",
" <th>3/12/20</th>\n",
" <th>3/13/20</th>\n",
" <th>3/14/20</th>\n",
" <th>3/15/20</th>\n",
" <th>3/16/20</th>\n",
" <th>3/17/20</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>NaN</td>\n",
" <td>Thailand</td>\n",
" <td>15.0000</td>\n",
" <td>101.0000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>33</td>\n",
" <td>34</td>\n",
" <td>34</td>\n",
" <td>35</td>\n",
" <td>35</td>\n",
" <td>35</td>\n",
" <td>35</td>\n",
" <td>41</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>NaN</td>\n",
" <td>Japan</td>\n",
" <td>36.0000</td>\n",
" <td>138.0000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>101</td>\n",
" <td>118</td>\n",
" <td>118</td>\n",
" <td>118</td>\n",
" <td>118</td>\n",
" <td>118</td>\n",
" <td>144</td>\n",
" <td>144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>NaN</td>\n",
" <td>Singapore</td>\n",
" <td>1.2833</td>\n",
" <td>103.8333</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>78</td>\n",
" <td>78</td>\n",
" <td>78</td>\n",
" <td>96</td>\n",
" <td>96</td>\n",
" <td>97</td>\n",
" <td>105</td>\n",
" <td>105</td>\n",
" <td>109</td>\n",
" <td>114</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>NaN</td>\n",
" <td>Nepal</td>\n",
" <td>28.1667</td>\n",
" <td>84.2500</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>NaN</td>\n",
" <td>Malaysia</td>\n",
" <td>2.5000</td>\n",
" <td>112.5000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>24</td>\n",
" <td>24</td>\n",
" <td>24</td>\n",
" <td>26</td>\n",
" <td>26</td>\n",
" <td>26</td>\n",
" <td>35</td>\n",
" <td>42</td>\n",
" <td>42</td>\n",
" <td>49</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 60 columns</p>\n",
"</div>"
],
"text/plain": [
" Province/State Country/Region Lat Long 1/22/20 1/23/20 1/24/20 \\\n",
"0 NaN Thailand 15.0000 101.0000 0 0 0 \n",
"1 NaN Japan 36.0000 138.0000 0 0 0 \n",
"2 NaN Singapore 1.2833 103.8333 0 0 0 \n",
"3 NaN Nepal 28.1667 84.2500 0 0 0 \n",
"4 NaN Malaysia 2.5000 112.5000 0 0 0 \n",
"\n",
" 1/25/20 1/26/20 1/27/20 ... 3/8/20 3/9/20 3/10/20 3/11/20 3/12/20 \\\n",
"0 0 2 2 ... 31 31 33 34 34 \n",
"1 0 1 1 ... 76 76 101 118 118 \n",
"2 0 0 0 ... 78 78 78 96 96 \n",
"3 0 0 0 ... 1 1 1 1 1 \n",
"4 0 0 0 ... 24 24 24 26 26 \n",
"\n",
" 3/13/20 3/14/20 3/15/20 3/16/20 3/17/20 \n",
"0 35 35 35 35 41 \n",
"1 118 118 118 144 144 \n",
"2 97 105 105 109 114 \n",
"3 1 1 1 1 1 \n",
"4 26 35 42 42 49 \n",
"\n",
"[5 rows x 60 columns]"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"recovered.head()"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [],
"source": [
"confirmed_tr = aggregate_and_transpose_data(confirmed, agg='country')\n",
"deaths_tr = aggregate_and_transpose_data(deaths, agg='country')\n",
"recovered_tr = aggregate_and_transpose_data(recovered, agg='country')"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {},
"outputs": [],
"source": [
"all_data = merge_confirmed_deaths_recovered(confirmed_tr, deaths_tr, recovered_tr)"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {},
"outputs": [],
"source": [
"all_data = add_columns(all_data)"
]
},
{
"cell_type": "code",
"execution_count": 115,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>time</th>\n",
" <th>Country/Region</th>\n",
" <th>confirmed</th>\n",
" <th>deaths</th>\n",
" <th>recovered</th>\n",
" <th>currently_ill</th>\n",
" <th>confirmed_yesterday</th>\n",
" <th>new_confirmed</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2020-01-22</td>\n",
" <td>Afghanistan</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2020-01-23</td>\n",
" <td>Afghanistan</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2020-01-24</td>\n",
" <td>Afghanistan</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2020-01-25</td>\n",
" <td>Afghanistan</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2020-01-26</td>\n",
" <td>Afghanistan</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" time Country/Region confirmed deaths recovered currently_ill \\\n",
"0 2020-01-22 Afghanistan 0 0 0 0 \n",
"1 2020-01-23 Afghanistan 0 0 0 0 \n",
"2 2020-01-24 Afghanistan 0 0 0 0 \n",
"3 2020-01-25 Afghanistan 0 0 0 0 \n",
"4 2020-01-26 Afghanistan 0 0 0 0 \n",
"\n",
" confirmed_yesterday new_confirmed \n",
"0 0 0 \n",
"1 0 0 \n",
"2 0 0 \n",
"3 0 0 \n",
"4 0 0 "
]
},
"execution_count": 115,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"all_data.head()"
]
},
{
"cell_type": "code",
"execution_count": 116,
"metadata": {},
"outputs": [],
"source": [
"china_data = all_data[all_data['Country/Region'] == 'China']"
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<div id=\"altair-viz-d30cfd7b6b28495ea64c0841e1af28e6\"></div>\n",
"<script type=\"text/javascript\">\n",
" (function(spec, embedOpt){\n",
" const outputDiv = document.getElementById(\"altair-viz-d30cfd7b6b28495ea64c0841e1af28e6\");\n",
" const paths = {\n",
" \"vega\": \"https://cdn.jsdelivr.net/npm//vega@5?noext\",\n",
" \"vega-lib\": \"https://cdn.jsdelivr.net/npm//vega-lib?noext\",\n",
" \"vega-lite\": \"https://cdn.jsdelivr.net/npm//vega-lite@4.0.2?noext\",\n",
" \"vega-embed\": \"https://cdn.jsdelivr.net/npm//vega-embed@6?noext\",\n",
" };\n",
"\n",
" function loadScript(lib) {\n",
" return new Promise(function(resolve, reject) {\n",
" var s = document.createElement('script');\n",
" s.src = paths[lib];\n",
" s.async = true;\n",
" s.onload = () => resolve(paths[lib]);\n",
" s.onerror = () => reject(`Error loading script: ${paths[lib]}`);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" });\n",
" }\n",
"\n",
" function showError(err) {\n",
" outputDiv.innerHTML = `<div class=\"error\" style=\"color:red;\">${err}</div>`;\n",
" throw err;\n",
" }\n",
"\n",
" function displayChart(vegaEmbed) {\n",
" vegaEmbed(outputDiv, spec, embedOpt)\n",
" .catch(err => showError(`Javascript Error: ${err.message}<br>This usually means there's a typo in your chart specification. See the javascript console for the full traceback.`));\n",
" }\n",
"\n",
" if(typeof define === \"function\" && define.amd) {\n",
" requirejs.config({paths});\n",
" require([\"vega-embed\"], displayChart, err => showError(`Error loading script: ${err.message}`));\n",
" } else if (typeof vegaEmbed === \"function\") {\n",
" displayChart(vegaEmbed);\n",
" } else {\n",
" loadScript(\"vega\")\n",
" .then(() => loadScript(\"vega-lite\"))\n",
" .then(() => loadScript(\"vega-embed\"))\n",
" .catch(showError)\n",
" .then(() => displayChart(vegaEmbed));\n",
" }\n",
" })({\"config\": {\"view\": {\"continuousWidth\": 400, \"continuousHeight\": 300}}, \"data\": {\"name\": \"data-b06b54a42802870c40c252caca72d423\"}, \"mark\": \"line\", \"encoding\": {\"x\": {\"type\": \"temporal\", \"field\": \"time\"}, \"y\": {\"type\": \"quantitative\", \"field\": \"currently_ill\"}}, \"$schema\": \"https://vega.github.io/schema/vega-lite/v4.0.2.json\", \"datasets\": {\"data-b06b54a42802870c40c252caca72d423\": [{\"time\": \"2020-01-22T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 548, \"deaths\": 17, \"recovered\": 28, \"currently_ill\": 503, \"confirmed_yesterday\": 0, \"new_confirmed\": 548}, {\"time\": \"2020-01-23T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 643, \"deaths\": 18, \"recovered\": 30, \"currently_ill\": 595, \"confirmed_yesterday\": 548, \"new_confirmed\": 95}, {\"time\": \"2020-01-24T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 920, \"deaths\": 26, \"recovered\": 36, \"currently_ill\": 858, \"confirmed_yesterday\": 643, \"new_confirmed\": 277}, {\"time\": \"2020-01-25T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 1406, \"deaths\": 42, \"recovered\": 39, \"currently_ill\": 1325, \"confirmed_yesterday\": 920, \"new_confirmed\": 486}, {\"time\": \"2020-01-26T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 2075, \"deaths\": 56, \"recovered\": 49, \"currently_ill\": 1970, \"confirmed_yesterday\": 1406, \"new_confirmed\": 669}, {\"time\": \"2020-01-27T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 2877, \"deaths\": 82, \"recovered\": 58, \"currently_ill\": 2737, \"confirmed_yesterday\": 2075, \"new_confirmed\": 802}, {\"time\": \"2020-01-28T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 5509, \"deaths\": 131, \"recovered\": 101, \"currently_ill\": 5277, \"confirmed_yesterday\": 2877, \"new_confirmed\": 2632}, {\"time\": \"2020-01-29T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 6087, \"deaths\": 133, \"recovered\": 120, \"currently_ill\": 5834, \"confirmed_yesterday\": 5509, \"new_confirmed\": 578}, {\"time\": \"2020-01-30T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 8141, \"deaths\": 171, \"recovered\": 135, \"currently_ill\": 7835, \"confirmed_yesterday\": 6087, \"new_confirmed\": 2054}, {\"time\": \"2020-01-31T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 9802, \"deaths\": 213, \"recovered\": 214, \"currently_ill\": 9375, \"confirmed_yesterday\": 8141, \"new_confirmed\": 1661}, {\"time\": \"2020-02-01T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 11891, \"deaths\": 259, \"recovered\": 275, \"currently_ill\": 11357, \"confirmed_yesterday\": 9802, \"new_confirmed\": 2089}, {\"time\": \"2020-02-02T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 16630, \"deaths\": 361, \"recovered\": 463, \"currently_ill\": 15806, \"confirmed_yesterday\": 11891, \"new_confirmed\": 4739}, {\"time\": \"2020-02-03T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 19716, \"deaths\": 425, \"recovered\": 614, \"currently_ill\": 18677, \"confirmed_yesterday\": 16630, \"new_confirmed\": 3086}, {\"time\": \"2020-02-04T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 23707, \"deaths\": 491, \"recovered\": 843, \"currently_ill\": 22373, \"confirmed_yesterday\": 19716, \"new_confirmed\": 3991}, {\"time\": \"2020-02-05T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 27440, \"deaths\": 563, \"recovered\": 1115, \"currently_ill\": 25762, \"confirmed_yesterday\": 23707, \"new_confirmed\": 3733}, {\"time\": \"2020-02-06T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 30587, \"deaths\": 633, \"recovered\": 1477, \"currently_ill\": 28477, \"confirmed_yesterday\": 27440, \"new_confirmed\": 3147}, {\"time\": \"2020-02-07T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 34110, \"deaths\": 718, \"recovered\": 1999, \"currently_ill\": 31393, \"confirmed_yesterday\": 30587, \"new_confirmed\": 3523}, {\"time\": \"2020-02-08T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 36814, \"deaths\": 805, \"recovered\": 2596, \"currently_ill\": 33413, \"confirmed_yesterday\": 34110, \"new_confirmed\": 2704}, {\"time\": \"2020-02-09T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 39829, \"deaths\": 905, \"recovered\": 3219, \"currently_ill\": 35705, \"confirmed_yesterday\": 36814, \"new_confirmed\": 3015}, {\"time\": \"2020-02-10T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 42354, \"deaths\": 1012, \"recovered\": 3918, \"currently_ill\": 37424, \"confirmed_yesterday\": 39829, \"new_confirmed\": 2525}, {\"time\": \"2020-02-11T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 44386, \"deaths\": 1112, \"recovered\": 4636, \"currently_ill\": 38638, \"confirmed_yesterday\": 42354, \"new_confirmed\": 2032}, {\"time\": \"2020-02-12T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 44759, \"deaths\": 1117, \"recovered\": 5082, \"currently_ill\": 38560, \"confirmed_yesterday\": 44386, \"new_confirmed\": 373}, {\"time\": \"2020-02-13T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 59895, \"deaths\": 1369, \"recovered\": 6217, \"currently_ill\": 52309, \"confirmed_yesterday\": 44759, \"new_confirmed\": 15136}, {\"time\": \"2020-02-14T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 66358, \"deaths\": 1521, \"recovered\": 7977, \"currently_ill\": 56860, \"confirmed_yesterday\": 59895, \"new_confirmed\": 6463}, {\"time\": \"2020-02-15T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 68413, \"deaths\": 1663, \"recovered\": 9298, \"currently_ill\": 57452, \"confirmed_yesterday\": 66358, \"new_confirmed\": 2055}, {\"time\": \"2020-02-16T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 70513, \"deaths\": 1766, \"recovered\": 10755, \"currently_ill\": 57992, \"confirmed_yesterday\": 68413, \"new_confirmed\": 2100}, {\"time\": \"2020-02-17T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 72434, \"deaths\": 1864, \"recovered\": 12462, \"currently_ill\": 58108, \"confirmed_yesterday\": 70513, \"new_confirmed\": 1921}, {\"time\": \"2020-02-18T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 74211, \"deaths\": 2003, \"recovered\": 14206, \"currently_ill\": 58002, \"confirmed_yesterday\": 72434, \"new_confirmed\": 1777}, {\"time\": \"2020-02-19T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 74619, \"deaths\": 2116, \"recovered\": 15962, \"currently_ill\": 56541, \"confirmed_yesterday\": 74211, \"new_confirmed\": 408}, {\"time\": \"2020-02-20T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 75077, \"deaths\": 2238, \"recovered\": 18014, \"currently_ill\": 54825, \"confirmed_yesterday\": 74619, \"new_confirmed\": 458}, {\"time\": \"2020-02-21T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 75550, \"deaths\": 2238, \"recovered\": 18704, \"currently_ill\": 54608, \"confirmed_yesterday\": 75077, \"new_confirmed\": 473}, {\"time\": \"2020-02-22T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 77001, \"deaths\": 2443, \"recovered\": 22699, \"currently_ill\": 51859, \"confirmed_yesterday\": 75550, \"new_confirmed\": 1451}, {\"time\": \"2020-02-23T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 77022, \"deaths\": 2445, \"recovered\": 23187, \"currently_ill\": 51390, \"confirmed_yesterday\": 77001, \"new_confirmed\": 21}, {\"time\": \"2020-02-24T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 77241, \"deaths\": 2595, \"recovered\": 25015, \"currently_ill\": 49631, \"confirmed_yesterday\": 77022, \"new_confirmed\": 219}, {\"time\": \"2020-02-25T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 77754, \"deaths\": 2665, \"recovered\": 27676, \"currently_ill\": 47413, \"confirmed_yesterday\": 77241, \"new_confirmed\": 513}, {\"time\": \"2020-02-26T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 78166, \"deaths\": 2717, \"recovered\": 30084, \"currently_ill\": 45365, \"confirmed_yesterday\": 77754, \"new_confirmed\": 412}, {\"time\": \"2020-02-27T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 78600, \"deaths\": 2746, \"recovered\": 32930, \"currently_ill\": 42924, \"confirmed_yesterday\": 78166, \"new_confirmed\": 434}, {\"time\": \"2020-02-28T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 78928, \"deaths\": 2790, \"recovered\": 36329, \"currently_ill\": 39809, \"confirmed_yesterday\": 78600, \"new_confirmed\": 328}, {\"time\": \"2020-02-29T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 79356, \"deaths\": 2837, \"recovered\": 39320, \"currently_ill\": 37199, \"confirmed_yesterday\": 78928, \"new_confirmed\": 428}, {\"time\": \"2020-03-01T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 79932, \"deaths\": 2872, \"recovered\": 42162, \"currently_ill\": 34898, \"confirmed_yesterday\": 79356, \"new_confirmed\": 576}, {\"time\": \"2020-03-02T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 80136, \"deaths\": 2914, \"recovered\": 44854, \"currently_ill\": 32368, \"confirmed_yesterday\": 79932, \"new_confirmed\": 204}, {\"time\": \"2020-03-03T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 80261, \"deaths\": 2947, \"recovered\": 47450, \"currently_ill\": 29864, \"confirmed_yesterday\": 80136, \"new_confirmed\": 125}, {\"time\": \"2020-03-04T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 80386, \"deaths\": 2983, \"recovered\": 50001, \"currently_ill\": 27402, \"confirmed_yesterday\": 80261, \"new_confirmed\": 125}, {\"time\": \"2020-03-05T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 80537, \"deaths\": 3015, \"recovered\": 52292, \"currently_ill\": 25230, \"confirmed_yesterday\": 80386, \"new_confirmed\": 151}, {\"time\": \"2020-03-06T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 80690, \"deaths\": 3044, \"recovered\": 53944, \"currently_ill\": 23702, \"confirmed_yesterday\": 80537, \"new_confirmed\": 153}, {\"time\": \"2020-03-07T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 80770, \"deaths\": 3072, \"recovered\": 55539, \"currently_ill\": 22159, \"confirmed_yesterday\": 80690, \"new_confirmed\": 80}, {\"time\": \"2020-03-08T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 80823, \"deaths\": 3100, \"recovered\": 57388, \"currently_ill\": 20335, \"confirmed_yesterday\": 80770, \"new_confirmed\": 53}, {\"time\": \"2020-03-09T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 80860, \"deaths\": 3123, \"recovered\": 58804, \"currently_ill\": 18933, \"confirmed_yesterday\": 80823, \"new_confirmed\": 37}, {\"time\": \"2020-03-10T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 80887, \"deaths\": 3139, \"recovered\": 60181, \"currently_ill\": 17567, \"confirmed_yesterday\": 80860, \"new_confirmed\": 27}, {\"time\": \"2020-03-11T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 80921, \"deaths\": 3161, \"recovered\": 61644, \"currently_ill\": 16116, \"confirmed_yesterday\": 80887, \"new_confirmed\": 34}, {\"time\": \"2020-03-12T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 80932, \"deaths\": 3172, \"recovered\": 62901, \"currently_ill\": 14859, \"confirmed_yesterday\": 80921, \"new_confirmed\": 11}, {\"time\": \"2020-03-13T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 80945, \"deaths\": 3180, \"recovered\": 64196, \"currently_ill\": 13569, \"confirmed_yesterday\": 80932, \"new_confirmed\": 13}, {\"time\": \"2020-03-14T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 80977, \"deaths\": 3193, \"recovered\": 65660, \"currently_ill\": 12124, \"confirmed_yesterday\": 80945, \"new_confirmed\": 32}, {\"time\": \"2020-03-15T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 81003, \"deaths\": 3203, \"recovered\": 67017, \"currently_ill\": 10783, \"confirmed_yesterday\": 80977, \"new_confirmed\": 26}, {\"time\": \"2020-03-16T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 81033, \"deaths\": 3217, \"recovered\": 67910, \"currently_ill\": 9906, \"confirmed_yesterday\": 81003, \"new_confirmed\": 30}, {\"time\": \"2020-03-17T00:00:00\", \"Country/Region\": \"China\", \"confirmed\": 81058, \"deaths\": 3230, \"recovered\": 68798, \"currently_ill\": 9030, \"confirmed_yesterday\": 81033, \"new_confirmed\": 25}]}}, {\"mode\": \"vega-lite\"});\n",
"</script>"
],
"text/plain": [
"alt.Chart(...)"
]
},
"execution_count": 118,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"alt.Chart(china_data).mark_line().encode(\n",
" x='time:T',\n",
" y='currently_ill:Q'\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {},
"outputs": [],
"source": [
"benelux = ['Belgium', 'Netherlands', 'Luxembourg']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Ill people in the BeNeLux over time"
]
},
{
"cell_type": "code",
"execution_count": 120,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<div id=\"altair-viz-6c05311e74e045798683837fa447f566\"></div>\n",
"<script type=\"text/javascript\">\n",
" (function(spec, embedOpt){\n",
" const outputDiv = document.getElementById(\"altair-viz-6c05311e74e045798683837fa447f566\");\n",
" const paths = {\n",
" \"vega\": \"https://cdn.jsdelivr.net/npm//vega@5?noext\",\n",
" \"vega-lib\": \"https://cdn.jsdelivr.net/npm//vega-lib?noext\",\n",
" \"vega-lite\": \"https://cdn.jsdelivr.net/npm//vega-lite@4.0.2?noext\",\n",
" \"vega-embed\": \"https://cdn.jsdelivr.net/npm//vega-embed@6?noext\",\n",
" };\n",
"\n",
" function loadScript(lib) {\n",
" return new Promise(function(resolve, reject) {\n",
" var s = document.createElement('script');\n",
" s.src = paths[lib];\n",
" s.async = true;\n",
" s.onload = () => resolve(paths[lib]);\n",
" s.onerror = () => reject(`Error loading script: ${paths[lib]}`);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" });\n",
" }\n",
"\n",
" function showError(err) {\n",
" outputDiv.innerHTML = `<div class=\"error\" style=\"color:red;\">${err}</div>`;\n",
" throw err;\n",
" }\n",
"\n",
" function displayChart(vegaEmbed) {\n",
" vegaEmbed(outputDiv, spec, embedOpt)\n",
" .catch(err => showError(`Javascript Error: ${err.message}<br>This usually means there's a typo in your chart specification. See the javascript console for the full traceback.`));\n",
" }\n",
"\n",
" if(typeof define === \"function\" && define.amd) {\n",
" requirejs.config({paths});\n",
" require([\"vega-embed\"], displayChart, err => showError(`Error loading script: ${err.message}`));\n",
" } else if (typeof vegaEmbed === \"function\") {\n",
" displayChart(vegaEmbed);\n",
" } else {\n",
" loadScript(\"vega\")\n",
" .then(() => loadScript(\"vega-lite\"))\n",
" .then(() => loadScript(\"vega-embed\"))\n",
" .catch(showError)\n",
" .then(() => displayChart(vegaEmbed));\n",
" }\n",
" })({\"config\": {\"view\": {\"continuousWidth\": 400, \"continuousHeight\": 300}}, \"data\": {\"name\": \"data-3e94b644dcf43c8dc01fdcb8bec1a59f\"}, \"mark\": \"line\", \"encoding\": {\"color\": {\"type\": \"nominal\", \"field\": \"Country/Region\"}, \"x\": {\"type\": \"temporal\", \"field\": \"time\"}, \"y\": {\"type\": \"quantitative\", \"field\": \"currently_ill\"}}, \"$schema\": \"https://vega.github.io/schema/vega-lite/v4.0.2.json\", \"datasets\": {\"data-3e94b644dcf43c8dc01fdcb8bec1a59f\": [{\"time\": \"2020-01-22T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-23T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-24T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-25T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-26T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-27T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-28T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-29T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-30T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-31T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-01T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-02T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-03T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-04T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 0, \"new_confirmed\": 1}, {\"time\": \"2020-02-05T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-06T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-07T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-08T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-09T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-10T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-11T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-12T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-13T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-14T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-15T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-16T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-17T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-18T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-19T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-20T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-21T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-22T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-23T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-24T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-25T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-26T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-27T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-28T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-29T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-03-01T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 2, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 1}, {\"time\": \"2020-03-02T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 8, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 7, \"confirmed_yesterday\": 2, \"new_confirmed\": 6}, {\"time\": \"2020-03-03T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 13, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 12, \"confirmed_yesterday\": 8, \"new_confirmed\": 5}, {\"time\": \"2020-03-04T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 23, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 22, \"confirmed_yesterday\": 13, \"new_confirmed\": 10}, {\"time\": \"2020-03-05T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 50, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 49, \"confirmed_yesterday\": 23, \"new_confirmed\": 27}, {\"time\": \"2020-03-06T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 109, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 108, \"confirmed_yesterday\": 50, \"new_confirmed\": 59}, {\"time\": \"2020-03-07T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 169, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 168, \"confirmed_yesterday\": 109, \"new_confirmed\": 60}, {\"time\": \"2020-03-08T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 200, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 199, \"confirmed_yesterday\": 169, \"new_confirmed\": 31}, {\"time\": \"2020-03-09T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 239, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 238, \"confirmed_yesterday\": 200, \"new_confirmed\": 39}, {\"time\": \"2020-03-10T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 267, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 266, \"confirmed_yesterday\": 239, \"new_confirmed\": 28}, {\"time\": \"2020-03-11T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 314, \"deaths\": 3, \"recovered\": 1, \"currently_ill\": 310, \"confirmed_yesterday\": 267, \"new_confirmed\": 47}, {\"time\": \"2020-03-12T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 314, \"deaths\": 3, \"recovered\": 1, \"currently_ill\": 310, \"confirmed_yesterday\": 314, \"new_confirmed\": 0}, {\"time\": \"2020-03-13T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 559, \"deaths\": 3, \"recovered\": 1, \"currently_ill\": 555, \"confirmed_yesterday\": 314, \"new_confirmed\": 245}, {\"time\": \"2020-03-14T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 689, \"deaths\": 4, \"recovered\": 1, \"currently_ill\": 684, \"confirmed_yesterday\": 559, \"new_confirmed\": 130}, {\"time\": \"2020-03-15T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 886, \"deaths\": 4, \"recovered\": 1, \"currently_ill\": 881, \"confirmed_yesterday\": 689, \"new_confirmed\": 197}, {\"time\": \"2020-03-16T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1058, \"deaths\": 5, \"recovered\": 1, \"currently_ill\": 1052, \"confirmed_yesterday\": 886, \"new_confirmed\": 172}, {\"time\": \"2020-03-17T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1243, \"deaths\": 10, \"recovered\": 1, \"currently_ill\": 1232, \"confirmed_yesterday\": 1058, \"new_confirmed\": 185}, {\"time\": \"2020-01-22T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-23T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-24T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-25T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-26T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-27T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-28T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-29T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-30T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-31T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-01T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-02T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-03T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-04T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-05T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-06T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-07T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-08T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-09T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-10T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-11T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-12T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-13T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-14T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-15T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-16T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-17T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-18T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-19T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-20T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-21T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-22T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-23T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-24T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-25T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-26T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-27T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-28T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-29T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 0, \"new_confirmed\": 1}, {\"time\": \"2020-03-01T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-03-02T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-03-03T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-03-04T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-03-05T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-03-06T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 2, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 2, \"confirmed_yesterday\": 1, \"new_confirmed\": 1}, {\"time\": \"2020-03-07T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 2, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 2, \"confirmed_yesterday\": 2, \"new_confirmed\": 0}, {\"time\": \"2020-03-08T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 2, \"new_confirmed\": 1}, {\"time\": \"2020-03-09T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-03-10T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 5, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 5, \"confirmed_yesterday\": 3, \"new_confirmed\": 2}, {\"time\": \"2020-03-11T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 7, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 7, \"confirmed_yesterday\": 5, \"new_confirmed\": 2}, {\"time\": \"2020-03-12T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 19, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 19, \"confirmed_yesterday\": 7, \"new_confirmed\": 12}, {\"time\": \"2020-03-13T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 34, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 34, \"confirmed_yesterday\": 19, \"new_confirmed\": 15}, {\"time\": \"2020-03-14T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 51, \"deaths\": 1, \"recovered\": 0, \"currently_ill\": 50, \"confirmed_yesterday\": 34, \"new_confirmed\": 17}, {\"time\": \"2020-03-15T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 59, \"deaths\": 1, \"recovered\": 0, \"currently_ill\": 58, \"confirmed_yesterday\": 51, \"new_confirmed\": 8}, {\"time\": \"2020-03-16T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 77, \"deaths\": 1, \"recovered\": 0, \"currently_ill\": 76, \"confirmed_yesterday\": 59, \"new_confirmed\": 18}, {\"time\": \"2020-03-17T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 140, \"deaths\": 1, \"recovered\": 0, \"currently_ill\": 139, \"confirmed_yesterday\": 77, \"new_confirmed\": 63}, {\"time\": \"2020-01-22T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-23T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-24T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-25T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-26T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-27T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-28T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-29T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-30T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-31T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-01T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-02T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-03T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-04T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-05T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-06T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-07T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-08T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-09T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-10T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-11T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-12T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-13T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-14T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-15T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-16T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-17T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-18T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-19T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-20T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-21T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-22T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-23T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-24T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-25T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-26T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-27T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 0, \"new_confirmed\": 1}, {\"time\": \"2020-02-28T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-29T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 6, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 6, \"confirmed_yesterday\": 1, \"new_confirmed\": 5}, {\"time\": \"2020-03-01T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 10, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 10, \"confirmed_yesterday\": 6, \"new_confirmed\": 4}, {\"time\": \"2020-03-02T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 18, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 18, \"confirmed_yesterday\": 10, \"new_confirmed\": 8}, {\"time\": \"2020-03-03T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 24, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 24, \"confirmed_yesterday\": 18, \"new_confirmed\": 6}, {\"time\": \"2020-03-04T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 38, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 38, \"confirmed_yesterday\": 24, \"new_confirmed\": 14}, {\"time\": \"2020-03-05T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 82, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 82, \"confirmed_yesterday\": 38, \"new_confirmed\": 44}, {\"time\": \"2020-03-06T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 128, \"deaths\": 1, \"recovered\": 0, \"currently_ill\": 127, \"confirmed_yesterday\": 82, \"new_confirmed\": 46}, {\"time\": \"2020-03-07T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 188, \"deaths\": 1, \"recovered\": 0, \"currently_ill\": 187, \"confirmed_yesterday\": 128, \"new_confirmed\": 60}, {\"time\": \"2020-03-08T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 265, \"deaths\": 3, \"recovered\": 0, \"currently_ill\": 262, \"confirmed_yesterday\": 188, \"new_confirmed\": 77}, {\"time\": \"2020-03-09T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 321, \"deaths\": 3, \"recovered\": 0, \"currently_ill\": 318, \"confirmed_yesterday\": 265, \"new_confirmed\": 56}, {\"time\": \"2020-03-10T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 382, \"deaths\": 4, \"recovered\": 0, \"currently_ill\": 378, \"confirmed_yesterday\": 321, \"new_confirmed\": 61}, {\"time\": \"2020-03-11T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 503, \"deaths\": 5, \"recovered\": 0, \"currently_ill\": 498, \"confirmed_yesterday\": 382, \"new_confirmed\": 121}, {\"time\": \"2020-03-12T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 503, \"deaths\": 5, \"recovered\": 0, \"currently_ill\": 498, \"confirmed_yesterday\": 503, \"new_confirmed\": 0}, {\"time\": \"2020-03-13T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 804, \"deaths\": 10, \"recovered\": 0, \"currently_ill\": 794, \"confirmed_yesterday\": 503, \"new_confirmed\": 301}, {\"time\": \"2020-03-14T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 960, \"deaths\": 12, \"recovered\": 2, \"currently_ill\": 946, \"confirmed_yesterday\": 804, \"new_confirmed\": 156}, {\"time\": \"2020-03-15T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 1136, \"deaths\": 20, \"recovered\": 2, \"currently_ill\": 1114, \"confirmed_yesterday\": 960, \"new_confirmed\": 176}, {\"time\": \"2020-03-16T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 1414, \"deaths\": 24, \"recovered\": 2, \"currently_ill\": 1388, \"confirmed_yesterday\": 1136, \"new_confirmed\": 278}, {\"time\": \"2020-03-17T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 1708, \"deaths\": 43, \"recovered\": 2, \"currently_ill\": 1663, \"confirmed_yesterday\": 1414, \"new_confirmed\": 294}]}}, {\"mode\": \"vega-lite\"});\n",
"</script>"
],
"text/plain": [
"alt.Chart(...)"
]
},
"execution_count": 120,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"alt.Chart(all_data[all_data['Country/Region'].apply(lambda x: x in benelux)]).mark_line().encode(\n",
" x='time:T',\n",
" y='currently_ill',\n",
" color='Country/Region'\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Speed of disease spread\n",
"\n",
"Comparing the number of new infections with the number of new infections from the day before."
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<div id=\"altair-viz-09fb0cc8c4cc4be486c0f8d22d35c4a1\"></div>\n",
"<script type=\"text/javascript\">\n",
" (function(spec, embedOpt){\n",
" const outputDiv = document.getElementById(\"altair-viz-09fb0cc8c4cc4be486c0f8d22d35c4a1\");\n",
" const paths = {\n",
" \"vega\": \"https://cdn.jsdelivr.net/npm//vega@5?noext\",\n",
" \"vega-lib\": \"https://cdn.jsdelivr.net/npm//vega-lib?noext\",\n",
" \"vega-lite\": \"https://cdn.jsdelivr.net/npm//vega-lite@4.0.2?noext\",\n",
" \"vega-embed\": \"https://cdn.jsdelivr.net/npm//vega-embed@6?noext\",\n",
" };\n",
"\n",
" function loadScript(lib) {\n",
" return new Promise(function(resolve, reject) {\n",
" var s = document.createElement('script');\n",
" s.src = paths[lib];\n",
" s.async = true;\n",
" s.onload = () => resolve(paths[lib]);\n",
" s.onerror = () => reject(`Error loading script: ${paths[lib]}`);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" });\n",
" }\n",
"\n",
" function showError(err) {\n",
" outputDiv.innerHTML = `<div class=\"error\" style=\"color:red;\">${err}</div>`;\n",
" throw err;\n",
" }\n",
"\n",
" function displayChart(vegaEmbed) {\n",
" vegaEmbed(outputDiv, spec, embedOpt)\n",
" .catch(err => showError(`Javascript Error: ${err.message}<br>This usually means there's a typo in your chart specification. See the javascript console for the full traceback.`));\n",
" }\n",
"\n",
" if(typeof define === \"function\" && define.amd) {\n",
" requirejs.config({paths});\n",
" require([\"vega-embed\"], displayChart, err => showError(`Error loading script: ${err.message}`));\n",
" } else if (typeof vegaEmbed === \"function\") {\n",
" displayChart(vegaEmbed);\n",
" } else {\n",
" loadScript(\"vega\")\n",
" .then(() => loadScript(\"vega-lite\"))\n",
" .then(() => loadScript(\"vega-embed\"))\n",
" .catch(showError)\n",
" .then(() => displayChart(vegaEmbed));\n",
" }\n",
" })({\"config\": {\"view\": {\"continuousWidth\": 400, \"continuousHeight\": 300}}, \"data\": {\"name\": \"data-3e94b644dcf43c8dc01fdcb8bec1a59f\"}, \"mark\": \"line\", \"encoding\": {\"color\": {\"type\": \"nominal\", \"field\": \"Country/Region\"}, \"x\": {\"type\": \"temporal\", \"field\": \"time\"}, \"y\": {\"type\": \"quantitative\", \"field\": \"new_confirmed\"}}, \"$schema\": \"https://vega.github.io/schema/vega-lite/v4.0.2.json\", \"datasets\": {\"data-3e94b644dcf43c8dc01fdcb8bec1a59f\": [{\"time\": \"2020-01-22T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-23T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-24T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-25T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-26T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-27T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-28T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-29T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-30T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-31T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-01T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-02T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-03T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-04T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 0, \"new_confirmed\": 1}, {\"time\": \"2020-02-05T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-06T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-07T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-08T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-09T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-10T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-11T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-12T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-13T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-14T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-15T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-16T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-17T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-18T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-19T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-20T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-21T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-22T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-23T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-24T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-25T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-26T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-27T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-28T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-29T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 0, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-03-01T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 2, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 1}, {\"time\": \"2020-03-02T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 8, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 7, \"confirmed_yesterday\": 2, \"new_confirmed\": 6}, {\"time\": \"2020-03-03T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 13, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 12, \"confirmed_yesterday\": 8, \"new_confirmed\": 5}, {\"time\": \"2020-03-04T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 23, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 22, \"confirmed_yesterday\": 13, \"new_confirmed\": 10}, {\"time\": \"2020-03-05T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 50, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 49, \"confirmed_yesterday\": 23, \"new_confirmed\": 27}, {\"time\": \"2020-03-06T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 109, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 108, \"confirmed_yesterday\": 50, \"new_confirmed\": 59}, {\"time\": \"2020-03-07T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 169, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 168, \"confirmed_yesterday\": 109, \"new_confirmed\": 60}, {\"time\": \"2020-03-08T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 200, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 199, \"confirmed_yesterday\": 169, \"new_confirmed\": 31}, {\"time\": \"2020-03-09T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 239, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 238, \"confirmed_yesterday\": 200, \"new_confirmed\": 39}, {\"time\": \"2020-03-10T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 267, \"deaths\": 0, \"recovered\": 1, \"currently_ill\": 266, \"confirmed_yesterday\": 239, \"new_confirmed\": 28}, {\"time\": \"2020-03-11T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 314, \"deaths\": 3, \"recovered\": 1, \"currently_ill\": 310, \"confirmed_yesterday\": 267, \"new_confirmed\": 47}, {\"time\": \"2020-03-12T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 314, \"deaths\": 3, \"recovered\": 1, \"currently_ill\": 310, \"confirmed_yesterday\": 314, \"new_confirmed\": 0}, {\"time\": \"2020-03-13T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 559, \"deaths\": 3, \"recovered\": 1, \"currently_ill\": 555, \"confirmed_yesterday\": 314, \"new_confirmed\": 245}, {\"time\": \"2020-03-14T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 689, \"deaths\": 4, \"recovered\": 1, \"currently_ill\": 684, \"confirmed_yesterday\": 559, \"new_confirmed\": 130}, {\"time\": \"2020-03-15T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 886, \"deaths\": 4, \"recovered\": 1, \"currently_ill\": 881, \"confirmed_yesterday\": 689, \"new_confirmed\": 197}, {\"time\": \"2020-03-16T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1058, \"deaths\": 5, \"recovered\": 1, \"currently_ill\": 1052, \"confirmed_yesterday\": 886, \"new_confirmed\": 172}, {\"time\": \"2020-03-17T00:00:00\", \"Country/Region\": \"Belgium\", \"confirmed\": 1243, \"deaths\": 10, \"recovered\": 1, \"currently_ill\": 1232, \"confirmed_yesterday\": 1058, \"new_confirmed\": 185}, {\"time\": \"2020-01-22T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-23T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-24T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-25T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-26T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-27T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-28T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-29T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-30T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-31T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-01T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-02T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-03T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-04T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-05T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-06T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-07T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-08T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-09T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-10T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-11T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-12T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-13T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-14T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-15T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-16T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-17T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-18T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-19T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-20T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-21T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-22T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-23T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-24T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-25T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-26T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-27T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-28T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-29T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 0, \"new_confirmed\": 1}, {\"time\": \"2020-03-01T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-03-02T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-03-03T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-03-04T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-03-05T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-03-06T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 2, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 2, \"confirmed_yesterday\": 1, \"new_confirmed\": 1}, {\"time\": \"2020-03-07T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 2, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 2, \"confirmed_yesterday\": 2, \"new_confirmed\": 0}, {\"time\": \"2020-03-08T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 2, \"new_confirmed\": 1}, {\"time\": \"2020-03-09T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-03-10T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 5, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 5, \"confirmed_yesterday\": 3, \"new_confirmed\": 2}, {\"time\": \"2020-03-11T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 7, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 7, \"confirmed_yesterday\": 5, \"new_confirmed\": 2}, {\"time\": \"2020-03-12T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 19, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 19, \"confirmed_yesterday\": 7, \"new_confirmed\": 12}, {\"time\": \"2020-03-13T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 34, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 34, \"confirmed_yesterday\": 19, \"new_confirmed\": 15}, {\"time\": \"2020-03-14T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 51, \"deaths\": 1, \"recovered\": 0, \"currently_ill\": 50, \"confirmed_yesterday\": 34, \"new_confirmed\": 17}, {\"time\": \"2020-03-15T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 59, \"deaths\": 1, \"recovered\": 0, \"currently_ill\": 58, \"confirmed_yesterday\": 51, \"new_confirmed\": 8}, {\"time\": \"2020-03-16T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 77, \"deaths\": 1, \"recovered\": 0, \"currently_ill\": 76, \"confirmed_yesterday\": 59, \"new_confirmed\": 18}, {\"time\": \"2020-03-17T00:00:00\", \"Country/Region\": \"Luxembourg\", \"confirmed\": 140, \"deaths\": 1, \"recovered\": 0, \"currently_ill\": 139, \"confirmed_yesterday\": 77, \"new_confirmed\": 63}, {\"time\": \"2020-01-22T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-23T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-24T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-25T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-26T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-27T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-28T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-29T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-30T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-31T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-01T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-02T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-03T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-04T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-05T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-06T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-07T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-08T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-09T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-10T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-11T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-12T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-13T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-14T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-15T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-16T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-17T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-18T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-19T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-20T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-21T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-22T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-23T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-24T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-25T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-26T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-02-27T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 0, \"new_confirmed\": 1}, {\"time\": \"2020-02-28T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 1, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 1, \"confirmed_yesterday\": 1, \"new_confirmed\": 0}, {\"time\": \"2020-02-29T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 6, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 6, \"confirmed_yesterday\": 1, \"new_confirmed\": 5}, {\"time\": \"2020-03-01T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 10, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 10, \"confirmed_yesterday\": 6, \"new_confirmed\": 4}, {\"time\": \"2020-03-02T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 18, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 18, \"confirmed_yesterday\": 10, \"new_confirmed\": 8}, {\"time\": \"2020-03-03T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 24, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 24, \"confirmed_yesterday\": 18, \"new_confirmed\": 6}, {\"time\": \"2020-03-04T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 38, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 38, \"confirmed_yesterday\": 24, \"new_confirmed\": 14}, {\"time\": \"2020-03-05T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 82, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 82, \"confirmed_yesterday\": 38, \"new_confirmed\": 44}, {\"time\": \"2020-03-06T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 128, \"deaths\": 1, \"recovered\": 0, \"currently_ill\": 127, \"confirmed_yesterday\": 82, \"new_confirmed\": 46}, {\"time\": \"2020-03-07T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 188, \"deaths\": 1, \"recovered\": 0, \"currently_ill\": 187, \"confirmed_yesterday\": 128, \"new_confirmed\": 60}, {\"time\": \"2020-03-08T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 265, \"deaths\": 3, \"recovered\": 0, \"currently_ill\": 262, \"confirmed_yesterday\": 188, \"new_confirmed\": 77}, {\"time\": \"2020-03-09T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 321, \"deaths\": 3, \"recovered\": 0, \"currently_ill\": 318, \"confirmed_yesterday\": 265, \"new_confirmed\": 56}, {\"time\": \"2020-03-10T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 382, \"deaths\": 4, \"recovered\": 0, \"currently_ill\": 378, \"confirmed_yesterday\": 321, \"new_confirmed\": 61}, {\"time\": \"2020-03-11T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 503, \"deaths\": 5, \"recovered\": 0, \"currently_ill\": 498, \"confirmed_yesterday\": 382, \"new_confirmed\": 121}, {\"time\": \"2020-03-12T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 503, \"deaths\": 5, \"recovered\": 0, \"currently_ill\": 498, \"confirmed_yesterday\": 503, \"new_confirmed\": 0}, {\"time\": \"2020-03-13T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 804, \"deaths\": 10, \"recovered\": 0, \"currently_ill\": 794, \"confirmed_yesterday\": 503, \"new_confirmed\": 301}, {\"time\": \"2020-03-14T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 960, \"deaths\": 12, \"recovered\": 2, \"currently_ill\": 946, \"confirmed_yesterday\": 804, \"new_confirmed\": 156}, {\"time\": \"2020-03-15T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 1136, \"deaths\": 20, \"recovered\": 2, \"currently_ill\": 1114, \"confirmed_yesterday\": 960, \"new_confirmed\": 176}, {\"time\": \"2020-03-16T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 1414, \"deaths\": 24, \"recovered\": 2, \"currently_ill\": 1388, \"confirmed_yesterday\": 1136, \"new_confirmed\": 278}, {\"time\": \"2020-03-17T00:00:00\", \"Country/Region\": \"Netherlands\", \"confirmed\": 1708, \"deaths\": 43, \"recovered\": 2, \"currently_ill\": 1663, \"confirmed_yesterday\": 1414, \"new_confirmed\": 294}]}}, {\"mode\": \"vega-lite\"});\n",
"</script>"
],
"text/plain": [
"alt.Chart(...)"
]
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"alt.Chart(all_data[all_data['Country/Region'].apply(lambda x: x in benelux)]).mark_line().encode(\n",
" x='time:T',\n",
" y='new_confirmed',\n",
" color='Country/Region'\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<div id=\"altair-viz-cefe808460e94ff1b67f8602d31b809b\"></div>\n",
"<script type=\"text/javascript\">\n",
" (function(spec, embedOpt){\n",
" const outputDiv = document.getElementById(\"altair-viz-cefe808460e94ff1b67f8602d31b809b\");\n",
" const paths = {\n",
" \"vega\": \"https://cdn.jsdelivr.net/npm//vega@5?noext\",\n",
" \"vega-lib\": \"https://cdn.jsdelivr.net/npm//vega-lib?noext\",\n",
" \"vega-lite\": \"https://cdn.jsdelivr.net/npm//vega-lite@4.0.2?noext\",\n",
" \"vega-embed\": \"https://cdn.jsdelivr.net/npm//vega-embed@6?noext\",\n",
" };\n",
"\n",
" function loadScript(lib) {\n",
" return new Promise(function(resolve, reject) {\n",
" var s = document.createElement('script');\n",
" s.src = paths[lib];\n",
" s.async = true;\n",
" s.onload = () => resolve(paths[lib]);\n",
" s.onerror = () => reject(`Error loading script: ${paths[lib]}`);\n",
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
" });\n",
" }\n",
"\n",
" function showError(err) {\n",
" outputDiv.innerHTML = `<div class=\"error\" style=\"color:red;\">${err}</div>`;\n",
" throw err;\n",
" }\n",
"\n",
" function displayChart(vegaEmbed) {\n",
" vegaEmbed(outputDiv, spec, embedOpt)\n",
" .catch(err => showError(`Javascript Error: ${err.message}<br>This usually means there's a typo in your chart specification. See the javascript console for the full traceback.`));\n",
" }\n",
"\n",
" if(typeof define === \"function\" && define.amd) {\n",
" requirejs.config({paths});\n",
" require([\"vega-embed\"], displayChart, err => showError(`Error loading script: ${err.message}`));\n",
" } else if (typeof vegaEmbed === \"function\") {\n",
" displayChart(vegaEmbed);\n",
" } else {\n",
" loadScript(\"vega\")\n",
" .then(() => loadScript(\"vega-lite\"))\n",
" .then(() => loadScript(\"vega-embed\"))\n",
" .catch(showError)\n",
" .then(() => displayChart(vegaEmbed));\n",
" }\n",
" })({\"config\": {\"view\": {\"continuousWidth\": 400, \"continuousHeight\": 300}}, \"data\": {\"name\": \"data-2aab9424c77c54653f01b0a0838e6799\"}, \"mark\": \"line\", \"encoding\": {\"color\": {\"type\": \"nominal\", \"field\": \"Country/Region\"}, \"x\": {\"type\": \"temporal\", \"field\": \"time\"}, \"y\": {\"type\": \"quantitative\", \"field\": \"new_confirmed\"}}, \"$schema\": \"https://vega.github.io/schema/vega-lite/v4.0.2.json\", \"datasets\": {\"data-2aab9424c77c54653f01b0a0838e6799\": [{\"time\": \"2020-01-22T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-23T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-24T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-25T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-26T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-27T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-28T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-29T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-30T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 0, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 0, \"confirmed_yesterday\": 0, \"new_confirmed\": 0}, {\"time\": \"2020-01-31T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 2, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 2, \"confirmed_yesterday\": 0, \"new_confirmed\": 2}, {\"time\": \"2020-02-01T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 2, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 2, \"confirmed_yesterday\": 2, \"new_confirmed\": 0}, {\"time\": \"2020-02-02T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 2, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 2, \"confirmed_yesterday\": 2, \"new_confirmed\": 0}, {\"time\": \"2020-02-03T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 2, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 2, \"confirmed_yesterday\": 2, \"new_confirmed\": 0}, {\"time\": \"2020-02-04T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 2, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 2, \"confirmed_yesterday\": 2, \"new_confirmed\": 0}, {\"time\": \"2020-02-05T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 2, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 2, \"confirmed_yesterday\": 2, \"new_confirmed\": 0}, {\"time\": \"2020-02-06T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 2, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 2, \"confirmed_yesterday\": 2, \"new_confirmed\": 0}, {\"time\": \"2020-02-07T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 2, \"new_confirmed\": 1}, {\"time\": \"2020-02-08T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-02-09T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-02-10T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-02-11T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-02-12T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-02-13T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-02-14T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-02-15T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-02-16T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-02-17T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-02-18T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-02-19T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-02-20T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3, \"deaths\": 0, \"recovered\": 0, \"currently_ill\": 3, \"confirmed_yesterday\": 3, \"new_confirmed\": 0}, {\"time\": \"2020-02-21T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 20, \"deaths\": 1, \"recovered\": 0, \"currently_ill\": 19, \"confirmed_yesterday\": 3, \"new_confirmed\": 17}, {\"time\": \"2020-02-22T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 62, \"deaths\": 2, \"recovered\": 1, \"currently_ill\": 59, \"confirmed_yesterday\": 20, \"new_confirmed\": 42}, {\"time\": \"2020-02-23T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 155, \"deaths\": 3, \"recovered\": 2, \"currently_ill\": 150, \"confirmed_yesterday\": 62, \"new_confirmed\": 93}, {\"time\": \"2020-02-24T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 229, \"deaths\": 7, \"recovered\": 1, \"currently_ill\": 221, \"confirmed_yesterday\": 155, \"new_confirmed\": 74}, {\"time\": \"2020-02-25T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 322, \"deaths\": 10, \"recovered\": 1, \"currently_ill\": 311, \"confirmed_yesterday\": 229, \"new_confirmed\": 93}, {\"time\": \"2020-02-26T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 453, \"deaths\": 12, \"recovered\": 3, \"currently_ill\": 438, \"confirmed_yesterday\": 322, \"new_confirmed\": 131}, {\"time\": \"2020-02-27T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 655, \"deaths\": 17, \"recovered\": 45, \"currently_ill\": 593, \"confirmed_yesterday\": 453, \"new_confirmed\": 202}, {\"time\": \"2020-02-28T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 888, \"deaths\": 21, \"recovered\": 46, \"currently_ill\": 821, \"confirmed_yesterday\": 655, \"new_confirmed\": 233}, {\"time\": \"2020-02-29T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 1128, \"deaths\": 29, \"recovered\": 46, \"currently_ill\": 1053, \"confirmed_yesterday\": 888, \"new_confirmed\": 240}, {\"time\": \"2020-03-01T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 1694, \"deaths\": 34, \"recovered\": 83, \"currently_ill\": 1577, \"confirmed_yesterday\": 1128, \"new_confirmed\": 566}, {\"time\": \"2020-03-02T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 2036, \"deaths\": 52, \"recovered\": 149, \"currently_ill\": 1835, \"confirmed_yesterday\": 1694, \"new_confirmed\": 342}, {\"time\": \"2020-03-03T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 2502, \"deaths\": 79, \"recovered\": 160, \"currently_ill\": 2263, \"confirmed_yesterday\": 2036, \"new_confirmed\": 466}, {\"time\": \"2020-03-04T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3089, \"deaths\": 107, \"recovered\": 276, \"currently_ill\": 2706, \"confirmed_yesterday\": 2502, \"new_confirmed\": 587}, {\"time\": \"2020-03-05T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 3858, \"deaths\": 148, \"recovered\": 414, \"currently_ill\": 3296, \"confirmed_yesterday\": 3089, \"new_confirmed\": 769}, {\"time\": \"2020-03-06T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 4636, \"deaths\": 197, \"recovered\": 523, \"currently_ill\": 3916, \"confirmed_yesterday\": 3858, \"new_confirmed\": 778}, {\"time\": \"2020-03-07T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 5883, \"deaths\": 233, \"recovered\": 589, \"currently_ill\": 5061, \"confirmed_yesterday\": 4636, \"new_confirmed\": 1247}, {\"time\": \"2020-03-08T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 7375, \"deaths\": 366, \"recovered\": 622, \"currently_ill\": 6387, \"confirmed_yesterday\": 5883, \"new_confirmed\": 1492}, {\"time\": \"2020-03-09T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 9172, \"deaths\": 463, \"recovered\": 724, \"currently_ill\": 7985, \"confirmed_yesterday\": 7375, \"new_confirmed\": 1797}, {\"time\": \"2020-03-10T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 10149, \"deaths\": 631, \"recovered\": 724, \"currently_ill\": 8794, \"confirmed_yesterday\": 9172, \"new_confirmed\": 977}, {\"time\": \"2020-03-11T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 12462, \"deaths\": 827, \"recovered\": 1045, \"currently_ill\": 10590, \"confirmed_yesterday\": 10149, \"new_confirmed\": 2313}, {\"time\": \"2020-03-12T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 12462, \"deaths\": 827, \"recovered\": 1045, \"currently_ill\": 10590, \"confirmed_yesterday\": 12462, \"new_confirmed\": 0}, {\"time\": \"2020-03-13T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 17660, \"deaths\": 1266, \"recovered\": 1439, \"currently_ill\": 14955, \"confirmed_yesterday\": 12462, \"new_confirmed\": 5198}, {\"time\": \"2020-03-14T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 21157, \"deaths\": 1441, \"recovered\": 1966, \"currently_ill\": 17750, \"confirmed_yesterday\": 17660, \"new_confirmed\": 3497}, {\"time\": \"2020-03-15T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 24747, \"deaths\": 1809, \"recovered\": 2335, \"currently_ill\": 20603, \"confirmed_yesterday\": 21157, \"new_confirmed\": 3590}, {\"time\": \"2020-03-16T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 27980, \"deaths\": 2158, \"recovered\": 2749, \"currently_ill\": 23073, \"confirmed_yesterday\": 24747, \"new_confirmed\": 3233}, {\"time\": \"2020-03-17T00:00:00\", \"Country/Region\": \"Italy\", \"confirmed\": 31506, \"deaths\": 2503, \"recovered\": 2941, \"currently_ill\": 26062, \"confirmed_yesterday\": 27980, \"new_confirmed\": 3526}]}}, {\"mode\": \"vega-lite\"});\n",
"</script>"
],
"text/plain": [
"alt.Chart(...)"
]
},
"execution_count": 122,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"alt.Chart(all_data[all_data['Country/Region'] == 'Italy']).mark_line().encode(\n",
" x='time:T',\n",
" y='new_confirmed',\n",
" color='Country/Region'\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.9"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment