Skip to main content

Unified data hub for a better understanding of COVID-19

Project description

Python Interface to COVID-19 Data Hub


Download COVID-19 data across governmental sources at national, regional, and city level, as described in Guidotti and Ardia (2020). Includes the time series of vaccines, tests, cases, deaths, recovered, hospitalizations, intensive therapy, and policy measures by Oxford COVID-19 Government Response Tracker. Please agree to the Terms of Use and cite the following reference when using it:


Guidotti, E., Ardia, D., (2020).
COVID-19 Data Hub
Journal of Open Source Software, 5(51):2376

Setup and usage

Install from pip with

pip install covid19dh

Importing the main function covid19()

from covid19dh import covid19
x, src = covid19() 

Package is regularly updated. Update with

pip install --upgrade covid19dh

Return values

The function covid19() returns 2 pandas dataframes:

  • the data and
  • references to the data sources.



List of country names (case-insensitive) or ISO codes (alpha-2, alpha-3 or numeric). The list of ISO codes can be found here.

Fetching data from a particular country:

x, src = covid19("USA") # Unites States

Specify multiple countries at the same time:

x, src = covid19(["ESP","PT","andorra",250])

If country is omitted, the whole dataset is returned:

x, src = covid19()

Raw data

Logical. Skip data cleaning? Default True. If raw=False, the raw data are cleaned by filling missing dates with NaN values. This ensures that all locations share the same grid of dates and no single day is skipped. Then, NaN values are replaced with the previous non-NaN value or 0.

x, src = covid19(raw = False)

Date filter

Date can be specified with datetime.datetime, or as a str in format YYYY-mm-dd.

from datetime import datetime
x, src = covid19("SWE", start = datetime(2020,4,1), end = "2020-05-01")


Integer. Granularity level of the data:

  1. Country level
  2. State, region or canton level
  3. City or municipality level
from datetime import date
x, src = covid19("USA", level = 2, start = date(2020,5,1))


Logical. Memory caching? Significantly improves performance on successive calls. By default, using the cached data is enabled.

Caching can be disabled (e.g. for long running programs) by:

x, src = covid19("FRA", cache = False)


Logical. Retrieve the snapshot of the dataset that was generated at the end date instead of using the latest version. Default False.

To fetch e.g. US data that were accessible on 22th April 2020 type

x, src = covid19("USA", end = "2020-04-22", vintage = True)

The vintage data are collected at the end of the day, but published with approximately 48 hour delay, once the day is completed in all the timezones.

Hence if vintage = True, but end is not set, warning is raised and None is returned.

x, src = covid19("USA", vintage = True) # too early to get today's vintage
UserWarning: vintage data not available yet

Data Sources

The data sources are returned as second value.

from covid19dh import covid19
x, src = covid19("USA")

Additional information

Find out more at


Developed and maintained by Martin Benes.

Cite as

Guidotti, E., Ardia, D., (2020), "COVID-19 Data Hub", Journal of Open Source Software 5(51):2376, doi: 10.21105/joss.02376.

A BibTeX entry for LaTeX users is

    title = {COVID-19 Data Hub},
    year = {2020},
    doi = {10.21105/joss.02376},
    author = {Emanuele Guidotti and David Ardia},
    journal = {Journal of Open Source Software},
    volume = {5},
    number = {51},
    pages = {2376}

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

covid19dh-2.3.1.tar.gz (10.5 kB view hashes)

Uploaded Source

Built Distribution

covid19dh-2.3.1-py3-none-any.whl (9.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page