Skip to content
Python package to easily access the most updated Coronavirus data using Python/PIP
Python Jupyter Notebook
Branch: master
Clone or download
This branch is even with sudharshan-ashok:master.

Latest commit

sudharshan-ashok Merge pull request sudharshan-ashok#7 from kylemath/master
Ready to merge - added provincial trend plotting for US, China, Australia, and Canada, added feature to plot trends for countries as well (still doesn't work if they have provinces, ill make an issue for that), added better examples in test.py
Latest commit 866c839 Apr 3, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
img added picture for readme and git ignore mac Mar 14, 2020
notebooks Created using Colaboratory Mar 17, 2020
pycovid some fixes to country Apr 3, 2020
tests 'd' Mar 9, 2020
.gitignore added picture for readme and git ignore mac Mar 14, 2020
Australia_StatePop_19.csv added population data for china, australia, canada, us, testing worki… Mar 17, 2020
Canada_StatePop_19.csv changed to match financial times chart Apr 2, 2020
China_StatePop_19.csv added population data for china, australia, canada, us, testing worki… Mar 17, 2020
LICENSE 'd' Mar 9, 2020
README.md updated readme Mar 20, 2020
US_StatePop_19.csv added population data for china, australia, canada, us, testing worki… Mar 17, 2020
cookiecutter.json 'd' Mar 9, 2020
setup.py 'd' Mar 9, 2020
test.py some fixes to country Apr 3, 2020

README.md

PyCOVID Package

The PyCOVID package provides a Pandas Dataframe of the 2019 Novel Coronavirus COVID-19 (2019-nCoV) epidemic based on Rami Krispin's 'coronavirus' package in R. The raw data pulled from the Johns Hopkins University Center for Systems Science and Engineering (JHU CCSE) Coronavirus

Try in a collaboratory iPython notebook

Quick Installation

pip install pycovid

Importing

from pycovid import pycovid
pycovid.getCovidCases()

Value Addition

The 'coronavirus' R package gets access to data, but the 'pyCOVID' package builts some additional functionality over it.

  1. Wide Format for quicker analysis (Wide by case type - Confirmed/Death/Recovered)
  2. Filtering options - By country, timeline, casetype
  3. Cumulative Aggregating options - cumsum parameter to look at the cumulative totals of how the Coronavirus has grown over time
  4. Time Resampling: Converts dataframe to time-indexed, and resamples at required time level (weekly, monthly, etc)
  5. Quick visualization using Plotly: Use the plotCountries() function

Usage

getCovidCasesWide() : Get the wide version of the Coronavirus Dataset Parameters:

  1. Countries: List of Countries (Default: All Countries)
  2. start_date and end_date: Use these to set the time window you wish to access
  3. casetype: Python List of Case Types ('confirmed', 'death' and 'recovered' and Default is all)
  4. cumsum: Gets cumulative sums of cases for each country in list (Default: False)

getCovidCases() : Get the Rami Krispin Coronavirus Dataset in the original format Parameters:

  1. Countries: List of Countries (Default: All Countries)
  2. Provinces: List of Provinces and States (Default: All)
  3. start_date and end_date: Use these to set the time window you wish to access
  4. casetype: Python List of Case Types ('confirmed', 'death' and 'recovered' and Default is all)
  5. cumsum: gets cummulative sum for each country or province
  6. plotprovinces: default is false, if True it cumsums over provinces instead of countries

plotCountries(): Plot the country aggregates on world map using Plotly Parameters:

  1. df: Pass a wide dataframe to the function with country-wise aggregates on confirmed, death and recovered cases
  2. grouped_date: Boolean to indicate whether dataset has been aggregated at country level or not
  3. metric: Can be 'confirmed' or 'death' or 'recovered'

plot_countries_trend(): Plot the cummultive trends over time for countries. Currently doesn't work for any countries with provinces/states (US, Canada, Australia, France).

  1. countries - list of country names
  2. start_date
  3. end_date
  4. casetype as above,
  5. plottype - linear or log
from pycovid import pycovid

pycovid.plot_countries_trend(countries=['Iran', 'Italy', 'Spain', 'Portugal', 'Japan', 'Germany', 'Mexico'],
			casetype=['confirmed'], start_date="2020-01-01", plottype="linear")

plotProvinces(): Plot the values from provinces within a country (tested for australia, US, Canada) over time

  1. countries - just include one
  2. provinces - optional, include names of any states or provinces, otherwise plots all
  3. start_date and end_date: as above
  4. casetype: as above
  5. proportion: default: False, boolean if you want data divided by population
  6. cumulative: default: True, if you want data summed over days
  7. plottype: "log" or "linear"
from pycovid import pycovid

pycovid.plot_provinces(contries=['Canada'], 
			provinces=['Alberta', 'Ontario', 'Quebec', 
				'Manitoba', 'British Columbia', 
				'New Brunswick', 'Saskatchewan'], 
			casetype=['confirmed'], start_date="2020-02-20", plottype="linear")

getIntervalData(): Get resampled dataset of the Coronavirus based on the date (by default Monthly level)

  1. df: Pass a wide dataframe to the function
  2. interval: The time interval you wish to resample the dataset to: 1D = Daily, 1W: Weekly, 1M: Monthly

Installation

pip install pycovid
from pycovid import pycovid
pycovid.getCovidCases()

or with virtual environment

# Configure a virtual environment in project directory
python3 -m venv venv 
# Activate the environment (assign paths)
source venv/bin/activate 
# Upgrade Pip and install requirements
pip install --upgrade pip 
pip install pycovid

Requirements

Pandas, Numpy and Plotly

Authors

PyCOVID was written by Sudharshan Ashok sudharshan93@gmail.com

Licence

MIT License

You can’t perform that action at this time.