DTU Data Story · 2026
A data-driven investigation into how different countries responded to the COVID-19 pandemic — and what the numbers reveal about which strategies actually worked. We compare government response strategies (lockdowns, school closures, travel restrictions, stringency index) against epidemiological outcomes (cases, deaths, excess mortality) across 195 countries.
Live site: https://vichalder.github.io/final_project/
data/
epidemiology.csv # Google COVID-19 Open Data — daily cases, deaths, tests (12.5M rows)
oxford-government-response.csv # Oxford BSG — policy stringency & measures (304K rows)
merged_covid_data.csv # Canonical analysis input (output of Data_cleaning_and_merging.ipynb)
countries.geojson # Country boundaries for choropleth maps
notebooks/
Data_cleaning_and_merging.ipynb # Step 1 — run this first to produce merged_covid_data.csv
Kats_arbejdsfil.ipynb # Global spread and government response visualizations
victors_workfile.ipynb # Interactive choropleth maps (Folium)
Julies_arbejdsfil.ipynb # In progress
data_viewer.ipynb # Utility — explore available location keys
plots/
global_spread.html # Interactive Folium choropleth map
total_deaths_world.html # Plotly global death trends
total_infections_world.html # Plotly global infection trends
docs/ # GitHub Pages source (served as site root)
index.html # Main page — full data story, single scroll
plots/
global_spread.html # Copy of choropleth map, embedded in the story
requirements.txt
| Dataset | Source |
|---|---|
epidemiology.csv |
Google COVID-19 Open Data |
oxford-government-response.csv |
Oxford Blavatnik School of Government |
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
jupyter labNotebook run order:
Data_cleaning_and_merging.ipynb— producesdata/merged_covid_data.csvKats_arbejdsfil.ipynband/orvictors_workfile.ipynb— analysis and visualizations
- Victor Halder
- Katarina
- Julie