From f663e6da6ec305bc285bf352c5478cdc8f52e137 Mon Sep 17 00:00:00 2001 From: Gerardo Marx Date: Wed, 25 Mar 2020 19:57:28 -0600 Subject: [PATCH] updated march 25 --- .gitignore | 2 + covid-model.ipynb | 945 ++++++++++++++++++++++++++-------------------- covid-model.md | 791 ++++++++++++++++++++++++++++++++++++++ output_11_1.png | Bin 0 -> 5383 bytes output_18_1.png | Bin 0 -> 9452 bytes output_4_1.png | Bin 0 -> 9097 bytes output_7_1.png | Bin 0 -> 7367 bytes requirements.txt | 1 + 8 files changed, 1325 insertions(+), 414 deletions(-) create mode 100644 .gitignore create mode 100644 covid-model.md create mode 100644 output_11_1.png create mode 100644 output_18_1.png create mode 100644 output_4_1.png create mode 100644 output_7_1.png create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..863a915 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +covid/ +.ipynb_checkpoints/ diff --git a/covid-model.ipynb b/covid-model.ipynb index a3ac1ae..9bd21ee 100644 --- a/covid-model.ipynb +++ b/covid-model.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -20,7 +20,7 @@ " t, branch='master', depth=1)\n", "# Delete files\n", "#os.remove('README.txt')\n", - "#shutil.rmtree('firstTest')\n", + "shutil.rmtree('data')\n", "#shutil.rmtree('secondTest')\n", "# Copy desired file from temporary dir\n", "shutil.move(os.path.join(t, 'data'), '.')\n", @@ -30,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -44,7 +44,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -154,7 +154,7 @@ "4 0 " ] }, - "execution_count": 10, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -169,7 +169,7 @@ }, { "cell_type": "code", - "execution_count": 151, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -180,28 +180,28 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([[,\n", - " ],\n", - " [,\n", - " ],\n", - " [,\n", - " ]],\n", + "array([[,\n", + " ],\n", + " [,\n", + " ],\n", + " [,\n", + " ]],\n", " dtype=object)" ] }, - "execution_count": 11, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -219,16 +219,16 @@ }, { "cell_type": "code", - "execution_count": 153, + "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(77, 8)" + "(63, 8)" ] }, - "execution_count": 153, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -236,37 +236,35 @@ "source": [ "%matplotlib inline \n", "import matplotlib.pyplot as plt \n", - "covid_mexico = covid_data[covid_data['GeoId']=='MX']\n", + "covid_mexico = covid_data[covid_data['Country/Region']=='Mexico']\n", "covid_mexico.shape" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 134, "metadata": {}, "outputs": [ { - "ename": "ImportError", - "evalue": "The descartes package is required for plotting polygons in geopandas. You can install it using 'conda install -c conda-forge descartes' or 'pip install descartes'.", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m~/lwc/topics/covid19/covid/lib/python3.7/site-packages/geopandas/plotting.py\u001b[0m in \u001b[0;36mplot_polygon_collection\u001b[0;34m(ax, geoms, values, color, cmap, vmin, vmax, **kwargs)\u001b[0m\n\u001b[1;32m 80\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 81\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mdescartes\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpatch\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mPolygonPatch\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 82\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mImportError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'descartes'", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mgeopandas\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mgpd\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mworld\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_file\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdatasets\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'naturalearth_lowres'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mworld\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/lwc/topics/covid19/covid/lib/python3.7/site-packages/geopandas/geodataframe.py\u001b[0m in \u001b[0;36mplot\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 654\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mthere\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 655\u001b[0m \"\"\"\n\u001b[0;32m--> 656\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mplot_dataframe\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 657\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 658\u001b[0m \u001b[0mplot\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mplot_dataframe\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/lwc/topics/covid19/covid/lib/python3.7/site-packages/geopandas/plotting.py\u001b[0m in \u001b[0;36mplot_dataframe\u001b[0;34m(df, column, cmap, color, ax, cax, categorical, legend, scheme, k, vmin, vmax, markersize, figsize, legend_kwds, classification_kwds, missing_kwds, **style_kwds)\u001b[0m\n\u001b[1;32m 545\u001b[0m \u001b[0mfigsize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfigsize\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 546\u001b[0m \u001b[0mmarkersize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmarkersize\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 547\u001b[0;31m \u001b[0;34m**\u001b[0m\u001b[0mstyle_kwds\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 548\u001b[0m )\n\u001b[1;32m 549\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/lwc/topics/covid19/covid/lib/python3.7/site-packages/geopandas/plotting.py\u001b[0m in \u001b[0;36mplot_series\u001b[0;34m(s, cmap, color, ax, figsize, **style_kwds)\u001b[0m\n\u001b[1;32m 371\u001b[0m \u001b[0mvalues_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mpoly_idx\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcmap\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 372\u001b[0m plot_polygon_collection(\n\u001b[0;32m--> 373\u001b[0;31m \u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpolys\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalues_\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfacecolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfacecolor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcmap\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcmap\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mstyle_kwds\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 374\u001b[0m )\n\u001b[1;32m 375\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/lwc/topics/covid19/covid/lib/python3.7/site-packages/geopandas/plotting.py\u001b[0m in \u001b[0;36mplot_polygon_collection\u001b[0;34m(ax, geoms, values, color, cmap, vmin, vmax, **kwargs)\u001b[0m\n\u001b[1;32m 82\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mImportError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 83\u001b[0m raise ImportError(\n\u001b[0;32m---> 84\u001b[0;31m \u001b[0;34m\"The descartes package is required for plotting polygons in geopandas. \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 85\u001b[0m \u001b[0;34m\"You can install it using 'conda install -c conda-forge descartes' or \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;34m\"'pip install descartes'.\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mImportError\u001b[0m: The descartes package is required for plotting polygons in geopandas. You can install it using 'conda install -c conda-forge descartes' or 'pip install descartes'." - ] + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 134, + "metadata": {}, + "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -277,24 +275,13 @@ "output_type": "display_data" } ], - "source": [ - "import geopandas as gpd\n", - "world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))\n", - "world.plot()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "covid_data.plot(kind=\"scatter\", x=\"Long\", y=\"Lat\")" ] }, { "cell_type": "code", - "execution_count": 168, + "execution_count": 98, "metadata": {}, "outputs": [ { @@ -318,71 +305,71 @@ " \n", " \n", " \n", - " DateRep\n", - " Day\n", - " Month\n", - " Year\n", - " Cases\n", + " Date\n", + " Country/Region\n", + " Province/State\n", + " Lat\n", + " Long\n", + " Confirmed\n", + " Recovered\n", " Deaths\n", - " Countries and territories\n", - " GeoId\n", " \n", " \n", " \n", " \n", - " 3985\n", - " 2019-12-31\n", - " 31\n", - " 12\n", - " 2019\n", + " 9954\n", + " 2020-01-22\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", " 0\n", + " 0.0\n", " 0\n", - " Mexico\n", - " MX\n", " \n", " \n", - " 3984\n", - " 2020-01-01\n", - " 1\n", - " 1\n", - " 2020\n", + " 9955\n", + " 2020-01-23\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", " 0\n", + " 0.0\n", " 0\n", - " Mexico\n", - " MX\n", " \n", " \n", - " 3953\n", - " 2020-01-02\n", - " 1\n", - " 2\n", - " 2020\n", + " 9956\n", + " 2020-01-24\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", " 0\n", + " 0.0\n", " 0\n", - " Mexico\n", - " MX\n", " \n", " \n", - " 3924\n", - " 2020-01-03\n", - " 1\n", - " 3\n", - " 2020\n", - " 2\n", - " 0\n", + " 9957\n", + " 2020-01-25\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 0\n", + " 0.0\n", + " 0\n", " \n", " \n", - " 3972\n", - " 2020-01-13\n", - " 13\n", - " 1\n", - " 2020\n", + " 9958\n", + " 2020-01-26\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", " 0\n", + " 0.0\n", " 0\n", - " Mexico\n", - " MX\n", " \n", " \n", " ...\n", @@ -396,150 +383,110 @@ " ...\n", " \n", " \n", - " 3974\n", - " 2020-11-01\n", - " 11\n", - " 1\n", - " 2020\n", - " 0\n", - " 0\n", + " 10012\n", + " 2020-03-20\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 164\n", + " 4.0\n", + " 1\n", " \n", " \n", - " 3943\n", - " 2020-11-02\n", - " 11\n", - " 2\n", - " 2020\n", - " 0\n", - " 0\n", + " 10013\n", + " 2020-03-21\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 203\n", + " 4.0\n", + " 2\n", " \n", " \n", - " 3973\n", - " 2020-12-01\n", - " 12\n", - " 1\n", - " 2020\n", - " 0\n", - " 0\n", + " 10014\n", + " 2020-03-22\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 251\n", + " 4.0\n", + " 2\n", " \n", " \n", - " 3942\n", - " 2020-12-02\n", - " 12\n", - " 2\n", - " 2020\n", - " 0\n", - " 0\n", + " 10015\n", + " 2020-03-23\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 316\n", + " 4.0\n", + " 3\n", " \n", " \n", - " 3921\n", - " 2020-12-03\n", - " 12\n", - " 3\n", - " 2020\n", - " 4\n", - " 0\n", + " 10016\n", + " 2020-03-24\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 367\n", + " NaN\n", + " 4\n", " \n", " \n", "\n", - "

77 rows × 8 columns

\n", + "

63 rows × 8 columns

\n", "" ], "text/plain": [ - " DateRep Day Month Year Cases Deaths Countries and territories \\\n", - "3985 2019-12-31 31 12 2019 0 0 Mexico \n", - "3984 2020-01-01 1 1 2020 0 0 Mexico \n", - "3953 2020-01-02 1 2 2020 0 0 Mexico \n", - "3924 2020-01-03 1 3 2020 2 0 Mexico \n", - "3972 2020-01-13 13 1 2020 0 0 Mexico \n", - "... ... ... ... ... ... ... ... \n", - "3974 2020-11-01 11 1 2020 0 0 Mexico \n", - "3943 2020-11-02 11 2 2020 0 0 Mexico \n", - "3973 2020-12-01 12 1 2020 0 0 Mexico \n", - "3942 2020-12-02 12 2 2020 0 0 Mexico \n", - "3921 2020-12-03 12 3 2020 4 0 Mexico \n", + " Date Country/Region Province/State Lat Long Confirmed \\\n", + "9954 2020-01-22 Mexico NaN 23.6345 -102.5528 0 \n", + "9955 2020-01-23 Mexico NaN 23.6345 -102.5528 0 \n", + "9956 2020-01-24 Mexico NaN 23.6345 -102.5528 0 \n", + "9957 2020-01-25 Mexico NaN 23.6345 -102.5528 0 \n", + "9958 2020-01-26 Mexico NaN 23.6345 -102.5528 0 \n", + "... ... ... ... ... ... ... \n", + "10012 2020-03-20 Mexico NaN 23.6345 -102.5528 164 \n", + "10013 2020-03-21 Mexico NaN 23.6345 -102.5528 203 \n", + "10014 2020-03-22 Mexico NaN 23.6345 -102.5528 251 \n", + "10015 2020-03-23 Mexico NaN 23.6345 -102.5528 316 \n", + "10016 2020-03-24 Mexico NaN 23.6345 -102.5528 367 \n", "\n", - " GeoId \n", - "3985 MX \n", - "3984 MX \n", - "3953 MX \n", - "3924 MX \n", - "3972 MX \n", - "... ... \n", - "3974 MX \n", - "3943 MX \n", - "3973 MX \n", - "3942 MX \n", - "3921 MX \n", + " Recovered Deaths \n", + "9954 0.0 0 \n", + "9955 0.0 0 \n", + "9956 0.0 0 \n", + "9957 0.0 0 \n", + "9958 0.0 0 \n", + "... ... ... \n", + "10012 4.0 1 \n", + "10013 4.0 2 \n", + "10014 4.0 2 \n", + "10015 4.0 3 \n", + "10016 NaN 4 \n", "\n", - "[77 rows x 8 columns]" + "[63 rows x 8 columns]" ] }, - "execution_count": 168, + "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from datetime import datetime\n", - "mexico['DateRep'] =pd.to_datetime(mexico.DateRep, format=\"%d/%m/%Y\")\n", - "mexico_sort=mexico.sort_values(by='DateRep', ascending=True)\n", + "#covid_mexico['Date'] =pd.to_datetime(covid_mexico.Date, format=\"%Y-%m-%d\")\n", + "mexico_sort=covid_mexico.sort_values(by='Date', ascending=True)\n", "mexico_sort" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 156, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 156, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "mexico_filter = mexico_sort[mexico_sort['Cases']!=0]\n", - "mexico_filter.plot(kind=\"scatter\", x=\"DateRep\", y=\"Cases\")" - ] - }, - { - "cell_type": "code", - "execution_count": 157, + "execution_count": 100, "metadata": {}, "outputs": [ { @@ -563,344 +510,461 @@ " \n", " \n", " \n", - " DateRep\n", - " Day\n", - " Month\n", - " Year\n", - " Cases\n", + " Date\n", + " Country/Region\n", + " Province/State\n", + " Lat\n", + " Long\n", + " Confirmed\n", + " Recovered\n", " Deaths\n", - " Countries and territories\n", - " GeoId\n", " \n", " \n", " \n", " \n", - " 3924\n", - " 2020-01-03\n", + " 9991\n", + " 2020-02-28\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", " 1\n", - " 3\n", - " 2020\n", - " 2\n", + " 0.0\n", " 0\n", + " \n", + " \n", + " 9992\n", + " 2020-02-29\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 4\n", + " 0.0\n", + " 0\n", " \n", " \n", - " 3923\n", - " 2020-02-03\n", - " 2\n", - " 3\n", - " 2020\n", - " 1\n", + " 9993\n", + " 2020-03-01\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 5\n", + " 0.0\n", " 0\n", + " \n", + " \n", + " 9994\n", + " 2020-03-02\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 5\n", + " 0.0\n", + " 0\n", " \n", " \n", - " 3925\n", - " 2020-02-29\n", - " 29\n", - " 2\n", - " 2020\n", - " 2\n", + " 9995\n", + " 2020-03-03\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 5\n", + " 1.0\n", " 0\n", + " \n", + " \n", + " 9996\n", + " 2020-03-04\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 5\n", + " 1.0\n", + " 0\n", " \n", " \n", - " 3920\n", - " 2020-03-13\n", - " 13\n", - " 3\n", - " 2020\n", + " 9997\n", + " 2020-03-05\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", " 5\n", + " 1.0\n", " 0\n", + " \n", + " \n", + " 9998\n", + " 2020-03-06\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 6\n", + " 1.0\n", + " 0\n", " \n", " \n", - " 3919\n", - " 2020-03-14\n", - " 14\n", - " 3\n", - " 2020\n", - " 10\n", + " 9999\n", + " 2020-03-07\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 6\n", + " 1.0\n", " 0\n", + " \n", + " \n", + " 10000\n", + " 2020-03-08\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 7\n", + " 1.0\n", + " 0\n", " \n", " \n", - " 3918\n", - " 2020-03-15\n", - " 15\n", - " 3\n", - " 2020\n", - " 15\n", + " 10001\n", + " 2020-03-09\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 7\n", + " 1.0\n", " 0\n", + " \n", + " \n", + " 10002\n", + " 2020-03-10\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 7\n", + " 4.0\n", + " 0\n", " \n", " \n", - " 3917\n", - " 2020-03-16\n", - " 16\n", - " 3\n", - " 2020\n", + " 10003\n", + " 2020-03-11\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 8\n", + " 4.0\n", + " 0\n", + " \n", + " \n", + " 10004\n", + " 2020-03-12\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 12\n", + " 4.0\n", + " 0\n", + " \n", + " \n", + " 10005\n", + " 2020-03-13\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", " 12\n", + " 4.0\n", " 0\n", + " \n", + " \n", + " 10006\n", + " 2020-03-14\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 26\n", + " 4.0\n", + " 0\n", " \n", " \n", - " 3916\n", - " 2020-03-17\n", - " 17\n", - " 3\n", - " 2020\n", - " 29\n", + " 10007\n", + " 2020-03-15\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 41\n", + " 4.0\n", " 0\n", + " \n", + " \n", + " 10008\n", + " 2020-03-16\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 53\n", + " 4.0\n", + " 0\n", " \n", " \n", - " 3915\n", - " 2020-03-18\n", - " 18\n", - " 3\n", - " 2020\n", - " 11\n", + " 10009\n", + " 2020-03-17\n", + " Mexico\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 82\n", + " 4.0\n", " 0\n", + " \n", + " \n", + " 10010\n", + " 2020-03-18\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 93\n", + " 4.0\n", + " 0\n", " \n", " \n", - " 3914\n", + " 10011\n", " 2020-03-19\n", - " 19\n", - " 3\n", - " 2020\n", - " 25\n", - " 0\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 118\n", + " 4.0\n", + " 1\n", " \n", " \n", - " 3913\n", + " 10012\n", " 2020-03-20\n", - " 20\n", - " 3\n", - " 2020\n", - " 46\n", - " 0\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 164\n", + " 4.0\n", + " 1\n", " \n", " \n", - " 3912\n", + " 10013\n", " 2020-03-21\n", - " 21\n", - " 3\n", - " 2020\n", - " 39\n", - " 2\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 203\n", + " 4.0\n", + " 2\n", " \n", " \n", - " 3911\n", + " 10014\n", " 2020-03-22\n", - " 22\n", - " 3\n", - " 2020\n", - " 48\n", - " 0\n", " Mexico\n", - " MX\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 251\n", + " 4.0\n", + " 2\n", " \n", " \n", - " 3910\n", + " 10015\n", " 2020-03-23\n", - " 23\n", - " 3\n", - " 2020\n", - " 65\n", - " 0\n", " Mexico\n", - " MX\n", - " \n", - " \n", - " 3909\n", - " 2020-03-24\n", - " 24\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 316\n", + " 4.0\n", " 3\n", - " 2020\n", - " 51\n", - " 2\n", - " Mexico\n", - " MX\n", " \n", " \n", - " 3922\n", - " 2020-09-03\n", - " 9\n", - " 3\n", - " 2020\n", - " 2\n", - " 0\n", + " 10016\n", + " 2020-03-24\n", " Mexico\n", - " MX\n", - " \n", - " \n", - " 3921\n", - " 2020-12-03\n", - " 12\n", - " 3\n", - " 2020\n", + " NaN\n", + " 23.6345\n", + " -102.5528\n", + " 367\n", + " NaN\n", " 4\n", - " 0\n", - " Mexico\n", - " MX\n", " \n", " \n", "\n", "" ], "text/plain": [ - " DateRep Day Month Year Cases Deaths Countries and territories \\\n", - "3924 2020-01-03 1 3 2020 2 0 Mexico \n", - "3923 2020-02-03 2 3 2020 1 0 Mexico \n", - "3925 2020-02-29 29 2 2020 2 0 Mexico \n", - "3920 2020-03-13 13 3 2020 5 0 Mexico \n", - "3919 2020-03-14 14 3 2020 10 0 Mexico \n", - "3918 2020-03-15 15 3 2020 15 0 Mexico \n", - "3917 2020-03-16 16 3 2020 12 0 Mexico \n", - "3916 2020-03-17 17 3 2020 29 0 Mexico \n", - "3915 2020-03-18 18 3 2020 11 0 Mexico \n", - "3914 2020-03-19 19 3 2020 25 0 Mexico \n", - "3913 2020-03-20 20 3 2020 46 0 Mexico \n", - "3912 2020-03-21 21 3 2020 39 2 Mexico \n", - "3911 2020-03-22 22 3 2020 48 0 Mexico \n", - "3910 2020-03-23 23 3 2020 65 0 Mexico \n", - "3909 2020-03-24 24 3 2020 51 2 Mexico \n", - "3922 2020-09-03 9 3 2020 2 0 Mexico \n", - "3921 2020-12-03 12 3 2020 4 0 Mexico \n", + " Date Country/Region Province/State Lat Long Confirmed \\\n", + "9991 2020-02-28 Mexico NaN 23.6345 -102.5528 1 \n", + "9992 2020-02-29 Mexico NaN 23.6345 -102.5528 4 \n", + "9993 2020-03-01 Mexico NaN 23.6345 -102.5528 5 \n", + "9994 2020-03-02 Mexico NaN 23.6345 -102.5528 5 \n", + "9995 2020-03-03 Mexico NaN 23.6345 -102.5528 5 \n", + "9996 2020-03-04 Mexico NaN 23.6345 -102.5528 5 \n", + "9997 2020-03-05 Mexico NaN 23.6345 -102.5528 5 \n", + "9998 2020-03-06 Mexico NaN 23.6345 -102.5528 6 \n", + "9999 2020-03-07 Mexico NaN 23.6345 -102.5528 6 \n", + "10000 2020-03-08 Mexico NaN 23.6345 -102.5528 7 \n", + "10001 2020-03-09 Mexico NaN 23.6345 -102.5528 7 \n", + "10002 2020-03-10 Mexico NaN 23.6345 -102.5528 7 \n", + "10003 2020-03-11 Mexico NaN 23.6345 -102.5528 8 \n", + "10004 2020-03-12 Mexico NaN 23.6345 -102.5528 12 \n", + "10005 2020-03-13 Mexico NaN 23.6345 -102.5528 12 \n", + "10006 2020-03-14 Mexico NaN 23.6345 -102.5528 26 \n", + "10007 2020-03-15 Mexico NaN 23.6345 -102.5528 41 \n", + "10008 2020-03-16 Mexico NaN 23.6345 -102.5528 53 \n", + "10009 2020-03-17 Mexico NaN 23.6345 -102.5528 82 \n", + "10010 2020-03-18 Mexico NaN 23.6345 -102.5528 93 \n", + "10011 2020-03-19 Mexico NaN 23.6345 -102.5528 118 \n", + "10012 2020-03-20 Mexico NaN 23.6345 -102.5528 164 \n", + "10013 2020-03-21 Mexico NaN 23.6345 -102.5528 203 \n", + "10014 2020-03-22 Mexico NaN 23.6345 -102.5528 251 \n", + "10015 2020-03-23 Mexico NaN 23.6345 -102.5528 316 \n", + "10016 2020-03-24 Mexico NaN 23.6345 -102.5528 367 \n", "\n", - " GeoId \n", - "3924 MX \n", - "3923 MX \n", - "3925 MX \n", - "3920 MX \n", - "3919 MX \n", - "3918 MX \n", - "3917 MX \n", - "3916 MX \n", - "3915 MX \n", - "3914 MX \n", - "3913 MX \n", - "3912 MX \n", - "3911 MX \n", - "3910 MX \n", - "3909 MX \n", - "3922 MX \n", - "3921 MX " + " Recovered Deaths \n", + "9991 0.0 0 \n", + "9992 0.0 0 \n", + "9993 0.0 0 \n", + "9994 0.0 0 \n", + "9995 1.0 0 \n", + "9996 1.0 0 \n", + "9997 1.0 0 \n", + "9998 1.0 0 \n", + "9999 1.0 0 \n", + "10000 1.0 0 \n", + "10001 1.0 0 \n", + "10002 4.0 0 \n", + "10003 4.0 0 \n", + "10004 4.0 0 \n", + "10005 4.0 0 \n", + "10006 4.0 0 \n", + "10007 4.0 0 \n", + "10008 4.0 0 \n", + "10009 4.0 0 \n", + "10010 4.0 0 \n", + "10011 4.0 1 \n", + "10012 4.0 1 \n", + "10013 4.0 2 \n", + "10014 4.0 2 \n", + "10015 4.0 3 \n", + "10016 NaN 4 " ] }, - "execution_count": 157, + "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "mexico_filter.head(77)" + "mexico_filter = mexico_sort[mexico_sort['Confirmed']!=0]\n", + "mexico_filter" ] }, { "cell_type": "code", - "execution_count": 164, + "execution_count": 118, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "367" + "array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n", + " 18, 19, 20, 21, 22, 23, 24, 25, 26])" ] }, - "execution_count": 164, + "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "sum(mexico_filter.Cases)" + "n=mexico_filter.shape[0]\n", + "days=np.arange(1,n+1,1)\n", + "days" ] }, { "cell_type": "code", - "execution_count": 163, + "execution_count": 119, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "3985 2019-12-31\n", - "3954 2020-01-31\n", - "3955 2020-01-30\n", - "3925 2020-02-29\n", - "3956 2020-01-29\n", - " ... \n", - "3952 2020-02-02\n", - "3983 2020-02-01\n", - "3924 2020-01-03\n", - "3953 2020-01-02\n", - "3984 2020-01-01\n", - "Name: DateRep, Length: 77, dtype: datetime64[ns]" + "" ] }, - "execution_count": 163, + "execution_count": 119, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } ], "source": [ - "mexico.DateRep" + "#mexico_filter = mexico_sort[mexico_sort['Confirmed']!=0]\n", + "plt.scatter(x=days, y=mexico_filter['Confirmed'])" ] }, { "cell_type": "code", - "execution_count": 160, + "execution_count": 127, "metadata": {}, "outputs": [], - "source": [ - "import sklearn\n", - "# Select a linear model\n", - "lin_reg_model = sklearn.linear_model.LinearRegression()\n", - "# Train the model\n" - ] + "source": [] }, { "cell_type": "code", - "execution_count": 161, + "execution_count": 132, "metadata": {}, "outputs": [ { - "ename": "ValueError", - "evalue": "Expected 2D array, got 1D array instead:\narray=[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.\n 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.\n 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.\n 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72.\n 73. 74. 75. 76. 77.].\nReshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mX\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinspace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m77\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m77\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmexico\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCases\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mlin_reg_model\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/lwc/topics/covid19/covid/lib/python3.7/site-packages/sklearn/linear_model/_base.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, X, y, sample_weight)\u001b[0m\n\u001b[1;32m 490\u001b[0m \u001b[0mn_jobs_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mn_jobs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 491\u001b[0m X, y = check_X_y(X, y, accept_sparse=['csr', 'csc', 'coo'],\n\u001b[0;32m--> 492\u001b[0;31m y_numeric=True, multi_output=True)\n\u001b[0m\u001b[1;32m 493\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 494\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msample_weight\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/lwc/topics/covid19/covid/lib/python3.7/site-packages/sklearn/utils/validation.py\u001b[0m in \u001b[0;36mcheck_X_y\u001b[0;34m(X, y, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, multi_output, ensure_min_samples, ensure_min_features, y_numeric, warn_on_dtype, estimator)\u001b[0m\n\u001b[1;32m 753\u001b[0m \u001b[0mensure_min_features\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mensure_min_features\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 754\u001b[0m \u001b[0mwarn_on_dtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mwarn_on_dtype\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 755\u001b[0;31m estimator=estimator)\n\u001b[0m\u001b[1;32m 756\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mmulti_output\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 757\u001b[0m y = check_array(y, 'csr', force_all_finite=True, ensure_2d=False,\n", - "\u001b[0;32m~/lwc/topics/covid19/covid/lib/python3.7/site-packages/sklearn/utils/validation.py\u001b[0m in \u001b[0;36mcheck_array\u001b[0;34m(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)\u001b[0m\n\u001b[1;32m 554\u001b[0m \u001b[0;34m\"Reshape your data either using array.reshape(-1, 1) if \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 555\u001b[0m \u001b[0;34m\"your data has a single feature or array.reshape(1, -1) \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 556\u001b[0;31m \"if it contains a single sample.\".format(array))\n\u001b[0m\u001b[1;32m 557\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 558\u001b[0m \u001b[0;31m# in the future np.flexible dtypes will be handled like object dtypes\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mValueError\u001b[0m: Expected 2D array, got 1D array instead:\narray=[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.\n 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.\n 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.\n 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72.\n 73. 74. 75. 76. 77.].\nReshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample." - ] + "data": { + "text/plain": [ + "array([ 1.07768657, 0.22640743, -3.90363561])" + ] + }, + "execution_count": 132, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "X = np.linspace(1,77,77, axis=0)\n", - "y = mexico.Cases\n", - "lin_reg_model.fit(X, y)" + "from scipy.optimize import curve_fit\n", + "def exponential(x, a,k, b):\n", + " return a*np.exp(x*k) + b\n", + "\n", + "potp, pcov = curve_fit(exponential, days, mexico_filter['Confirmed'])\n", + "potp" ] }, { @@ -908,8 +972,61 @@ "execution_count": null, "metadata": {}, "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 133, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 133, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ - "y.shape" + "# Plot outputs\n", + "plt.scatter(days, mexico_filter['Confirmed'], color='black')\n", + "plt.plot(days,exponential(days,*potp), color='blue', linewidth=2)" ] } ], diff --git a/covid-model.md b/covid-model.md new file mode 100644 index 0000000..c518fa5 --- /dev/null +++ b/covid-model.md @@ -0,0 +1,791 @@ +```python +# Reading data +import os +import git +import shutil +import tempfile + +# Create temporary dir +t = tempfile.mkdtemp() +d = 'lwc/topics/covid19/covid-model' +# Clone into temporary dir +git.Repo.clone_from('http://gmarx.jumpingcrab.com:8088/COVID-19/covid19-data.git', + t, branch='master', depth=1) +# Delete files +#os.remove('README.txt') +shutil.rmtree('data') +#shutil.rmtree('secondTest') +# Copy desired file from temporary dir +shutil.move(os.path.join(t, 'data'), '.') +# Remove temporary dir +shutil.rmtree(t) +``` + + +```python +import pandas as pd +import numpy as np +import os +def loadData(path, file): + csvPath=os.path.join(path, file) + return pd.read_csv(csvPath) +``` + + +```python +# import jtplot submodule from jupyterthemes +from jupyterthemes import jtplot +PATH=os.path.join("data") +covid_data=loadData(PATH,"time-series-19-covid-combined.csv") +covid_data.head() +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DateCountry/RegionProvince/StateLatLongConfirmedRecoveredDeaths
02020-01-22AfghanistanNaN33.065.000.00
12020-01-23AfghanistanNaN33.065.000.00
22020-01-24AfghanistanNaN33.065.000.00
32020-01-25AfghanistanNaN33.065.000.00
42020-01-26AfghanistanNaN33.065.000.00
+
+ + + + +```python +from sklearn.model_selection import train_test_split +train_set, test_set=train_test_split(covid_data,test_size=0.2,random_state=42) +train_cp=train_set.copy() +``` + + +```python +%matplotlib inline +covid_data.hist() + +``` + + + + + array([[, + ], + [, + ], + [, + ]], + dtype=object) + + + + +![png](output_4_1.png) + + + +```python +%matplotlib inline +import matplotlib.pyplot as plt +covid_mexico = covid_data[covid_data['Country/Region']=='Mexico'] +covid_mexico.shape +``` + + + + + (63, 8) + + + + +```python + +``` + + +```python +covid_data.plot(kind="scatter", x="Long", y="Lat") +``` + + + + + + + + + +![png](output_7_1.png) + + + +```python +from datetime import datetime +#covid_mexico['Date'] =pd.to_datetime(covid_mexico.Date, format="%Y-%m-%d") +mexico_sort=covid_mexico.sort_values(by='Date', ascending=True) +mexico_sort +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DateCountry/RegionProvince/StateLatLongConfirmedRecoveredDeaths
99542020-01-22MexicoNaN23.6345-102.552800.00
99552020-01-23MexicoNaN23.6345-102.552800.00
99562020-01-24MexicoNaN23.6345-102.552800.00
99572020-01-25MexicoNaN23.6345-102.552800.00
99582020-01-26MexicoNaN23.6345-102.552800.00
...........................
100122020-03-20MexicoNaN23.6345-102.55281644.01
100132020-03-21MexicoNaN23.6345-102.55282034.02
100142020-03-22MexicoNaN23.6345-102.55282514.02
100152020-03-23MexicoNaN23.6345-102.55283164.03
100162020-03-24MexicoNaN23.6345-102.5528367NaN4
+

63 rows × 8 columns

+
+ + + + +```python +mexico_filter = mexico_sort[mexico_sort['Confirmed']!=0] +mexico_filter +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DateCountry/RegionProvince/StateLatLongConfirmedRecoveredDeaths
99912020-02-28MexicoNaN23.6345-102.552810.00
99922020-02-29MexicoNaN23.6345-102.552840.00
99932020-03-01MexicoNaN23.6345-102.552850.00
99942020-03-02MexicoNaN23.6345-102.552850.00
99952020-03-03MexicoNaN23.6345-102.552851.00
99962020-03-04MexicoNaN23.6345-102.552851.00
99972020-03-05MexicoNaN23.6345-102.552851.00
99982020-03-06MexicoNaN23.6345-102.552861.00
99992020-03-07MexicoNaN23.6345-102.552861.00
100002020-03-08MexicoNaN23.6345-102.552871.00
100012020-03-09MexicoNaN23.6345-102.552871.00
100022020-03-10MexicoNaN23.6345-102.552874.00
100032020-03-11MexicoNaN23.6345-102.552884.00
100042020-03-12MexicoNaN23.6345-102.5528124.00
100052020-03-13MexicoNaN23.6345-102.5528124.00
100062020-03-14MexicoNaN23.6345-102.5528264.00
100072020-03-15MexicoNaN23.6345-102.5528414.00
100082020-03-16MexicoNaN23.6345-102.5528534.00
100092020-03-17MexicoNaN23.6345-102.5528824.00
100102020-03-18MexicoNaN23.6345-102.5528934.00
100112020-03-19MexicoNaN23.6345-102.55281184.01
100122020-03-20MexicoNaN23.6345-102.55281644.01
100132020-03-21MexicoNaN23.6345-102.55282034.02
100142020-03-22MexicoNaN23.6345-102.55282514.02
100152020-03-23MexicoNaN23.6345-102.55283164.03
100162020-03-24MexicoNaN23.6345-102.5528367NaN4
+
+ + + + +```python +n=mexico_filter.shape[0] +days=np.arange(1,n+1,1) +days +``` + + + + + array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26]) + + + + +```python +#mexico_filter = mexico_sort[mexico_sort['Confirmed']!=0] +plt.scatter(x=days, y=mexico_filter['Confirmed']) +``` + + + + + + + + + +![png](output_11_1.png) + + + +```python + +``` + + +```python +from scipy.optimize import curve_fit +def exponential(x, a,k, b): + return a*np.exp(x*k) + b + +potp, pcov = curve_fit(exponential, days, mexico_filter['Confirmed']) +potp +``` + + + + + array([ 1.07768657, 0.22640743, -3.90363561]) + + + + +```python + +``` + + +```python + +``` + + +```python + +``` + + +```python + +``` + + +```python +# Plot outputs +plt.scatter(days, mexico_filter['Confirmed'], color='black') +plt.plot(days,exponential(days,*potp), color='blue', linewidth=2) +``` + + + + + [] + + + + +![png](output_18_1.png) + diff --git a/output_11_1.png b/output_11_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6d7a82bc5e527676ecca75c17a90678026f90b01 GIT binary patch literal 5383 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 KX5}qd?Ee4&^JvQe literal 0 HcmV?d00001 diff --git a/output_4_1.png b/output_4_1.png new file mode 100644 index 0000000000000000000000000000000000000000..599249f90e92c436c9084a675c8fa9dd6753376f GIT binary patch literal 9097 zcmb7~2Ut_hw)ayYAl0aVbPP@D5-CyzLy1TcklvMG=t}R&%d193N&xAg5=Epcy+=fm zCK{UbNQ(ifL3;Uu?>Xn5``vTzc}|{ZCwtG{^JHet%$nc&ul>Nx#DJZJj|Bh#upR`RuV9S5dWs>mw;`F+CQ=fyMI z6UPl}T0MPi$04f^A6u03>oG9)8=7UbVR0f5fVjkudAseq zPkvgOuzO4t%x~Iym5orw`vQWSC>jwhyW<|xFa>zU*G2I~4q|urNN)%IJDaV$yZh+G zUr_-LKe}R*jE$E-OCl%JDs@OTVmUHY1D`mG6f*DD&_)kL^qg4J%kkSOsmVHz40o82 zMq)nrN;^^so}(g=3ka{p?7$ZJaD8@Piu{P!t!CZCv(kY3rWkj+x+uUN)w9w9bK^00%w>&a z-tvsN%$JkRmU)%rOJpS4LRWKe-vprYh_+49DQEG;vs5=^!t8f9r23qDfsvg!RRHNl zK@X5xWG>f}8h|bjZ_iC z2;iAC(EXZ-!^-fL3>{jNK&T?bxAP)ztq5#TzwIQk1-vYGHRga{`0R^}%F>Ff?r=p)f7Q|S4;6b+89_Z!3y7pwWP z4X<%s-XaM}Cy3r;=R5mR_xiiTVV4jZT+qpQoCmGa6m%GHdLfq|x*$5mNz5Sv>-HGU zEe3?3tCP@G8gNKK_ag6wNeg0|&dASA5kc3@Fx9ku_wDEhGqx@isp><+yKmcBr+cr5 zj@KMCVFK39{R&4eU^N3GBLE5dTE$XrzE)) %`H!Hc`~o0mz$aJ-WQl?BOZG{U@h z>a--f`}l&B#cBEICkO1uSEP}f$Z%8eq^W_w;;m+9eEiD?7B`G`+SeqNmFp=Pa*{*Y&WfYo??u!wzx;0i3+g669Bd`?0&GbwBW4W>6B9DQ+ilt<%M3=F=Fr!>@V5HXbVJFg8yw+vUqCFg8 zT->;u7M-7So+pxbOA>isidULygKS8|k8zXpXuDxd{)YDXRq^6zYh*icD5*4d|DNTc zmL!!cEVlz6-}&gL?iKC@abv*e<(kfRHGVGyJ6&lJSNm7i;NHx)bu zIkdLOuVy~0FBjWP__{xqe%|;-NnOqbnetSQGvr65n(+5;o&&|-AVoA^2}O9tXCDc^ zPj3xW{O7ZUEvvda>)Msi@m0(fz4#ov(B#weKb!acsIjWN=^4ELXz{--`lx`%62kC< zSL$oblyykDboVs5TIYb5OX`=V3L%-eo@As_oX?=Gp6$6HyVexb49)W=2^ksezN#J& zYao0lwFkI_!$o1$*Ss+K*eIF;|JDh@3^1EhfJFe5J(+fCO~Zrx$wG^4#S@xN;$!8@ z60x|gbLFMZt5;p3h4MHBoX@tXY5N916--EC{67fPkbC$i+ze32=i|W z@wP8g;?B-rasV^VR@M-S3RJvz@|1vpxm223doyW+}_QG|g-7 z(Qw|HGj^yfuCJ+DoADXyyQQhAY5A~*t&`8*cKVM&K?bFwqXD}yYFE;OV8t{)a;?B* zvCJ0CuzKDH@~3%Ex$)E}kzY=Zd?Ey@h(2v@LHRzhJgq&iO~T zovW&&Q5j?Ou|_MB6tVyufNe>w1cgRKv-`8I9RI=^$r~zs2~iBz;uuT4&w7V9EVpdN zU5LTgr`sOxr7FxYj8mGab4O%fAQD8Sy7`H=;9?IUg)-gk6J++wA6y5oY>V7dQ@BQw zGB0~tM`Yi|{BR}zsj(|dJWl{;(ifA6AOmt{ghxui-l*vqQ31XpP<2eXN9oqX2PL3eVP+O3L$+pM0To*Q5_S<4D$ z6f2TCgC?%Lkm(@Hxi}*uj7ET}P@6Av>D`$fN9CtFL}1kb4{!~T6QF`?-DwYVb)yjR^^aj5zi3E+GbA zsY?n+rXkI9mGwz__}rBB2&4yPTmAJ(WB5hhI2n0hv;Mr+h7|cC*&KsY<=o=+4@UeH zfO^!(Ua8yb(kmONW(U%>yK9*nWrW*! z-;{NGB&T6`0Pn_-;g^SMlYSA#WrwkJr^*9uiN|S!C?G$%K}Q$46*m8qDPw)J-I+Lz9`#On^N|`pBP)S3w+|(+z+Y(Ws7SNP2P? z1;8`6dIMt*1l|We3fN{KKidn56cWxW*q7=pYW(??Ys%(WW0Ui67sfeJYL}I$FM>&4 zTW`mdQC2sBX_VEI*ag~Ff8%m6!^Y>`z^j_OJn5#MhvM?;r31TOVjLx}X(gqHvHi>T z*ovLh65s^B9URKOqC@5*8As&-d_{srH6gVEq4Fyu8i!o(_t`GEOe*~fFk4o@e`d40 z6A^kDuRy_1FwDsGTu}-As67=Df z5!v?D>lj=p9YNA=#st+rIV9*+EF2!siiv9#ti*o=$$Kp9!kvx@u%1#!HnQ93)Tiak zS2ss!H0K_2P~c`2N9KM|(rb7HlIpvhH`dKQ*VhTgez;^!_u-2ST!D+R6f)eof2RodAJoK{t<9PWPPV`MM;?u3UpIqeJQX%(l|1u$llf%jT1o)gLmUEUm5DA(8 z`m{{|yw)k%ac5CW z`)Jbhj$gvxs-r32MWMID5RGau2}Ij%=rs-LY}TvR^#z>L$)L+Kf=ezy=85{TIY)VyK+!+z&sY>7NWlthAX*C5Xy(OmLQ z%sZM?*q1F0tuv+zF*@t%Qa7?W#gOSEsLDC0gUztPH*YRGv$?6?i&s&w&!CgG7q z6A^uP4NYtc%P{H)c{sGC^G!0wc4Ln7Lww!di|ru4+-6hPZQ5FOn#GR{i-iO6UyDxo z&Ed^E;&MF)^E1!5f|>_@wdma5IAoJKlXI-`lG@GzUwK4T9#-v!=RD=<#5-*RR}@Ng zK9jzQ4!pV%lXhdO?ZMaa@$n^vOgGwGPn@87^|4i~V9BzD+`%)_3HOgpH zZ_xm9HCVSec3?Z+7(%ZiWBZmse^$@bl(VnE)Gy?;@zB!dIqLUnpGL^zSG2_m%D_A! zRQ=50yZOef2i@Jp0ljR+8ugUDr}OSspEawGC4DpeYF+SoIEJ;r>RO9KnI{DfhQkAn zf_6#z$@_nV@MBrG+Frl7&snQ-Z}`^i%`ZUDeK+~t>h5BVv8y-#qUYZj{ol#-nt@_s zWdT85d|aNYg}RuvMDB2>%AkJ_)tJzQW>y-E?2Z6yG}y#}kB7K{FcRNW z=>$`V&^eiEsWf&=C$xG6(t|57DClcnUmtG8$fNJ2v3*lbz{Vu0*(H-uP~efZiAF72 zgwT5lU-2P>p>M8{oL}l83?GKqT(g->C8h%CRUW<7_N%no&wF9llboyep)bh9m^My56D?`(ZOM_mVl%~uL`)NXEp&8!OfkA?-F8sxhcI|C@BZ$&)H)h92w}# zG9+4KnP5{Dcae0=6w>({W;*H7G4oCU=`YM=Z8w-xgu}g(!auW3fExL2B&bUc8?G*L z{;`BU?0xLXwMu);4U7}nmV5z&vyr4u6CJ~vSz&IDg10j=l&-&kC(`?>v`)QFk6XOKL@0FKK{_%JwL6U*mJK##csrqKK9Cy&0k6SGLqm5*R{t_ zl=0hd(ojl2`uSzmXZ2f}`DGh|Jr9i2s(vP1InU1JHN4r7jI~Ww+t%+gsry=1X8rl% zuHX0P?mhdNc42GluhR7j-@ftRfzQ}81AK1J7F41vyNBZ)R#^f!uXlgQcSb=?7 zzpKtWB7b%mUn=S-Gm&`mqYtrwh39bs!)Kol5og!N>#b(~XT$2e3je}a+kI_UO-@w~ z8-A$YC-;+>1+1@&xW6t!BS*eDD!2dMj*P$OB)i6T@Ls~qKr{?C2iIk%Ja?>W@}~Fw z`f|p*>)sI*f?tmcd_f^d{3zo2(!%rSU)Mc9jQh{m%+Fs3ZB**(Y?k^ARSGt~#Y}#&&ZX19nUn$>F%2)Y1UAKK-%D1P?(ier2CB?n( zjc-(%>@Lpmyjb+dV2c4i|E4n0OqPy5z zf9(1dXR@L+kMM;c$f3a9zxw=}-Oq!{c>7y@GEvGSbc`Q4AhAT233S>yl0 z?xfrdZ)Ni%>P~s#g?>R15gv(oIR#I|8sneTh*Uq>^+;#d7+zA%EV;gH!NZ}7E<^c6 z9QP@tQ#^k9*f{pY! zBY09?tatw7g~rq?w)l6B#Af`)lS;5ZjGECgs3VpmMWrmp=U=WpY6*-N(Z)^oCM%PH zxp?bZyY!D&Ak*h4nSgM zKH)HBoe7y>RPR7CiJ}>0o}>CA`NcKQqV?q_FVoq3VU69$gS#^?`NFgEc(AzUIrQ${ zjwW6xalMi-DzK59;$J5E zD$e)l(ZfiX`2C^8dj9AOy%Eg*N-JeVRdNZjvvDklP>PEHEHh|{Q+=STr&o-~%Pd*@ zOyrNaP#w}$@_V8>W*nOb9NJ)|g_`rU7t&#k73+nuP8_Lfv8lZ{uSjmeB8d@eE~uQd zFpUehMWV2Npj;rRHgZwFSV0Rr{TAWvrA z9wYo&LElCumkx&wPh&!Wo4^>z%U@Z+zNI(1u=y;r@H@8h3I#o@X%bI#uhKA8#HPD% zAO2E_*^uj4odgT?FKylDi$s0lYd2_#}p+GGLkw=MH;>NHX~m0>**k*}c*GTR%ZQAhmq$JH3hj42ZFl>GlYc1nnj@`?s7$U(JXX z%D?(%J%9_H$Hi_LlK|Q1dGAd&l70Awu1v|Ef@+_+{_0R{yl_jP+!+xkdOdek)Xkfa zCmD)K(b$P#OBX?>=?)itis~1gLX!;$`8zRy(npc6ba$o>+Ht3?PX|B5IiGqj6Q>Q@ zBTVk88?;4WB{8zz|PDr=z zckA}_5PKnZIBno0P)ma9zWvE(@c6POMi^xfOMxt!s~+j;3%P4WboeDlj4=qdxXb;SV7nH1m6J^MBvJ2Yo249f|Q=J*EK`;#Ze zdPeMNR^XErNAe!7wy8XWkE zXS&Bl{%;r4oEam1a5XWZ2!WKEuqT9?jZvraUl|YBbxDi(r4oh8{j=d0=GS*dueBKW zKY%@N&>fComDgsAv>|0-6ZG1|>mpgGQ;P-CGA%5szKK3sOg|Ngm1SUOVV6v)6j>%I zEi)y_YT)!Mg&1dxK|AE6xDwOfB&&k2UiTZCzskWToZh>|?z8FJ(g!Cw`t^;cJEO>D zAYD<uLID{znkGEi$2Nf&l;Ie64iH`lZc1 zMYDZJK=$()1((auE*7RlqRdV}-{_f7_MVIb&V69sM#dMjZk37|{#we!Z9OA2VEDyy zOy(a4wu&s2yW-blF!G7vQTvxj5j^8-^TMOmzmB>`R?G_jk;%CtuMnip!7aZNec=n@L zbtxY-%o>f-$~#*qNG~Wr7mh*Y-y=nczAdTaK_v;OKzyf>B|$nQ@etZuiiCJ}wYM)Z;QXPpoQrv}~W7^HYJ z;vvBcOC=snqozORKq`i6f}y8X&-6yK`m=pu)nLtr9EUE5MG4eO_lD>o)*Vx#g$vtB zCd863dUleV@5q8k@Kv?vt&K+z8%~E{Cc%Nks_*cMh*_= zztoh_#6~utLcB314RWH zuUNNy!{aqafkTKkPVsTQ>D&Zwx&hf2B-lUHT`y`fr=P0f4pDu|1 zj|$-x`sef%6E8q&*;M(`S+d2@o)P(qaDL4zNoNufvms|Z_i2~yQGV~U@JG3_=oNebdURAZ?^~KaMLcWE)C3I>h65~ zFQnJ{AiKsdVdq2a8c~a8|0KE6dxw217TbV{5?_=>Gm#N4I)DB3m9JM%LG8tI*vBAr zXQ%g<+KM8an6C_dM*BVe?M$c_f1yyynW--_KGE~rpN?W;eJjOVL#B3yBNn6_{8CzA z9$}NRb_~yb#V+YEzIPTMh>WKlB~}KNqGV#|a* zX{zz@0_{Vj*kZc#<{WkWZcuhsSDKO9YqN=!!@K{iR1R;xv2DlUpyw0iG_?PrH$L|< z{kz_{U;MEe*PRLgfJTqr1@ORJtc&FEcNNlx)N&p7KV7bxW(pAMjA^H=u7-`2tu=Ob z35{cFwV55jW7*D=fWKsytoBJJhun5khSJ_?3tIF9^qczf;rX5&X8;WgU)$m!*1lc7 z!6~HXej4ck@!3T_!r2HyTRue7?)_SiBIqKyW9lY3(M zMumwY9wK}$U>7XGP zXTv0&Xa20w$`5!@Lr5h^WY+-mB$ZyQkK=5{J~~fz_Jx3RUw@D4zwr(i3Q8TYdb_XKhy&DJgYJ!Of}XKpQ1tvY9W;>f@R3vYZqSPK_3hSov}+HYUE6zMw4ONpwBz_u~3j hFOSfDF8DyZOi#@7R4wWq{k0hYQqKfYs_XK{{{v%WiuC{h literal 0 HcmV?d00001 diff --git a/output_7_1.png b/output_7_1.png new file mode 100644 index 0000000000000000000000000000000000000000..dab131880cd4272529b92bf834851d80e82c7862 GIT binary patch literal 7367 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