{ "cells": [ { "cell_type": "markdown", "id": "000a7223-da02-46ae-9bbe-a4dbdc07e255", "metadata": {}, "source": [ "# Analysing real data sets\n", "\n", "Let's take a look at some of the analysis and visualisation functionality built into `pandas`. We will work with a real dataset. The dataset describes COVID-19 cases, hosptialisation and deaths in the Netherlands between Feb and Nov 2020. The dataset is part of a larger public dataset published under a CC-BY 4.0 license. To see the source follow the link below:\n", "\n", "> De Bruin, J, Voorvaart, R, Menger, V, Kocken, I, & Phil, T. (2020). Novel Coronavirus (COVID-19) Cases in The Netherlands (Version v2020.11.17) [Data set]. Zenodo. http://doi.org/10.5281/zenodo.4278891\n", "\n", "We will use this dataset to put into practice some of existing `pandas` skills and also learn a few new tools to help us understand and visualise the data.\n", "\n", "The first actions we will take are importing `numpy` and `pandas`, read in the dataset and have a look at the `DataFrame` information." ] }, { "cell_type": "code", "execution_count": null, "id": "27f31890-ad31-484c-a268-ee64d4e4d345", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 1, "id": "d8409c42-59cc-46c9-8537-477e79426fb5", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "id": "3ef63a6f-db0b-41e8-8f7d-94a734f6ac6b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 10335 entries, 0 to 10334\n", "Data columns (total 6 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Datum 10335 non-null object \n", " 1 Provincienaam 9540 non-null object \n", " 2 Provinciecode 10335 non-null int64 \n", " 3 Type 10335 non-null object \n", " 4 Aantal 9906 non-null float64\n", " 5 AantalCumulatief 9945 non-null float64\n", "dtypes: float64(2), int64(1), object(3)\n", "memory usage: 484.6+ KB\n" ] } ], "source": [ "DATA_URL = 'https://raw.githubusercontent.com/health-data-science-OR/' \\\n", " + 'hpdm139-datasets/main/RIVM_NL_provincial.csv'\n", "neth_covid = pd.read_csv(DATA_URL)\n", "neth_covid.info()" ] }, { "cell_type": "markdown", "id": "4006ff89-078a-45e5-b179-8a16062a2e95", "metadata": {}, "source": [ "The meta data summary of the `Dataframe` provides useful information. Firstly, we can see that a number of fields have missing data. Secondly, the column names are in Dutch. \n", "\n", "* Datum = date\n", "* Provincienaam = Province name e.g. 'Gronigen'\n", "* Provinciecode = Province code integer\n", "* Aantal = number \n", "* AantalCumulatief = cumulative number\n", "\n", "Let's take a peek at the head and tail of the dataset." ] }, { "cell_type": "code", "execution_count": 3, "id": "569833f8-3dcf-49f3-a612-1a664bcdb8e4", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DatumProvincienaamProvinciecodeTypeAantalAantalCumulatief
02020-02-27NaN-1OverledenNaNNaN
12020-02-27NaN-1TotaalNaN0.0
22020-02-27NaN-1ZiekenhuisopnameNaNNaN
32020-02-27Groningen20OverledenNaNNaN
42020-02-27Groningen20TotaalNaN0.0
\n", "
" ], "text/plain": [ " Datum Provincienaam Provinciecode Type Aantal \\\n", "0 2020-02-27 NaN -1 Overleden NaN \n", "1 2020-02-27 NaN -1 Totaal NaN \n", "2 2020-02-27 NaN -1 Ziekenhuisopname NaN \n", "3 2020-02-27 Groningen 20 Overleden NaN \n", "4 2020-02-27 Groningen 20 Totaal NaN \n", "\n", " AantalCumulatief \n", "0 NaN \n", "1 0.0 \n", "2 NaN \n", "3 NaN \n", "4 0.0 " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "neth_covid.head()" ] }, { "cell_type": "code", "execution_count": 4, "id": "7cee0f1f-b5df-48a7-92b8-3426145c7380", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DatumProvincienaamProvinciecodeTypeAantalAantalCumulatief
103302020-11-17Noord-Brabant30Totaal847.071925.0
103312020-11-17Noord-Brabant30Ziekenhuisopname7.03319.0
103322020-11-17Limburg31Overleden0.0842.0
103332020-11-17Limburg31Totaal266.021253.0
103342020-11-17Limburg31Ziekenhuisopname2.01743.0
\n", "
" ], "text/plain": [ " Datum Provincienaam Provinciecode Type Aantal \\\n", "10330 2020-11-17 Noord-Brabant 30 Totaal 847.0 \n", "10331 2020-11-17 Noord-Brabant 30 Ziekenhuisopname 7.0 \n", "10332 2020-11-17 Limburg 31 Overleden 0.0 \n", "10333 2020-11-17 Limburg 31 Totaal 266.0 \n", "10334 2020-11-17 Limburg 31 Ziekenhuisopname 2.0 \n", "\n", " AantalCumulatief \n", "10330 71925.0 \n", "10331 3319.0 \n", "10332 842.0 \n", "10333 21253.0 \n", "10334 1743.0 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "neth_covid.tail()" ] }, { "cell_type": "markdown", "id": "04d41f2e-7a0d-4934-8974-7463f6f8aa8f", "metadata": {}, "source": [ "Our peeking has again revealed some useful information. \n", "\n", "* `Provincienaam` is `NaN` (Not a Number i.e. missing) when the reporting the overall totals across all provinces.\n", "* `Aantal` and `AantalCumulatief` record `NaN` in early parts of the pandemic dataset when no cases are being reported. \n", "* `Type` is a categorical column with three categories in Dutch. Approximate translations are:\n", " * Totaal = total (positive cases)\n", " * Ziekenhuisopname = hospital admissions\n", " * Overleden = deaths attributable to COVID19\n", "\n", "## A slight clean-up of the dataset\n", "\n", "Now that we have had a look at the raw data let's use `pandas` perform a small clean-up operation that will make our life much easier when we get to analysis. We will firstly break this procedure down into discrete steps and pull that together is a function. I'll then show you an alternative cool way of organising your `pandas` using **method chaining**. \n", "\n", "### Translating Dutch Column Names and Categories to English\n", "\n", "Let's translate the header columns first. That's relatively simple as we just replace the list of existing headers with their translations. We will also update `type` to `metric` as that is more descriptive of the data that the column actually holds." ] }, { "cell_type": "code", "execution_count": 5, "id": "7fe9077e-dc3d-487a-b877-4e5bbce6da05", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
dateprovinceprovince_codemetricnn_cum
02020-02-27NaN-1OverledenNaNNaN
12020-02-27NaN-1TotaalNaN0.0
22020-02-27NaN-1ZiekenhuisopnameNaNNaN
32020-02-27Groningen20OverledenNaNNaN
42020-02-27Groningen20TotaalNaN0.0
\n", "
" ], "text/plain": [ " date province province_code metric n n_cum\n", "0 2020-02-27 NaN -1 Overleden NaN NaN\n", "1 2020-02-27 NaN -1 Totaal NaN 0.0\n", "2 2020-02-27 NaN -1 Ziekenhuisopname NaN NaN\n", "3 2020-02-27 Groningen 20 Overleden NaN NaN\n", "4 2020-02-27 Groningen 20 Totaal NaN 0.0" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "translated_names = {'Datum':'date', \n", " 'Provincienaam':'province', \n", " 'Provinciecode':'province_code', \n", " 'Type':'metric', \n", " 'Aantal':'n', \n", " 'AantalCumulatief':'n_cum'}\n", "\n", "neth_covid = neth_covid.rename(columns=translated_names)\n", "neth_covid.head()" ] }, { "cell_type": "markdown", "id": "d200ba07-32f2-4ba9-a306-2f80c892fd9c", "metadata": {}, "source": [ "To recode the `metric` column we can use the `.apply()` method. This applies a function to each row in the `Dataframe`. It only makes sense to do this for the `metric` column so we need to be careful about what data we pass in." ] }, { "cell_type": "code", "execution_count": 6, "id": "6e42f777-4951-44c0-90dd-99fcc58d1fcd", "metadata": {}, "outputs": [], "source": [ "# this is a tiered dict {col_name:{dutch key :english value}}\n", "translations = {'metric': {'Overleden':'deaths',\n", " 'Totaal':'total_cases',\n", " 'Ziekenhuisopname':'hosp_admit'}}\n", "\n", "neth_covid = neth_covid.replace(translations)" ] }, { "cell_type": "code", "execution_count": 7, "id": "f2f8be5e-92e6-40c1-9842-7a8dde9159b8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
dateprovinceprovince_codemetricnn_cum
02020-02-27NaN-1deathsNaNNaN
12020-02-27NaN-1total_casesNaN0.0
22020-02-27NaN-1hosp_admitNaNNaN
32020-02-27Groningen20deathsNaNNaN
42020-02-27Groningen20total_casesNaN0.0
\n", "
" ], "text/plain": [ " date province province_code metric n n_cum\n", "0 2020-02-27 NaN -1 deaths NaN NaN\n", "1 2020-02-27 NaN -1 total_cases NaN 0.0\n", "2 2020-02-27 NaN -1 hosp_admit NaN NaN\n", "3 2020-02-27 Groningen 20 deaths NaN NaN\n", "4 2020-02-27 Groningen 20 total_cases NaN 0.0" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "neth_covid.head()" ] }, { "cell_type": "markdown", "id": "02fbf515-5c60-4042-8ef9-8ed22ed37da3", "metadata": {}, "source": [ "### Recoding `NaN`" ] }, { "cell_type": "markdown", "id": "510847b9-da88-4e1e-a358-7aafc59543b9", "metadata": {}, "source": [ "The early case numbers are set to `NaN` as opposed to zero. The column `province` is always `NaN` when it is reporting the total for all provinces. Let's update that to `overall`.\n", "\n", "To do this we can make use of the `.fillna` method. We can replace the different fields in one go by passing in a dict that contains a list of column name keys and replacement values" ] }, { "cell_type": "code", "execution_count": 8, "id": "21dfe2fb-1058-4fc9-bd78-e3203ded4ff1", "metadata": {}, "outputs": [], "source": [ "recoding = {'n': 0, 'n_cum': 0, 'province': 'overall'}\n", "neth_covid = neth_covid.fillna(value=recoding)" ] }, { "cell_type": "code", "execution_count": 9, "id": "1e631267-765e-4512-a56b-1aa3dfe6426d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
dateprovinceprovince_codemetricnn_cum
02020-02-27overall-1deaths0.00.0
12020-02-27overall-1total_cases0.00.0
22020-02-27overall-1hosp_admit0.00.0
32020-02-27Groningen20deaths0.00.0
42020-02-27Groningen20total_cases0.00.0
\n", "
" ], "text/plain": [ " date province province_code metric n n_cum\n", "0 2020-02-27 overall -1 deaths 0.0 0.0\n", "1 2020-02-27 overall -1 total_cases 0.0 0.0\n", "2 2020-02-27 overall -1 hosp_admit 0.0 0.0\n", "3 2020-02-27 Groningen 20 deaths 0.0 0.0\n", "4 2020-02-27 Groningen 20 total_cases 0.0 0.0" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "neth_covid.head()" ] }, { "cell_type": "markdown", "id": "c55ea87e-294c-41a5-9419-815d7a630bd5", "metadata": {}, "source": [ "### Correcting the data type of columns\n", "\n", "The changes we want to make are:\n", "\n", "1. Convert `n` and `n_cum` from floats to integer data types (as it is count data)\n", "2. Set`date` to a proper data time field.\n", "3. Set `metric` to a `Categorical` field (as it only contains three types of category).\n", "\n", "> Why bother setting `metric` to have the `Categorical` datatype? For one thing it slightly reduces memory requirements. But for me the main benefit is that it tells another third party code, particularly code that is used for plotting, that the field is categorical and should be treated differently.\n", "\n", "For casting data types a `pandas.Dataframe` includes the `.astype` method. This accepts a dict that contains column name keys and datatype values. Here we will cast to `np.int32`. The function returns an updated copy of the dataframe." ] }, { "cell_type": "code", "execution_count": 10, "id": "919a0876-cb7d-4d95-b35e-aea10be055b6", "metadata": {}, "outputs": [], "source": [ "# change datatype of column\n", "neth_covid = neth_covid.astype({'n': np.int32, 'n_cum': np.int32})" ] }, { "cell_type": "markdown", "id": "440599d1-b16b-4fe9-a867-aa26096a89e4", "metadata": {}, "source": [ "We can deal with the `date` and `metric` columns in one step using the `.assign` method. The method creates new columns, but you can also use it to overwrite existing ones. The syntax might take a bit of getting used to if you are unfamiliar with **lambda expressions** in python.\n", "\n", "For those who are unfamilar a lambda expression is an annoymous function: a function without a name. Typically they are very simple and used inline within some other code. For example, here is a annoymous function with parameters `a` and `b` that returns the product. \n", "\n", "```python\n", ">>> (lambda a, b: a * b)(5, 2)\n", "```\n", "```\n", "10\n", "```\n", "\n", "> Note that the parameters come before the semi-colon and the function logic afterwards.\n", "\n", "But like normal functions they are first class objects:\n", "\n", "```python\n", ">>> func = (lambda a, b: a * b)\n", ">>> # some other operations and code\n", ">>> func(5, 2)\n", "```\n", "```\n", "10\n", "```\n", "\n", "For our purposes in `pandas` we can use it to create a new column. Here the parameter `x` is actually the `Dataframe`. So to access the `date` column we use `x['date']` rather than `neth_covid['date']`.\n", "\n", "```python\n", "neth_covid = neth_covid.assign(date=lambda x: pd.to_datetime(x['date']))\n", "```\n", "\n", "To `assign` more than one colunm add another annoymous function. The below overwrites `date` and `metric` with updated columns based on the old values. \n", "\n", "> If we wanted to create new columns we would use a different column name." ] }, { "cell_type": "code", "execution_count": 11, "id": "5056c1cb-5f0b-4da0-8809-7d19e9a6e1b4", "metadata": {}, "outputs": [], "source": [ "neth_covid = neth_covid.assign(date=lambda x: pd.to_datetime(x['date']),\n", " metric=lambda x: pd.Categorical(x['metric'])) " ] }, { "cell_type": "code", "execution_count": 12, "id": "27acc125-7b93-4e78-a5bc-a2ad51489857", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
dateprovinceprovince_codemetricnn_cum
103302020-11-17Noord-Brabant30total_cases84771925
103312020-11-17Noord-Brabant30hosp_admit73319
103322020-11-17Limburg31deaths0842
103332020-11-17Limburg31total_cases26621253
103342020-11-17Limburg31hosp_admit21743
\n", "
" ], "text/plain": [ " date province province_code metric n n_cum\n", "10330 2020-11-17 Noord-Brabant 30 total_cases 847 71925\n", "10331 2020-11-17 Noord-Brabant 30 hosp_admit 7 3319\n", "10332 2020-11-17 Limburg 31 deaths 0 842\n", "10333 2020-11-17 Limburg 31 total_cases 266 21253\n", "10334 2020-11-17 Limburg 31 hosp_admit 2 1743" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "neth_covid.tail()" ] }, { "cell_type": "markdown", "id": "6750e6ef-f62d-4b60-ada2-af2d5d9884ad", "metadata": {}, "source": [ "### Pulling it together in a single function" ] }, { "cell_type": "markdown", "id": "317bc28d-076a-4386-b53a-5f6d5d8d3402", "metadata": {}, "source": [ "In summary, we have put together a simple dataset cleaning process in `pandas`. Let's tidy up our code and put it all in a single function." ] }, { "cell_type": "code", "execution_count": 13, "id": "74cdcb2a-31a7-4454-8b6a-3bd91fba2c32", "metadata": {}, "outputs": [], "source": [ "def clean_covid_dataset(csv_path):\n", " '''\n", " Helper function to clean the netherlands covid dataset.\n", " \n", " Params:\n", " ------\n", " csv_path: str\n", " Path or URL to Comman Seperated Value file containing Dutch Covid data.\n", " \n", " Returns:\n", " -------\n", " pd.Dataframe\n", " Cleaned Covid19 dataset.\n", " '''\n", " translated_names = {'Datum':'date', \n", " 'Provincienaam':'province', \n", " 'Provinciecode':'province_code', \n", " 'Type':'metric', \n", " 'Aantal':'n', \n", " 'AantalCumulatief':'n_cum'}\n", "\n", " translated_metrics = {'metric': {'Overleden':'deaths',\n", " 'Totaal':'total_cases',\n", " 'Ziekenhuisopname':'hosp_admit'}}\n", " df = pd.read_csv(csv_path)\n", " df = df.rename(columns=translated_names)\n", " df = df.replace(translated_metrics)\n", " df = df.fillna(value={'n': 0, 'n_cum': 0, 'province': 'overall'})\n", " df = df.astype({'n': np.int32, 'n_cum': np.int32})\n", " df = df.assign(date=lambda x: pd.to_datetime(x['date']),\n", " metric=lambda x: pd.Categorical(x['metric'])) \n", " return df" ] }, { "cell_type": "code", "execution_count": 14, "id": "a5ba6c5c-1072-4547-a24d-086025b4b6cb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 10335 entries, 0 to 10334\n", "Data columns (total 6 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 date 10335 non-null datetime64[ns]\n", " 1 province 10335 non-null object \n", " 2 province_code 10335 non-null int64 \n", " 3 metric 10335 non-null category \n", " 4 n 10335 non-null int32 \n", " 5 n_cum 10335 non-null int32 \n", "dtypes: category(1), datetime64[ns](1), int32(2), int64(1), object(1)\n", "memory usage: 333.3+ KB\n" ] } ], "source": [ "# test\n", "neth_covid = clean_covid_dataset(DATA_URL)\n", "neth_covid.info()" ] }, { "cell_type": "markdown", "id": "8c8c55ec-c5c0-460f-bb90-2d1bc3a9820c", "metadata": {}, "source": [ "### Method chaining implementation\n", "\n", "The above solution for cleaning the dataset works fine. However, we can modify our code slightly and (depending on who you ask) make it more elegant and readable using **method chaining**. \n", "\n", "You should notice a pattern in our original `clean_covid_dataset` function. We repeatedly perform an operation and return a new version of the dataset. For example, \n", "\n", "```python\n", "# read CSV data and return as dataframe\n", "df = pd.read_csv(path)\n", "\n", "# rename columns and return new dataframe\n", "df = df.rename(columns=translated_names)\n", "\n", "# replace dutch with english words and return new dataframe\n", "df = df.replace(translated_metrics)\n", "```\n", "\n", "Method chaining means that we don't need to actually to include the `df = df.` in each line of the code listing above. We would instead replace it with the more elegant\n", "\n", "```python\n", "df = (pd.read_csv(path)\n", " .rename(columns=translated_names)\n", " .replace(translated_metrics)\n", " )\n", "```\n", "\n", "Note that we enclose the chained methods within `(` and `)`. We also don't need to include the `df` infront of `.rename` and `.replace`.\n", "\n", "If we used method chaining our `clean_covid_dataset` function becomes:" ] }, { "cell_type": "code", "execution_count": 15, "id": "2b0e064f-e427-4078-87bb-1b5e96e8d671", "metadata": {}, "outputs": [], "source": [ "def clean_covid_dataset(csv_path):\n", " '''\n", " Helper function to clean the netherlands covid dataset.\n", " \n", " Params:\n", " -------\n", " csv_path: str\n", " Path to Dutch Covid CSV file\n", " ''' \n", " \n", " translated_names = {'Datum':'date', \n", " 'Provincienaam':'province', \n", " 'Provinciecode':'province_code', \n", " 'Type':'metric', \n", " 'Aantal':'n', \n", " 'AantalCumulatief':'n_cum'}\n", "\n", " translated_metrics = {'metric': {'Overleden':'deaths',\n", " 'Totaal':'total_cases',\n", " 'Ziekenhuisopname':'hosp_admit'}}\n", " \n", " # method chaining solution. Can be more readable\n", " df = (pd.read_csv(csv_path)\n", " .rename(columns=translated_names)\n", " .replace(translated_metrics)\n", " .fillna(value={'n': 0, 'n_cum': 0, 'province': 'overall'})\n", " .astype({'n': np.int32, 'n_cum': np.int32})\n", " .assign(date=lambda x: pd.to_datetime(x['date']),\n", " metric=lambda x: pd.Categorical(x['metric']))\n", " )\n", " \n", " return df" ] }, { "cell_type": "code", "execution_count": 16, "id": "3d003ba1-0503-408b-92f5-38c9f4078b64", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
dateprovinceprovince_codemetricnn_cum
02020-02-27overall-1deaths00
12020-02-27overall-1total_cases00
22020-02-27overall-1hosp_admit00
32020-02-27Groningen20deaths00
42020-02-27Groningen20total_cases00
\n", "
" ], "text/plain": [ " date province province_code metric n n_cum\n", "0 2020-02-27 overall -1 deaths 0 0\n", "1 2020-02-27 overall -1 total_cases 0 0\n", "2 2020-02-27 overall -1 hosp_admit 0 0\n", "3 2020-02-27 Groningen 20 deaths 0 0\n", "4 2020-02-27 Groningen 20 total_cases 0 0" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "neth_covid = clean_covid_dataset(DATA_URL)\n", "neth_covid.head()" ] }, { "cell_type": "markdown", "id": "c7eda6bf-b1ae-4473-a123-0ed4260ed018", "metadata": {}, "source": [ "It is up to you how you implement your `pandas`. Personally I think method chaining produces quite readable `pandas` code. Its also less code (I'm a coder and inherently lazy!). But note that both functions are equivalent and do the same thing!" ] }, { "cell_type": "markdown", "id": "878d7ba2-06b9-441c-b2d5-a4131f93196d", "metadata": {}, "source": [ "## Visualising the number of cases over time.\n", "\n", "We will be looking at visualisation in more detail when we introduce `matplotlib`For now we will see how `pandas` includes a high level plotting API for `matplotlib`.\n", "\n", "### But first.... more wrangling! \n", "\n", "The cleaned dataset is in what we might call a tidy or long format. That is there are multiple metric entries per date for each province. We can convert this into a \"wide format\", where each metric has its own column per date and province using the `pivot_table` method. \n", "\n", "> `pivot_table` is quite a powerful function and there are plenty of options of how to use it. I recommend experimenting with it on different dataset. I've always found it useful for tasks similar to the below.\n", "\n", "The code below we convert the metric column into six columns: three columns for `n` (the daily count) and `n_cum` (the cumulative count). We specify that using the `columns` parameter. We are also creating a `MultiIndex` based on `['province', 'province_code','date']`. The order you choose here is important for how data is selected." ] }, { "cell_type": "code", "execution_count": 17, "id": "3bef4223-851d-4f23-ba6d-5801cfe109be", "metadata": {}, "outputs": [], "source": [ "# wide format\n", "wf_covid = neth_covid.pivot_table(columns=['metric'], \n", " index=['province', 'province_code','date'])" ] }, { "cell_type": "code", "execution_count": 18, "id": "93e06f01-a522-41af-ab49-eba95088fcc0", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nn_cum
metricdeathshosp_admittotal_casesdeathshosp_admittotal_cases
provinceprovince_codedate
Drenthe222020-02-27000000
2020-02-28000000
2020-02-29000000
2020-03-01001001
2020-03-02000001
\n", "
" ], "text/plain": [ " n n_cum \\\n", "metric deaths hosp_admit total_cases deaths \n", "province province_code date \n", "Drenthe 22 2020-02-27 0 0 0 0 \n", " 2020-02-28 0 0 0 0 \n", " 2020-02-29 0 0 0 0 \n", " 2020-03-01 0 0 1 0 \n", " 2020-03-02 0 0 0 0 \n", "\n", " \n", "metric hosp_admit total_cases \n", "province province_code date \n", "Drenthe 22 2020-02-27 0 0 \n", " 2020-02-28 0 0 \n", " 2020-02-29 0 0 \n", " 2020-03-01 0 1 \n", " 2020-03-02 0 1 " ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "wf_covid.head()" ] }, { "cell_type": "markdown", "id": "3cc8cbed-d658-495a-8968-2cc7edfd188f", "metadata": {}, "source": [ "What may not be obvious is that we now have a `pandas.Dataframe` with a multi-index. The `.info()` method reveals the details:" ] }, { "cell_type": "code", "execution_count": 19, "id": "03a8ace0-9a1d-4e85-b73e-157035bcb35b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "MultiIndex: 3445 entries, ('Drenthe', 22, Timestamp('2020-02-27 00:00:00')) to ('overall', -1, Timestamp('2020-11-17 00:00:00'))\n", "Data columns (total 6 columns):\n", " # Column Non-Null Count Dtype\n", "--- ------ -------------- -----\n", " 0 (n, deaths) 3445 non-null int32\n", " 1 (n, hosp_admit) 3445 non-null int32\n", " 2 (n, total_cases) 3445 non-null int32\n", " 3 (n_cum, deaths) 3445 non-null int32\n", " 4 (n_cum, hosp_admit) 3445 non-null int32\n", " 5 (n_cum, total_cases) 3445 non-null int32\n", "dtypes: int32(6)\n", "memory usage: 105.8+ KB\n" ] } ], "source": [ "wf_covid.info()" ] }, { "cell_type": "markdown", "id": "2474637b-ff39-4ac9-918e-1fcb0083d2a9", "metadata": {}, "source": [ "Let's take a scenario where we want to select data for the `Groningen` province of the Netherlands. We can do this using `.loc`" ] }, { "cell_type": "code", "execution_count": 20, "id": "6cd8e9c0-3007-4587-aea4-5a764e093c40", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nn_cum
metricdeathshosp_admittotal_casesdeathshosp_admittotal_cases
province_codedate
202020-02-27000000
2020-02-28000000
2020-02-29000000
2020-03-01000000
2020-03-02000000
\n", "
" ], "text/plain": [ " n n_cum \\\n", "metric deaths hosp_admit total_cases deaths hosp_admit \n", "province_code date \n", "20 2020-02-27 0 0 0 0 0 \n", " 2020-02-28 0 0 0 0 0 \n", " 2020-02-29 0 0 0 0 0 \n", " 2020-03-01 0 0 0 0 0 \n", " 2020-03-02 0 0 0 0 0 \n", "\n", " \n", "metric total_cases \n", "province_code date \n", "20 2020-02-27 0 \n", " 2020-02-28 0 \n", " 2020-02-29 0 \n", " 2020-03-01 0 \n", " 2020-03-02 0 " ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# get the groningen data\n", "wf_covid.loc['Groningen'].head()" ] }, { "cell_type": "markdown", "id": "ddbb837f-0aa9-42d9-928c-b15fb4fddc00", "metadata": {}, "source": [ "This gives us the time series for just Groningen. But note that we also have the `province_code` column included. This is the 2nd level of the index - in fact it is redundant here as its value is unique for Groningen. To remove it modify our indexing:" ] }, { "cell_type": "code", "execution_count": 21, "id": "97996493-a588-408d-8dcb-86bd38bcaad7", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nn_cum
metricdeathshosp_admittotal_casesdeathshosp_admittotal_cases
date
2020-02-27000000
2020-02-28000000
2020-02-29000000
2020-03-01000000
2020-03-02000000
\n", "
" ], "text/plain": [ " n n_cum \n", "metric deaths hosp_admit total_cases deaths hosp_admit total_cases\n", "date \n", "2020-02-27 0 0 0 0 0 0\n", "2020-02-28 0 0 0 0 0 0\n", "2020-02-29 0 0 0 0 0 0\n", "2020-03-01 0 0 0 0 0 0\n", "2020-03-02 0 0 0 0 0 0" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# get the groningen data. note that we use 2 keys inside brackets.\n", "wf_covid.loc[('Groningen', 20)].head()" ] }, { "cell_type": "markdown", "id": "83f781cd-2562-4ee9-8865-2f1f4cb9d131", "metadata": {}, "source": [ "columns are also a multi-index and we need to use indexing to narrow down the either the daily or cumulative counts." ] }, { "cell_type": "code", "execution_count": 22, "id": "beba2652-19b8-4232-b11e-5c76c936bf21", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "MultiIndex([( 'n', 'deaths'),\n", " ( 'n', 'hosp_admit'),\n", " ( 'n', 'total_cases'),\n", " ('n_cum', 'deaths'),\n", " ('n_cum', 'hosp_admit'),\n", " ('n_cum', 'total_cases')],\n", " names=[None, 'metric'])" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "wf_covid.loc[('Groningen', 20)].columns" ] }, { "cell_type": "code", "execution_count": 23, "id": "ec4b5d18-393b-4808-813a-bd4a0ec8b48a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
metricdeathshosp_admittotal_cases
date
2020-02-27000
2020-02-28000
2020-02-29000
2020-03-01000
2020-03-02000
\n", "
" ], "text/plain": [ "metric deaths hosp_admit total_cases\n", "date \n", "2020-02-27 0 0 0\n", "2020-02-28 0 0 0\n", "2020-02-29 0 0 0\n", "2020-03-01 0 0 0\n", "2020-03-02 0 0 0" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# get daily cases\n", "wf_covid.loc[('Groningen', 20)]['n'].head()" ] }, { "cell_type": "markdown", "id": "1bb23fd6-eceb-4137-8409-cd75d792622f", "metadata": {}, "source": [ "We can easily plot one or more `Series` in a `Dataframe` by calling the `.plot` method. \n", "\n", "> I tend to think of plot as a kitchen sink method. Its accepts a very large number of **optional** parameters! Check out the documentation [here](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.html). In some ways this is bad practice when designing APIs, but it implementation does turn out to be very handy. \n", "\n", "I would argue that an absolute must is to specify the `figsize`. For example:" ] }, { "cell_type": "code", "execution_count": 24, "id": "3c0e08ff-715b-4edb-8660-4e1e65923baa", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# pandas short hand for plotting daily cases\n", "wf_covid.loc[('Groningen', 20)]['n']['total_cases'].plot(figsize=(12,4))" ] }, { "cell_type": "markdown", "id": "32b8071b-df18-4949-921b-7283c439d8a5", "metadata": {}, "source": [ "With default settings in Jupyter you should see the following above the chart:\n", "```\n", "\n", "```\n", "\n", "This is because `.plot` returns a matplotlib axis object and the text above is the `__repr__`. The object is very useful, but the print out isn't! For now I'll show you a couple of ways to avoid that appearing in your pristine notebooks.\n", "\n", "The first is to assign the axis to a variable. Convention is that the name `ax` is used." ] }, { "cell_type": "code", "execution_count": 25, "id": "77cb8667-e028-44c6-89e5-61d229a6b433", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = wf_covid.loc[('Groningen', 20)]['n']['total_cases'].plot(figsize=(12,4))" ] }, { "cell_type": "markdown", "id": "f46173eb-b1e5-4c3b-a956-9ba79035c90e", "metadata": {}, "source": [ "The second approach is to use a semi-colon after the python statement. I see this used a lot online. I'm always a bit suspicious this is because the author doesn't really understand what is really happening. " ] }, { "cell_type": "code", "execution_count": 26, "id": "c97c0a12-5e20-4fde-b2d6-f121be43ea24", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "wf_covid.loc[('Groningen', 20)]['n']['total_cases'].plot(figsize=(12,4));" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.8" } }, "nbformat": 4, "nbformat_minor": 5 }