Actividad dirigida 4: Conexión con la API del COVID19 y análisis con Pandascuando los rayos de luz no impactan la retina¶

Me conecto a la API https://covid19api.com/

Instalación de Pandas¶

In [1]:
!pip install pandas
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pandas in c:\programdata\anaconda3\lib\site-packages (1.4.2)
Requirement already satisfied: numpy>=1.18.5 in c:\programdata\anaconda3\lib\site-packages (from pandas) (1.21.5)
Requirement already satisfied: pytz>=2020.1 in c:\programdata\anaconda3\lib\site-packages (from pandas) (2021.3)
Requirement already satisfied: python-dateutil>=2.8.1 in c:\programdata\anaconda3\lib\site-packages (from pandas) (2.8.2)
Requirement already satisfied: six>=1.5 in c:\programdata\anaconda3\lib\site-packages (from python-dateutil>=2.8.1->pandas) (1.16.0)
In [2]:
pip install numpy
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: numpy in c:\programdata\anaconda3\lib\site-packages (1.21.5)
Note: you may need to restart the kernel to use updated packages.

Importar Pandas¶

In [40]:
import pandas as pd

Variables¶

Después de importar, hay que llamar la lista de países con Covid19, esto se realiza con el objeto 'url' y se verifica la función

In [30]:
url ='https://api.covid19api.com/countries'
In [31]:
url
Out[31]:
'https://api.covid19api.com/countries'

Data frame¶

Un data frame es una estructura de datos que sirve para guarar distintos tipos de datos,es similar a una hoja de cálculo. Para que se reflejen los datos de la ciudades con Covid19 hay que crear el data frame, se usa df = pd.read_json(url) para que funcione, esto funciona cuando lo llamamos a través de pandas.

In [32]:
df = pd.read_json(url)
In [33]:
df
Out[33]:
Country Slug ISO2
0 Gibraltar gibraltar GI
1 Oman oman OM
2 France france FR
3 Jersey jersey JE
4 Mali mali ML
... ... ... ...
243 Puerto Rico puerto-rico PR
244 Papua New Guinea papua-new-guinea PG
245 Saint Pierre and Miquelon saint-pierre-and-miquelon PM
246 Timor-Leste timor-leste TL
247 Montenegro montenegro ME

248 rows × 3 columns

España¶

Para visualizar los datos Covid19 en España desde el primer día de contagio, hay que crear una lista usando df[df['Country'] == 'Spain'] esto sirve para df llame a países [Country] y de ahí saque los datos de España, también nos ayuda a ver el Slug y el ISO.

In [13]:
df[df['Country'] == 'Spain']
Out[13]:
Country Slug ISO2
141 Spain spain ES
In [14]:
url_rt_es = 'https://api.covid19api.com/country/spain/status/confirmed/live'
df_rt_es = pd.read_json(url_rt_es)
df_rt_es 
Out[14]:
Country CountryCode Province City CityCode Lat Lon Cases Status Date
0 Spain ES 40.46 -3.75 0 confirmed 2020-01-22 00:00:00+00:00
1 Spain ES 40.46 -3.75 0 confirmed 2020-01-23 00:00:00+00:00
2 Spain ES 40.46 -3.75 0 confirmed 2020-01-24 00:00:00+00:00
3 Spain ES 40.46 -3.75 0 confirmed 2020-01-25 00:00:00+00:00
4 Spain ES 40.46 -3.75 0 confirmed 2020-01-26 00:00:00+00:00
... ... ... ... ... ... ... ... ... ... ...
892 Spain ES 40.46 -3.75 12818184 confirmed 2022-07-02 00:00:00+00:00
893 Spain ES 40.46 -3.75 12818184 confirmed 2022-07-03 00:00:00+00:00
894 Spain ES 40.46 -3.75 12818184 confirmed 2022-07-04 00:00:00+00:00
895 Spain ES 40.46 -3.75 12890002 confirmed 2022-07-05 00:00:00+00:00
896 Spain ES 40.46 -3.75 12890002 confirmed 2022-07-06 00:00:00+00:00

