Created
June 19, 2020 23:29
-
-
Save stucka/69fd345390eb5dfd1e663e7b0d54d28e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": 11, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "import requests\n", | |
| "\n", | |
| "import csv\n", | |
| "from collections import OrderedDict" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 36, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "nationallist = \"https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv\"\n", | |
| "countylist = \"https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_US.csv\"" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 20, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "eulist = [\n", | |
| " \"Austria\",\n", | |
| " \"Belgium\",\n", | |
| " \"Bulgaria\",\n", | |
| " \"Croatia\",\n", | |
| " \"Cyprus\",\n", | |
| " \"Czechia\", # Czech Republic\n", | |
| " \"Denmark\",\n", | |
| " \"Estonia\",\n", | |
| " \"Finland\",\n", | |
| " \"France\",\n", | |
| " \"Germany\",\n", | |
| " \"Greece\",\n", | |
| " \"Hungary\",\n", | |
| " \"Ireland\",\n", | |
| " \"Italy\",\n", | |
| " \"Latvia\",\n", | |
| " \"Lithuania\",\n", | |
| " \"Luxembourg\",\n", | |
| " \"Malta\",\n", | |
| " \"Netherlands\",\n", | |
| " \"Poland\",\n", | |
| " \"Portugal\",\n", | |
| " \"Romania\",\n", | |
| " \"Slovakia\",\n", | |
| " \"Slovenia\",\n", | |
| " \"Spain\",\n", | |
| " \"Sweden\" \n", | |
| "]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 21, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "r = requests.get(nationallist)\n", | |
| "reader = list(csv.DictReader(r.text.splitlines()))\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 22, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "headers = list(reader[0].keys())\n", | |
| "mydates = headers[headers.index(\"1/22/20\"):]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 28, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "nationdict = OrderedDict()\n", | |
| "eutallied = []\n", | |
| "nationdict['European Union'] = OrderedDict()\n", | |
| "for mydate in mydates:\n", | |
| " nationdict['European Union'][mydate] = 0\n", | |
| "for row in reader:\n", | |
| " nation = row['Country/Region']\n", | |
| " if nation not in nationdict:\n", | |
| " nationdict[nation] = OrderedDict()\n", | |
| " for mydate in mydates:\n", | |
| " nationdict[nation][mydate] = 0\n", | |
| " for mydate in mydates:\n", | |
| " nationdict[nation][mydate] += int(row[mydate])\n", | |
| " if nation in eulist:\n", | |
| " for mydate in mydates:\n", | |
| " nationdict[\"European Union\"][mydate] += int(row[mydate])\n", | |
| " eutally += 1\n", | |
| " eutallied.append(nation)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 29, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "eutallied = set(eutallied)\n", | |
| "for nation in eulist:\n", | |
| " if nation not in eutallied:\n", | |
| " print(nation)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 31, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "5745" | |
| ] | |
| }, | |
| "execution_count": 31, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "nationdict['European Union'][\"6/18/20\"] - nationdict['European Union'][\"6/17/20\"]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 37, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "r = requests.get(countylist)\n", | |
| "reader = list(csv.DictReader(r.text.splitlines()))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 38, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "statedict = OrderedDict()\n", | |
| "for row in reader:\n", | |
| " state = row['Province_State']\n", | |
| " if state not in statedict:\n", | |
| " statedict[state] = OrderedDict()\n", | |
| " for mydate in mydates:\n", | |
| " statedict[state][mydate] = 0\n", | |
| " for mydate in mydates:\n", | |
| " statedict[state][mydate] += int(row[mydate])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 41, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "85926" | |
| ] | |
| }, | |
| "execution_count": 41, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "statedict['Florida']['6/18/20']" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 42, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "reader = None" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 45, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "nationdiff = OrderedDict()\n", | |
| "for nation in nationdict:\n", | |
| " nationdiff[nation] = OrderedDict()\n", | |
| " for i, mydate in enumerate(mydates[:-7]):\n", | |
| " # print(f\"{mydates[i]} ... {mydates[i+7]}\")\n", | |
| " nationdiff[nation][mydates[i+7]] = nationdict[nation][mydates[i+7]] - nationdict[nation][mydates[i]]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 47, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "statediff = OrderedDict()\n", | |
| "for state in statedict:\n", | |
| " statediff[state] = OrderedDict()\n", | |
| " for i, mydate in enumerate(mydates[:-7]):\n", | |
| " statediff[state][mydates[i+7]] = statedict[state][mydates[i+7]] - statedict[state][mydates[i]]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 48, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "OrderedDict([('1/29/20', 0),\n", | |
| " ('1/30/20', 0),\n", | |
| " ('1/31/20', 0),\n", | |
| " ('2/1/20', 0),\n", | |
| " ('2/2/20', 0),\n", | |
| " ('2/3/20', 0),\n", | |
| " ('2/4/20', 0),\n", | |
| " ('2/5/20', 0),\n", | |
| " ('2/6/20', 0),\n", | |
| " ('2/7/20', 0),\n", | |
| " ('2/8/20', 0),\n", | |
| " ('2/9/20', 0),\n", | |
| " ('2/10/20', 0),\n", | |
| " ('2/11/20', 0),\n", | |
| " ('2/12/20', 0),\n", | |
| " ('2/13/20', 0),\n", | |
| " ('2/14/20', 0),\n", | |
| " ('2/15/20', 0),\n", | |
| " ('2/16/20', 0),\n", | |
| " ('2/17/20', 0),\n", | |
| " ('2/18/20', 0),\n", | |
| " ('2/19/20', 0),\n", | |
| " ('2/20/20', 0),\n", | |
| " ('2/21/20', 0),\n", | |
| " ('2/22/20', 0),\n", | |
| " ('2/23/20', 0),\n", | |
| " ('2/24/20', 0),\n", | |
| " ('2/25/20', 0),\n", | |
| " ('2/26/20', 0),\n", | |
| " ('2/27/20', 0),\n", | |
| " ('2/28/20', 0),\n", | |
| " ('2/29/20', 0),\n", | |
| " ('3/1/20', 0),\n", | |
| " ('3/2/20', 1),\n", | |
| " ('3/3/20', 2),\n", | |
| " ('3/4/20', 2),\n", | |
| " ('3/5/20', 3),\n", | |
| " ('3/6/20', 3),\n", | |
| " ('3/7/20', 7),\n", | |
| " ('3/8/20', 10),\n", | |
| " ('3/9/20', 12),\n", | |
| " ('3/10/20', 13),\n", | |
| " ('3/11/20', 22),\n", | |
| " ('3/12/20', 27),\n", | |
| " ('3/13/20', 47),\n", | |
| " ('3/14/20', 69),\n", | |
| " ('3/15/20', 90),\n", | |
| " ('3/16/20', 88),\n", | |
| " ('3/17/20', 175),\n", | |
| " ('3/18/20', 282),\n", | |
| " ('3/19/20', 402),\n", | |
| " ('3/20/20', 514),\n", | |
| " ('3/21/20', 687),\n", | |
| " ('3/22/20', 904),\n", | |
| " ('3/23/20', 1126),\n", | |
| " ('3/24/20', 1222),\n", | |
| " ('3/25/20', 1376),\n", | |
| " ('3/26/20', 1925),\n", | |
| " ('3/27/20', 2336),\n", | |
| " ('3/28/20', 3000),\n", | |
| " ('3/29/20', 3242),\n", | |
| " ('3/30/20', 4246),\n", | |
| " ('3/31/20', 5329),\n", | |
| " ('4/1/20', 5274),\n", | |
| " ('4/2/20', 6651),\n", | |
| " ('4/3/20', 7368),\n", | |
| " ('4/4/20', 7774),\n", | |
| " ('4/5/20', 8104),\n", | |
| " ('4/6/20', 7851),\n", | |
| " ('4/7/20', 7804),\n", | |
| " ('4/8/20', 8500),\n", | |
| " ('4/9/20', 7356),\n", | |
| " ('4/10/20', 7263),\n", | |
| " ('4/11/20', 6957),\n", | |
| " ('4/12/20', 7545),\n", | |
| " ('4/13/20', 7695),\n", | |
| " ('4/14/20', 7083),\n", | |
| " ('4/15/20', 7055),\n", | |
| " ('4/16/20', 6979),\n", | |
| " ('4/17/20', 7228),\n", | |
| " ('4/18/20', 6998),\n", | |
| " ('4/19/20', 6419),\n", | |
| " ('4/20/20', 6040),\n", | |
| " ('4/21/20', 6241),\n", | |
| " ('4/22/20', 5798),\n", | |
| " ('4/23/20', 6305),\n", | |
| " ('4/24/20', 5774),\n", | |
| " ('4/25/20', 5347),\n", | |
| " ('4/26/20', 5218),\n", | |
| " ('4/27/20', 5079),\n", | |
| " ('4/28/20', 4979),\n", | |
| " ('4/29/20', 4884),\n", | |
| " ('4/30/20', 4042),\n", | |
| " ('5/1/20', 4195),\n", | |
| " ('5/2/20', 4624),\n", | |
| " ('5/3/20', 4546),\n", | |
| " ('5/4/20', 4759),\n", | |
| " ('5/5/20', 4591),\n", | |
| " ('5/6/20', 4809),\n", | |
| " ('5/7/20', 5138),\n", | |
| " ('5/8/20', 4471),\n", | |
| " ('5/9/20', 4538),\n", | |
| " ('5/10/20', 4518),\n", | |
| " ('5/11/20', 4085),\n", | |
| " ('5/12/20', 4484),\n", | |
| " ('5/13/20', 4400),\n", | |
| " ('5/14/20', 4382),\n", | |
| " ('5/15/20', 4939),\n", | |
| " ('5/16/20', 4810),\n", | |
| " ('5/17/20', 4992),\n", | |
| " ('5/18/20', 5460),\n", | |
| " ('5/19/20', 5021),\n", | |
| " ('5/20/20', 5069),\n", | |
| " ('5/21/20', 5465),\n", | |
| " ('5/22/20', 5313),\n", | |
| " ('5/23/20', 5316),\n", | |
| " ('5/24/20', 5279),\n", | |
| " ('5/25/20', 5304),\n", | |
| " ('5/26/20', 5311),\n", | |
| " ('5/27/20', 5163),\n", | |
| " ('5/28/20', 4610),\n", | |
| " ('5/29/20', 5046),\n", | |
| " ('5/30/20', 5297),\n", | |
| " ('5/31/20', 5296),\n", | |
| " ('6/1/20', 5084),\n", | |
| " ('6/2/20', 5192),\n", | |
| " ('6/3/20', 6130),\n", | |
| " ('6/4/20', 6898),\n", | |
| " ('6/5/20', 6991),\n", | |
| " ('6/6/20', 7334),\n", | |
| " ('6/7/20', 7775),\n", | |
| " ('6/8/20', 8074),\n", | |
| " ('6/9/20', 8553),\n", | |
| " ('6/10/20', 8607),\n", | |
| " ('6/11/20', 8886),\n", | |
| " ('6/12/20', 9483),\n", | |
| " ('6/13/20', 10794),\n", | |
| " ('6/14/20', 11630),\n", | |
| " ('6/15/20', 12422),\n", | |
| " ('6/16/20', 14109),\n", | |
| " ('6/17/20', 15348),\n", | |
| " ('6/18/20', 16857)])" | |
| ] | |
| }, | |
| "execution_count": 48, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "statediff['Florida']" | |
| ] | |
| }, | |
| { | |
| "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.7.2" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 4 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment