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": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEGCAYAAACO8lkDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAcJUlEQVR4nO3dfaxlVXnH8e+jFI31BZDbCTKMQy011foGt0SLsVbwDUwHW2tIjOJLMm2qRqMWBk1am7bJqK1WbWuCqB0rFvGtThGr0trW1IDcoai8SBxxRmYywCCKWhIt+vSPsy8c7jn7nP2+Xvbvk9zM3H3OPWftfc5ez15rPWttc3dERESmPSB0AUREJD4KDiIiMkPBQUREZig4iIjIDAUHERGZcUToAnTh2GOP9a1bt4YuhohIUvbs2XOHu6/MeyyL4LB161bW1tZCF0NEJClmtr/sMXUriYjIDAUHERGZoeAgIiIzFBxERGSGgoOIiMzIIltJwtq647P3/n/fzrMClkREuqKWg7QyHRjm/S4iaVJwkMbKAoEChEj6FBxERGSGgoOIiMxQcJDGygafNSgtkj4FB2llYyBQYBDJg1JZpTUFBJH8qOUgIiIzFBxERGSGgoOIiMxQcBARkRkakJboae0mkeGp5SBR09pNImEoOEi0Ul67aeuOz977I5IiBQeRGqpU+mrtSA4UHEQqqlLpp9zaEZmm4CDRarp2Ux9dOqr0ZWwUHCRqddduUpeOSDcUHCR6+3aede/PIjFc3WulWsmFgoPIlLIuqTqVvlaqlRwEnQRnZkcBFwG/DjjwSuAm4GPAVmAf8GJ3/36gIsqIzOuSmq7Y9+08q/KEPAUETV5Mnbl7uDc32wV82d0vMrMjgYcAbwbudPedZrYDONrdz1/0Oqurq762tjZAiSV287qQqlRMi7qeVLHV1/RzkGGZ2R53X533WLBuJTN7BPAM4AMA7v5Td/8BsA3YVTxtF3B2mBJKimLo0hn7BLgYxn6kvZDdSicCh4EPmdmTgD3A64BN7n6oeM6twKZ5f2xm24HtAFu2bOm/tJKMkFeoy7qmRFIRckD6COBk4H3u/hTgf4Ed00/wSZ/X3H4vd7/Q3VfdfXVlZaX3wkreusgy0hWz5CRkcDgAHHD3q4rfP8EkWNxmZscBFP/eHqh8MjIxdEnlQOm8eQgWHNz9VuAWM3tssel04AZgN3Buse1c4DMBiicjNV2B6Yq/OQXa9IW+n8NrgYuLTKWbgVcwCViXmtmrgP3AiwOWT0ZGYwbd0XFLW9Dg4O7XAvPSqE4fuiySpzq59ovGDFTRydhohrRkS+ssiTSn4FBi7LnqqRs6c0iT6CQ3Cg5zdHnFqSCTjr6ybPT5S4qCLp/RlS6Xz6h7BbioT3vIJQTarmOTyzo4VSrhOmMPVY9F1co/5WMr+Vm0fIaCwwZ1gsOiyn/Iboa2QSiXdXCaBoauAqMChKQmyrWVUhfLbNi25YhlP9pqWt42XYgbuwxV6UtOFBw2iGV2p8Yqulel5be+fdmxLwsqVW5KJJICBYc5upjd2SbIKAWze00r7HnHvkprK5aLDJGmNObQQpW++rr92U3GKjTmMFF3P+oE3Y03+ln0vLL3SPGYSt40IF2iixO365O/6UC2spUm5u3Hsm1dSvnYyfgoOMwR69WyJlN1q+xz7iM46POR1Cg4bBB7BRxr4EpNiLGaPlt3Il1TKmtitNxx/6oe07rHvmpqcAxJBmPNiBvrftel4BCp9ZRIBYb+9BUgNopxLkmMwWoIY93vJkbZrQTj6ropOwFy3d9pVT/nZV2NdTObqrxuWVn6llK3apfliX2/Q1C30hxj6bqpM5ErR2Wfc53ZzXWPk7otmtOVfTxC3wkuqFwDwroqJ9YYbmSzbGZ0qAoo9+Nel262FJfRthxknGK5Eg1Z2Y119vZY97spBQeRgcVQGeXQrdqk+y6H/R7KaAekxyLGAdGQQrccxna862qTQNDHfTpypwHpEdNJcH8hjofSkqurcmXfJDU4lnGmlIx6QFpE4jPEzbDWtytgl1PLYQQ0EHefEFeMbd5TabESioLDSGggLq4ZyU3+pqvypx5w6lzspLqPMdCAtIxG6Iqi7T02mrxOldetcp+QGAd7l72nkjGWi3pA2sweaGb/Y2aXFb+faGZXmdleM/uYmR0ZuoySv5QqiqZX/XUGcuu0WkIN9k4P8m88JgoM7QUPDsDrgBunfn8b8C53/xXg+8CrgpRKsjDdhbKsO6JqVlGXt41to69KuE0QWba9a00CkwJDNUGDg5ltBs4CLip+N+BZwCeKp+wCzg5TOknRdDCYV3FUHXvpchB/UbdNWSug6vuE7ioLKXRgyl3olsPfAOcBPy9+fyTwA3e/p/j9AHB8iIJJeuqsJdWkhVAnMCx7jxBdMWPKWhvTvvYlWHAwsxcAt7v7noZ/v93M1sxs7fDhwx2XTlLT5z2h51XydQZoqz4WIkDM2486FWtXlXDXGVR1WokyX8hJcKcBv2NmZwIPBh4OvBs4ysyOKFoPm4GD8/7Y3S8ELoRJtlLTQmhKvTTV172o65ahj7/ZuG+L/qbOc+cp6/4re802aylJdcGCg7tfAFwAYGbPBN7k7i8xs48DLwIuAc4FPtNXGar0Sff1fvrShpHScV8WfPrel7rdaE1UbUXNCxjSr9BjDvOcD7zBzPYyGYP4QB9vMnTTXmu79Kvq1fBQ77vsSrvq9nldI2Ndp0kthmGNdhLckFdkuj3hcPq6JWqdCVdNMo3G9D0Ych7EsvevegfAXD+fqCfBiQyh7fpGy16r7hX9GCqeeYZsMbeZ3KeW/oiDg1LdpIo+uh/LKp7U1zxapup+9XUOtg0EuX4uZUYbHGC4xegUiNLSZyWtK9X5Nra8dG6EN+rgAMMN8CnnehhtA3FMlXJMZQmh7Tmic6yd0Q5IS97aDhAv03XqZp/vuawcQ1aidZcKaRsgN7521fdvs6RJShYNSCs4jMRYB0DrGKpPPHSACF3x1f0u9hkglK2k4DBqoSuDoTU9qWNJb16maWW37H272sc+KtWuA4RMKJV1xMaWedFmYHfIxIG+Ks3Qn2tf5Rnz5L9QFBwkG10EwqESB7q4gu868LfN0OqiPMsyxdrsm9Sj4CCyQd9XqcsqqkVrfA2RwROqIu17/ocCRD0KDpnTHIt0zWvFdFFRxhggxtb9mQIFhxEYyxyLHAPhdCumy2yqPlpGOR7/MVNwGImxDOilEAiXlalq3n2T1+7DdGsmxPGv+h4xfhdiplRWGaUYctjrpBj3mYLaJtV50d8OMZ+haotKgWE+zXMQmZLivI++5yf0PaO86utuLEeXqbAyS8FBpJDyvTViC2pNr/T7fo8u3ncsFgWHkPeQFklSqBv7zLuSXv89x8pPgSEsDUiL1NBkBnCXs4bLkgpCpHz2WekqMISn4JCo3G8M05c26ZZNcvGHuFlQF6/Z1LzspCbHWN/n+Cg4JCi29XRSk0K6a1OhAsTGoFDnGPexHpa0pzGHjvWdIrnoqlEnSnUpHasY0m770vegts6L5tRy6JCu6PPWpLuk6zvTVansYvjedXEuLJrzsWji3bKySDUKDh2JqR9Y+tOkS6ppN1abVmLI793Q50LsxyNV6lZKSMo5+jlpcqz7uidE6pVe2T40mQ+Rw/GIiVoOiVBgkFzlnCCQMs2Q7lBfM1gVGMKIYSC4yndqqO9HnePR5blQN3sptpnkMYvyNqFmdoKZfcnMbjCz683sdcX2Y8zsi2b2reLfo0OVsS5dAeUjluSCKt+pOmmiTdU9Hl2eC3X/VudhN4K1HMzsOOA4d7/GzB4G7AHOBl4O3OnuO81sB3C0u5+/6LViaTn0RS2HYaV6vPsqd2wtk1Q/nxhF2XJw90Pufk3x/x8BNwLHA9uAXcXTdjEJGKNWNR1Ss0wlVVVaJsu+2woM3YpiQNrMtgJPAa4CNrn7oeKhW4FNgYoVjSb9zgoSkooqqa91u7GkveAD0mb2UOA/gb9090+Z2Q/c/aipx7/v7jPjDma2HdgOsGXLllP2798/WJmH1EUFP33ixDDImoJUBzWHTIro6ngsaw2otdCfKLuVAMzsF4BPAhe7+6eKzbcV4xHr4xK3z/tbd7/Q3VfdfXVlZWWYAidq/eSKZZA1ZmUtrlQqob4GYzXIOz4hB6SNyZjCne7++qnt7wC+NzUgfYy7n7fotXIekB6iAteJPpFyUEhd1duNlj1HmmndcjCz06psq+k04KXAs8zs2uLnTGAn8Gwz+xZwRvH7aI3xyx9iYF3Ln4S1qGXSdn0qaaZSy8HMrnH3k5dtCyX1lkOVcYC2N4hJZUAv1NW7rk7jpRZdfxrfQ9rMngb8JvB64F1TDz0ceKG7P6nLgjaVcnBoUmkvO1nKgk3sASJkBd3kvfsY3B9rwkCd7+yYjkvf2nQrHQk8lMkCfQ+b+vkh8KIuCzlGTW4xCcsHB+fdfCUnfXQ71e266GNwf6wJA2X7ra6+sKp2Kz3a3aPNFU215RDijlcxd59UKVvfV5Jtu/j6WD8o9OfSp6YVfc7HZEiLWg5Vl+y+u8giejzw4PWN7v6sDsonAixfNG2Iu+Cp0hGZqDrP4WLgm8CJwJ8B+4CreyrTaMRWEcXQXM81n15Lm9TXxV30dMybq9qttMfdTzGzr7v7E4ttV7v7b/RewgpS7VaC6hVy3fvmlv1tlfeLsUJuO5je9UBvne6tqs8d6+Br0wSLNq8pE13MkP6/4t9DZnaWmT0FOKaT0kklVYNI2YJlOat7b4GulyRZVIY6g6plAWNsn9969+L6T90ECw1kd6NqcPgLM3sE8EbgTcBFTNJbpaW+BlPrPJazPiuKPrLCyl4v989v+liONWsrNpWCg7tf5u53uft17v7b7n4K8JieyzYaMTV3YyrLtDHNkh3zle+Y9z02bRbee0NnpZClV6FDVIKxV7SLunJiHXwcU1CLhY55N9oEB+usFHI/TbsVFn35czkx5gXRRd0Qy+4oFmJhw1w+i5jpmLfXeFVWM/uuu2/puDyNpJytNE/bCVFNs5VSPIGq7k+dbKfQS1iUlTXFz6cJZRoNp3G2kpn9yMx+OOfnR8CjeimtLFS1BZH7Ehp1LTsWsdzzYuyBAXTVH4vgd4LrwphaDuvanDA5XZnVOVZtV7btW26tOolftHeCk/madB21ef2UK56qxyq2gerUxZoAIN1RcIhU1/MfNp7IOXU7dbEPbVtiY6ooQ3e9yTAUHCLWxzIPOZ7Ibfdp/Tg3SYHs8vimkIKpeQjjoeAQuTYVxhhO5K4CQ9Xfq7x3X11+Y2uhSFhVl+yWgDYuKTD0/QtyFeuVepV5Ll0uUy4yj4JDIqpewbZZvTXXCmdetlJK+znEfSyqWnbPjaGl+pmmQKmsiauz3PH04yHuQteXviqrpneF6/p4xZjiGkOlHFOQSpVSWTNVpc+7i7TV2Pu4+0jNrTrQnFNa8LRl4xuhs93GMJ4WmloOCWtzRdnkJMql4lsm9iv1dX2VJYUr8hg/oxSp5SAzdAKlZagWSgpX5DGVJWcakE5Y28HBumMPEtZYAvqibtE6CyhKO2o5JK7tFWXVfmOddN2NZWiuQrk2kwr1He1WtMHBzJ5nZjeZ2V4z2xG6PDHrYnBwDPeCgOWVc5+Vdgqz1UPO/UihS2tMouxWMrMHAn8HPBs4AFxtZrvd/YawJctbTkFgnpDzOpbNVYghNXT6/WMqz7TY5lnkLNaWw6nAXne/2d1/ClwCbAtcJklYzFelMbYoQqeqLhJjmXIUa3A4Hrhl6vcDxbZ7mdl2M1szs7XDhw8PWjjJV5O1lPoQQ4AYWh/riElzsQaHpdz9QndfdffVlZWV0MUZlAY1+xVLgBijKgkWMbcCcxJrcDgInDD1++Zi2+jF2AWRghgHWtU9Ml/MXVpjEmtwuBo4ycxONLMjgXOA3YHLFJyumNoJsdRF07x8VYwSWpTBwd3vAV4DfB64EbjU3a8PWyrJQdWr0iEr7VzXZ+qLAuowokxlBXD3y4HLQ5dDxqtOSmfb1E9VbPXEnG6bCy28lxjleMen6bLpfZdF3wtZRgvvZURdEHEZatn0JmXRWJS0EW23kpRTQEhP359ZTHeLkzwoOIgEoi6gNI3lc1O3kkgLTTNn1AWUpjF9bgoOIi3VHVPoY76K0jv7N7Z5RupWEulADJWw0julSwoOIhlRQCinwFmPupUSp0X40qMuoOF1MVYwts9NwSFhYxocy43mqwyny7GCMX1u6lZKlPLa06fPKU1j+dwUHEQaUP+15E7dSiI1qTsvLWMbK+iKgkOi9IUPY2y57rkoGytQQkc5dSslTHnt46DPuBsbj928FqCO733UckicbqmYN3Vh9UMtwOUUHKSUmtyzhuzOUwUmISk4yFy6Yi03plx3GS+NOcgMzaFYrupx0HhBnDaO101vlwm1HER60rb1pYy0fqkFuJhaDiOjK9lhdNX6UkZav3Q8y6nlMCJVr2R1xRoXZaRJCAoOI1E380VNbpF6QmT39fmeCg5SSleszan1NS4hsvv6fk8FB5GeVGl91bny07yTOIWYjzLEeyo4jISuZMNY1Pqqc+WneScytCDBwczeYWbfNLOvm9mnzeyoqccuMLO9ZnaTmT03RPlypXGEcDZe9de58tNMaQkhVCrrF4EL3P0eM3sbcAFwvpk9DjgHeDzwKOAKM/tVd/9ZoHJmRwFheKH7o/WZ9yvEhLoh3jNIy8Hdv+Du9xS/XglsLv6/DbjE3X/i7t8B9gKnhiijSBeGvrqfNyahFkb/umiV1x1T6rsnwNy90xesXQCzfwE+5u4fMbO/Ba50948Uj30A+Jy7f2LO320HtgNs2bLllP379w9ZbJFKupoVXeUqcdl7qQURr1BLeZjZHndfnfdYby0HM7vCzK6b87Nt6jlvAe4BLq77+u5+obuvuvvqyspKl0UXGUSdK79lz1XrIF2xjin1Nubg7mcsetzMXg68ADjd72u+HAROmHra5mKbSJKW9Q3XXUpDZChBBqTN7HnAecBvufvdUw/tBj5qZu9kMiB9EvDVAEUcFQ1eNlP1uMWwPpI+V6kryJiDme0FHgR8r9h0pbv/YfHYW4BXMuluer27f27Z662urvra2lpfxc2ali1uJsbjVnetLIlHjGMOwQeku6Dg0MyiPk1VKOViPm6hWyjSXIjPblFw0JLdIhlRQEhXbJ+dls8QEZEZCg4jpvWWmtFxkzFQcBg5rbfUTNPjppVVJRUakBYZSIwZTjJuQWZIi8h9Yp0FK/1JvZWo4CAi0rEcFj9UcBAR6VAurUQFB5EBKMNJUqPgIDIQZYZJSpStJNIRLV0h61LJTFO2kkjPchiAlO7k0EpUy0GkpZgX4hsDtdiaU8tBKkk9L1vGRy22/ig4CKCTTNKTS8porBQcRCdZS0pTlRwpOIh0IIcBSOlGLt2zCg4iHdm386x7f6R/MbbYcuqeVbaSAOnkZYts1Ge2UtXXXhYEYj2XdA/pEWlzoiglUOQ+VS+YqrQOYj2fFBxGQlf/It2oOnelardRrOeh5jmMgDKOROIUa2BYRsFBRKQnqQYGgCNCF0BEJDb7dp61sJs21QHoOtRyyETVtL5ccrBF+lY2d2UMgQE0IJ2dRRlHGrAWaSe3RRYXDUgH7VYyszcCfwWsuPsdZmbAu4EzgbuBl7v7NSHLmJqyL+iiAesUv9Qi0q9g3UpmdgLwHOC7U5ufD5xU/GwH3hegaCIioxdyzOFdwHnAdL/WNuDDPnElcJSZHRekdCIiG8SwZMdQ44ZBgoOZbQMOuvvXNjx0PHDL1O8Him3zXmO7ma2Z2drhw4d7Kmk+YvhSi+RgLGs39RYczOwKM7tuzs824M3An7R5fXe/0N1X3X11ZWWlm0JnTiuHivRjiOy/oSe69jYg7e5nzNtuZk8ATgS+Nhl/ZjNwjZmdChwETph6+uZim3REAUGknbEkdwzereTu33D3X3L3re6+lUnX0cnufiuwG3iZTTwVuMvdDw1dRhGRsYttEtzlwM3AXuD9wB+FLY6ISByGHjcMHhyKFsQdxf/d3V/t7o9x9ye4u2a2iUhUQiZ3DDluqBnSIiIN5HD/k2hnSIuIpCrVgFBV8G4lERGJj4KDiIjMUHAQEZEZCg4iIjJDwUFERGZkkcpqZoeB/aHLUeJY4I7QhehALvsB+exLLvsB+exLavvxaHefuzhdFsEhZma2VpZHnJJc9gPy2Zdc9gPy2Zdc9gPUrSQiInMoOIiIyAwFh/5dGLoAHcllPyCffcllPyCffcllPzTmICIis9RyEBGRGQoOIiIyQ8GhI2b2+2Z2vZn93MxWNzx2gZntNbObzOy5U9ufV2zba2Y7hi/1cmb2VjM7aGbXFj9nTj02d79ilcLxXsTM9pnZN4rPYa3YdoyZfdHMvlX8e3Tocs5jZh80s9vN7LqpbXPLXtwJ8j3F5/R1Mzs5XMnvr2Q/sjlH7sfd9dPBD/BrwGOB/wBWp7Y/Dvga8CAm987+NvDA4ufbwC8DRxbPeVzo/ZizX28F3jRn+9z9Cl3eBfuRxPFesg/7gGM3bHs7sKP4/w7gbaHLWVL2ZwAnA9ctKztwJvA5wICnAleFLv+S/cjiHNn4o5ZDR9z9Rne/ac5D24BL3P0n7v4dJrdAPbX42evuN7v7T4FLiuemomy/YpX68S6zDdhV/H8XcHbAspRy9/8C7tywuazs24AP+8SVwFFmdtwwJV2sZD/KpHaO3I+CQ/+OB26Z+v1Asa1se4xeUzTvPzjVbZFS+SG98s7jwBfMbI+ZbS+2bXL3Q8X/bwU2hSlaI2VlT/GzyuEcuR8FhxrM7Aozu27OT9JXoEv2633AY4AnA4eAvw5a2HF7urufDDwfeLWZPWP6QZ/0ZSSZm55y2cn0HNFtQmtw9zMa/NlB4ISp3zcX21iwfVBV98vM3g9cVvy6aL9ilFp5Z7j7weLf283s00y6KG4zs+Pc/VDR9XJ70ELWU1b2pD4rd79t/f+JnyP3o5ZD/3YD55jZg8zsROAk4KvA1cBJZnaimR0JnFM8Nyob+npfCKxnaZTtV6ySON5lzOwXzexh6/8HnsPks9gNnFs87VzgM2FK2EhZ2XcDLyuylp4K3DXV/RSdjM6R+1HLoSNm9kLgvcAK8Fkzu9bdn+vu15vZpcANwD3Aq939Z8XfvAb4PJNMmg+6+/WBir/I283syUya/PuAPwBYtF8xcvd7EjneZTYBnzYzmJy3H3X3fzWzq4FLzexVTJatf3HAMpYys38Cngkca2YHgD8FdjK/7JczyVjaC9wNvGLwApco2Y9n5nCObKTlM0REZIa6lUREZIaCg4iIzFBwEBGRGQoOIiIyQ8FBRERmKDiI1GRmPw5dBpG+KTiIiMgMBQeRDpjZVjP792LxtX8zsy3F9n8o7k3wFTO72cxeVGx/gJn9vZl9s7iXweXrj4nEQMFBpBvvBXa5+xOBi4H3TD12HPB04AVMZgUD/C6wlcma/y8FnjZYSUUqUHAQ6cbTgI8W//9HJsFg3T+7+8/d/QbuW5b66cDHi+23Al8arqgiyyk4iPTvJ1P/t2ClEKlBwUGkG19hstIrwEuALy95/n8Dv1eMPWxispibSDS0KqtIfQ8pVuRc907gtcCHzOyPgcMsX0n0k8DpTFbsvAW4Brirh7KKNKJVWUUCMbOHuvuPzeyRTNb5P60YfxAJTi0HkXAuM7OjgCOBP1dgkJio5SAiIjM0IC0iIjMUHEREZIaCg4iIzFBwEBGRGQoOIiIy4/8BFIGUiI7mNHoAAAAASUVORK5CYII=\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 0000000..6d7a82b Binary files /dev/null and b/output_11_1.png differ diff --git a/output_18_1.png b/output_18_1.png new file mode 100644 index 0000000..a6c9d78 Binary files /dev/null and b/output_18_1.png differ diff --git a/output_4_1.png b/output_4_1.png new file mode 100644 index 0000000..599249f Binary files /dev/null and b/output_4_1.png differ diff --git a/output_7_1.png b/output_7_1.png new file mode 100644 index 0000000..dab1318 Binary files /dev/null and b/output_7_1.png differ diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..59348f9 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +gitpython