897 rows × 10 columns

Para mostrar la cabecera del resultado utilizamos:

In [15]:
df_rt_es.head()
Out[15]:
Country CountryCode Province City CityCode Lat Lon Cases Status Date
0 Spain ES 40.46 -3.75 0 confirmed 2020-01-22 00:00:00+00:00
1 Spain ES 40.46 -3.75 0 confirmed 2020-01-23 00:00:00+00:00
2 Spain ES 40.46 -3.75 0 confirmed 2020-01-24 00:00:00+00:00
3 Spain ES 40.46 -3.75 0 confirmed 2020-01-25 00:00:00+00:00
4 Spain ES 40.46 -3.75 0 confirmed 2020-01-26 00:00:00+00:00

Para mostrar la cola de los resultados utlizamos:

In [16]:
df_rt_es.tail()
Out[16]:
Country CountryCode Province City CityCode Lat Lon Cases Status Date
892 Spain ES 40.46 -3.75 12818184 confirmed 2022-07-02 00:00:00+00:00
893 Spain ES 40.46 -3.75 12818184 confirmed 2022-07-03 00:00:00+00:00
894 Spain ES 40.46 -3.75 12818184 confirmed 2022-07-04 00:00:00+00:00
895 Spain ES 40.46 -3.75 12890002 confirmed 2022-07-05 00:00:00+00:00
896 Spain ES 40.46 -3.75 12890002 confirmed 2022-07-06 00:00:00+00:00

Gráfica de los resultados de España¶¶

Ya se puede observa el comportamiento del Covid19 en España, y plotaremos los resultados con casos_es_plot()

In [71]:
casos_es = df_rt_es.set_index('Date')['Cases']
casos_es.plot(title="Casos de Covid-19 en España")
Out[71]:
<AxesSubplot:title={'center':'Casos de Covid-19 en España'}, xlabel='Date'>

Panamá¶

Con el caso de Panamá recreamos los mismo pasos que hicimos con España

Verificamos el Slug y el ISO para obtener los resultados.

In [50]:
df[df['Country'] == 'Panama']
Out[50]:
Country Slug ISO2
190 Panama panama PA
In [51]:
url_casos_pa = 'https://api.covid19api.com/country/panama/status/confirmed/live'
In [52]:
df_rt_pa = pd.read_json(url_casos_pa)
In [40]:
df_rt_pa
Out[40]:
Country CountryCode Province City CityCode Lat Lon Cases Status Date
0 Panama PA 8.54 -80.78 0 confirmed 2020-01-22 00:00:00+00:00
1 Panama PA 8.54 -80.78 0 confirmed 2020-01-23 00:00:00+00:00
2 Panama PA 8.54 -80.78 0 confirmed 2020-01-24 00:00:00+00:00
3 Panama PA 8.54 -80.78 0 confirmed 2020-01-25 00:00:00+00:00
4 Panama PA 8.54 -80.78 0 confirmed 2020-01-26 00:00:00+00:00
... ... ... ... ... ... ... ... ... ... ...
893 Panama PA 8.54 -80.78 925254 confirmed 2022-07-03 00:00:00+00:00
894 Panama PA 8.54 -80.78 925254 confirmed 2022-07-04 00:00:00+00:00
895 Panama PA 8.54 -80.78 925254 confirmed 2022-07-05 00:00:00+00:00
896 Panama PA 8.54 -80.78 925254 confirmed 2022-07-06 00:00:00+00:00
897 Panama PA 8.54 -80.78 925254 confirmed 2022-07-08 00:00:00+00:00

898 rows × 10 columns

Gráfica de Panamá¶

Con el diagrama de flujo representamos el gráfico

In [53]:
casos_pa = df_rt_pa.set_index('Date')['Cases']
casos_pa.plot(title="Casos de Covid 19 en Panamá")
Out[53]:
<AxesSubplot:title={'center':'Casos de Covid 19 en Panamá'}, xlabel='Date'>

Ploteamos Panamá y España¶

En esta parte haremos la compartiva de los casos de Covid19 de Panamá y España, primero vamos a plotear,esto signfica que vamos a mostrar una gráfica comparativa entre los dos países.

Vamos a usar pa_vs_es([casos_es,casos_pa]axis=1)

In [45]:
pa_vs_es = pd.concat([casos_es,casos_pa],axis=1)
pa_vs_es
Out[45]:
Cases Cases
Date
2020-01-22 00:00:00+00:00 0.0 0
2020-01-23 00:00:00+00:00 0.0 0
2020-01-24 00:00:00+00:00 0.0 0
2020-01-25 00:00:00+00:00 0.0 0
2020-01-26 00:00:00+00:00 0.0 0
... ... ...
2022-07-03 00:00:00+00:00 12818184.0 925254
2022-07-04 00:00:00+00:00 12818184.0 925254
2022-07-05 00:00:00+00:00 12890002.0 925254
2022-07-06 00:00:00+00:00 12890002.0 925254
2022-07-08 00:00:00+00:00 NaN 925254

898 rows × 2 columns

In [46]:
pa_vs_es.columns = ['España', 'Panamá']
pa_vs_es
Out[46]:
España Panamá
Date
2020-01-22 00:00:00+00:00 0.0 0
2020-01-23 00:00:00+00:00 0.0 0
2020-01-24 00:00:00+00:00 0.0 0
2020-01-25 00:00:00+00:00 0.0 0
2020-01-26 00:00:00+00:00 0.0 0
... ... ...
2022-07-03 00:00:00+00:00 12818184.0 925254
2022-07-04 00:00:00+00:00 12818184.0 925254
2022-07-05 00:00:00+00:00 12890002.0 925254
2022-07-06 00:00:00+00:00 12890002.0 925254
2022-07-08 00:00:00+00:00 NaN 925254

898 rows × 2 columns

Gráfica de comparación¶

In [48]:
pa_vs_es.plot(title="Comparativa Covid19 España-Panamá")
Out[48]:
<AxesSubplot:title={'center':'Comparativa Covid19 España-Panamá'}, xlabel='Date'>

Centro América¶

  1. Primero voy a mostar todos los resultados de Covid-19 de los países de Centro América, como hicimos con Panamá y España.
  2. Cuando ya tenemos los resultados de Nicaragua, Costa Rica, Honduras, El Salvador y Guatemala los comparamos con Panamá. Todo este proceso se hará con Pandas y luego el gráfico. (Se hará el mismo procediminto que hicimos anteriormente).

El Salvador¶

Siempre empezamos verificando el Slug y el ISO.

In [54]:
df[df['Country'] == 'El Salvador']
Out[54]:
Country Slug ISO2
139 El Salvador el-salvador SV
In [55]:
url_casos_sv = 'https://api.covid19api.com/country/el-salvador/status/confirmed/live'
In [56]:
df_rt_sv = pd.read_json(url_casos_sv)
In [57]:
df_rt_sv
Out[57]:
Country CountryCode Province City CityCode Lat Lon Cases Status Date
0 El Salvador SV 13.79 -88.9 0 confirmed 2020-01-22 00:00:00+00:00
1 El Salvador SV 13.79 -88.9 0 confirmed 2020-01-23 00:00:00+00:00
2 El Salvador SV 13.79 -88.9 0 confirmed 2020-01-24 00:00:00+00:00
3 El Salvador SV 13.79 -88.9 0 confirmed 2020-01-25 00:00:00+00:00
4 El Salvador SV 13.79 -88.9 0 confirmed 2020-01-26 00:00:00+00:00
... ... ... ... ... ... ... ... ... ... ...
894 El Salvador SV 13.79 -88.9 169646 confirmed 2022-07-04 00:00:00+00:00
895 El Salvador SV 13.79 -88.9 169646 confirmed 2022-07-05 00:00:00+00:00
896 El Salvador SV 13.79 -88.9 169646 confirmed 2022-07-06 00:00:00+00:00
897 El Salvador SV 13.79 -88.9 169646 confirmed 2022-07-07 00:00:00+00:00
898 El Salvador SV 13.79 -88.9 169646 confirmed 2022-07-08 00:00:00+00:00

899 rows × 10 columns

Gráfica El Salvador¶

In [58]:
casos_sv = df_rt_sv.set_index('Date')['Cases']
casos_sv.plot(title="Casos de Covid-19 en El Salvador")
Out[58]:
<AxesSubplot:title={'center':'Casos de Covid-19 en El Salvador'}, xlabel='Date'>

Nicaragua¶

Primer paso verificar el Slug y el ISO

In [61]:
df[df['Country'] == 'Nicaragua']
Out[61]:
Country Slug ISO2
36 Nicaragua nicaragua NI
In [67]:
url_casos_ni = 'https://api.covid19api.com/country/nicaragua/status/confirmed/live'
df_rt_ni = pd.read_json(url_casos_ni)
df_rt_ni
Out[67]:
Country CountryCode Province City CityCode Lat Lon Cases Status Date
0 Nicaragua NI 12.87 -85.21 0 confirmed 2020-01-22 00:00:00+00:00
1 Nicaragua NI 12.87 -85.21 0 confirmed 2020-01-23 00:00:00+00:00
2 Nicaragua NI 12.87 -85.21 0 confirmed 2020-01-24 00:00:00+00:00
3 Nicaragua NI 12.87 -85.21 0 confirmed 2020-01-25 00:00:00+00:00
4 Nicaragua NI 12.87 -85.21 0 confirmed 2020-01-26 00:00:00+00:00
... ... ... ... ... ... ... ... ... ... ...
893 Nicaragua NI 12.87 -85.21 14690 confirmed 2022-07-03 00:00:00+00:00
894 Nicaragua NI 12.87 -85.21 14690 confirmed 2022-07-04 00:00:00+00:00
895 Nicaragua NI 12.87 -85.21 14690 confirmed 2022-07-05 00:00:00+00:00
896 Nicaragua NI 12.87 -85.21 14721 confirmed 2022-07-06 00:00:00+00:00
897 Nicaragua NI 12.87 -85.21 14721 confirmed 2022-07-08 00:00:00+00:00

898 rows × 10 columns

Gráfica de Nicaragua¶

In [70]:
url_casos_ni = 'https://api.covid19api.com/country/nicaragua/status/confirmed/live'
df_rt_ni = pd.read_json(url_casos_ni)
casos_ni = df_rt_ni.set_index('Date')['Cases']
casos_ni.plot(title="Casos de Covid19 en Nicaragua")
Out[70]:
<AxesSubplot:title={'center':'Casos de Covid19 en Nicaragua'}, xlabel='Date'>

Honduras¶

In [74]:
df[df['Country'] == 'Honduras']
Out[74]:
Country Slug ISO2
91 Honduras honduras HN
In [76]:
url_casos_hn = 'https://api.covid19api.com/country/honduras/status/confirmed/live'
df_rt_hn = pd.read_json(url_casos_hn)
df_rt_hn
Out[76]:
Country CountryCode Province City CityCode Lat Lon Cases Status Date
0 Honduras HN 15.2 -86.24 0 confirmed 2020-01-22 00:00:00+00:00
1 Honduras HN 15.2 -86.24 0 confirmed 2020-01-23 00:00:00+00:00
2 Honduras HN 15.2 -86.24 0 confirmed 2020-01-24 00:00:00+00:00
3 Honduras HN 15.2 -86.24 0 confirmed 2020-01-25 00:00:00+00:00
4 Honduras HN 15.2 -86.24 0 confirmed 2020-01-26 00:00:00+00:00
... ... ... ... ... ... ... ... ... ... ...
893 Honduras HN 15.2 -86.24 427718 confirmed 2022-07-03 00:00:00+00:00
894 Honduras HN 15.2 -86.24 427718 confirmed 2022-07-04 00:00:00+00:00
895 Honduras HN 15.2 -86.24 427718 confirmed 2022-07-05 00:00:00+00:00
896 Honduras HN 15.2 -86.24 427718 confirmed 2022-07-06 00:00:00+00:00
897 Honduras HN 15.2 -86.24 427718 confirmed 2022-07-08 00:00:00+00:00

898 rows × 10 columns

Gráfica de Honduras¶

In [78]:
url_casos_hn = 'https://api.covid19api.com/country/honduras/status/confirmed/live'
df_rt_hn = pd.read_json(url_casos_hn)
casos_hn = df_rt_hn.set_index('Date')['Cases']
casos_hn.plot(title="Casos de Covid19 en Honduras")
Out[78]:
<AxesSubplot:title={'center':'Casos de Covid19 en Honduras'}, xlabel='Date'>

Guatemala¶

In [79]:
df[df['Country'] == 'Guatemala']
Out[79]:
Country Slug ISO2
239 Guatemala guatemala GT
In [80]:
url_casos_gt = 'https://api.covid19api.com/country/guatemala/status/confirmed/live'
df_rt_gt = pd.read_json(url_casos_gt)
df_rt_gt
Out[80]:
Country CountryCode Province City CityCode Lat Lon Cases Status Date
0 Guatemala GT 15.78 -90.23 0 confirmed 2020-01-22 00:00:00+00:00
1 Guatemala GT 15.78 -90.23 0 confirmed 2020-01-23 00:00:00+00:00
2 Guatemala GT 15.78 -90.23 0 confirmed 2020-01-24 00:00:00+00:00
3 Guatemala GT 15.78 -90.23 0 confirmed 2020-01-25 00:00:00+00:00
4 Guatemala GT 15.78 -90.23 0 confirmed 2020-01-26 00:00:00+00:00
... ... ... ... ... ... ... ... ... ... ...
893 Guatemala GT 15.78 -90.23 920294 confirmed 2022-07-03 00:00:00+00:00
894 Guatemala GT 15.78 -90.23 921146 confirmed 2022-07-04 00:00:00+00:00
895 Guatemala GT 15.78 -90.23 922340 confirmed 2022-07-05 00:00:00+00:00
896 Guatemala GT 15.78 -90.23 927473 confirmed 2022-07-06 00:00:00+00:00
897 Guatemala GT 15.78 -90.23 933259 confirmed 2022-07-08 00:00:00+00:00

898 rows × 10 columns

Gráfica de Guatemala¶

In [83]:
url_casos_gt = 'https://api.covid19api.com/country/guatemala/status/confirmed/live'
df_rt_gt = pd.read_json(url_casos_gt)
casos_gt = df_rt_gt.set_index('Date')['Cases']
casos_gt.plot(title="Casos de Covid19 en Guatemala")
Out[83]:
<AxesSubplot:title={'center':'Casos de Covid19 en Guatemala'}, xlabel='Date'>

Costa Rica¶

In [84]:
df[df['Country'] == 'Costa Rica']
Out[84]:
Country Slug ISO2
242 Costa Rica costa-rica CR
In [85]:
url_casos_cr = 'https://api.covid19api.com/country/costa-rica/status/confirmed/live'
df_rt_cr = pd.read_json(url_casos_cr)
df_rt_cr
Out[85]:
Country CountryCode Province City CityCode Lat Lon Cases Status Date
0 Costa Rica CR 9.75 -83.75 0 confirmed 2020-01-22 00:00:00+00:00
1 Costa Rica CR 9.75 -83.75 0 confirmed 2020-01-23 00:00:00+00:00
2 Costa Rica CR 9.75 -83.75 0 confirmed 2020-01-24 00:00:00+00:00
3 Costa Rica CR 9.75 -83.75 0 confirmed 2020-01-25 00:00:00+00:00
4 Costa Rica CR 9.75 -83.75 0 confirmed 2020-01-26 00:00:00+00:00
... ... ... ... ... ... ... ... ... ... ...
893 Costa Rica CR 9.75 -83.75 904934 confirmed 2022-07-03 00:00:00+00:00
894 Costa Rica CR 9.75 -83.75 904934 confirmed 2022-07-04 00:00:00+00:00
895 Costa Rica CR 9.75 -83.75 904934 confirmed 2022-07-05 00:00:00+00:00
896 Costa Rica CR 9.75 -83.75 904934 confirmed 2022-07-06 00:00:00+00:00
897 Costa Rica CR 9.75 -83.75 904934 confirmed 2022-07-08 00:00:00+00:00

898 rows × 10 columns

Gráfica Costa Rica¶

In [87]:
url_casos_cr = 'https://api.covid19api.com/country/costa-rica/status/confirmed/live'
df_rt_cr = pd.read_json(url_casos_cr)
casos_cr = df_rt_cr.set_index('Date')['Cases']
casos_cr.plot(title="Casos de Covid19 en Costa Rica")
Out[87]:
<AxesSubplot:title={'center':'Casos de Covid19 en Costa Rica'}, xlabel='Date'>

Comparación de países centroaméricanos¶

  • Honduras (hn)
  • Panamá (pa)
  • Guatemala (gt)
  • El Salvador (sv)
  • Nicaragua (ni)
  • Costa Rica (cr)
In [91]:
pa_vs_sv_vs_ni_vs_cr_vs_gt_vs_hn = pd.concat([casos_pa,casos_sv,casos_ni,casos_cr,casos_gt,casos_hn],axis=1)
pa_vs_sv_vs_ni_vs_cr_vs_gt_vs_hn
Out[91]:
Cases Cases Cases Cases Cases Cases
Date
2020-01-22 00:00:00+00:00 0 0 0 0 0 0
2020-01-23 00:00:00+00:00 0 0 0 0 0 0
2020-01-24 00:00:00+00:00 0 0 0 0 0 0
2020-01-25 00:00:00+00:00 0 0 0 0 0 0
2020-01-26 00:00:00+00:00 0 0 0 0 0 0
... ... ... ... ... ... ...
2022-07-03 00:00:00+00:00 925254 169646 14690 904934 920294 427718
2022-07-04 00:00:00+00:00 925254 169646 14690 904934 921146 427718
2022-07-05 00:00:00+00:00 925254 169646 14690 904934 922340 427718
2022-07-06 00:00:00+00:00 925254 169646 14721 904934 927473 427718
2022-07-08 00:00:00+00:00 925254 169646 14721 904934 933259 427718

898 rows × 6 columns

In [96]:
pa_vs_sv_vs_ni_vs_cr_vs_gt_vs_hn.columns = ['Panamá', 'El Savador', 'Nicaragua', 'Costa Rica', 'Guatemala', 'Honduras']
pa_vs_sv_vs_ni_vs_cr_vs_gt_vs_hn
Out[96]:
Panamá El Savador Nicaragua Costa Rica Guatemala Honduras
Date
2020-01-22 00:00:00+00:00 0 0 0 0 0 0
2020-01-23 00:00:00+00:00 0 0 0 0 0 0
2020-01-24 00:00:00+00:00 0 0 0 0 0 0
2020-01-25 00:00:00+00:00 0 0 0 0 0 0
2020-01-26 00:00:00+00:00 0 0 0 0 0 0
... ... ... ... ... ... ...
2022-07-03 00:00:00+00:00 925254 169646 14690 904934 920294 427718
2022-07-04 00:00:00+00:00 925254 169646 14690 904934 921146 427718
2022-07-05 00:00:00+00:00 925254 169646 14690 904934 922340 427718
2022-07-06 00:00:00+00:00 925254 169646 14721 904934 927473 427718
2022-07-08 00:00:00+00:00 925254 169646 14721 904934 933259 427718

898 rows × 6 columns

Gráfica del seguimiento del virus Covid-19 en Centroamérica¶

In [109]:
pa_vs_sv_vs_ni_vs_cr_vs_gt_vs_hn.plot(title="Comparación del virus Covid-19 en países de Centroamérica")
Out[109]:
<AxesSubplot:title={'center':'Comparación del virus Covid-19 en países de Centroamérica'}, xlabel='Date'>