Skip to content

Latest commit

 

History

History
1582 lines (1289 loc) · 28.5 KB

ad4.md

File metadata and controls

1582 lines (1289 loc) · 28.5 KB

AD4: Conexión con la API del Covid y análisis con Pandas

Esta es la actividad dirigia 4, aquí mostramos las diversas tablas o gráficos con las cifras del Covid-19 tras un análisis de un sitio web que mantiene actualizados los datos desde el inicio de la pandemia. Esta actividad la realizamos con el Pandas.

Me conecto a la API: Covid19api

Instalación de Pandas

Para poder comenzar con este proceso de análisis de los datos instalaremos pandas. Luego haremos lo mismo con el numpy.

!pip install pandas
Requirement already satisfied: pandas in c:\users\rcarranza\anaconda3\lib\site-packages (1.4.2)
Requirement already satisfied: pytz>=2020.1 in c:\users\rcarranza\anaconda3\lib\site-packages (from pandas) (2021.3)
Requirement already satisfied: numpy>=1.18.5 in c:\users\rcarranza\anaconda3\lib\site-packages (from pandas) (1.21.5)
Requirement already satisfied: python-dateutil>=2.8.1 in c:\users\rcarranza\anaconda3\lib\site-packages (from pandas) (2.8.2)
Requirement already satisfied: six>=1.5 in c:\users\rcarranza\anaconda3\lib\site-packages (from python-dateutil>=2.8.1->pandas) (1.16.0)
pip install numpy
Requirement already satisfied: numpy in c:\users\rcarranza\anaconda3\lib\site-packages (1.21.5)Note: you may need to restart the kernel to use updated packages.
pip install pd
Requirement already satisfied: pd in c:\users\rcarranza\anaconda3\lib\site-packages (0.0.4)
Note: you may need to restart the kernel to use updated packages.

Importar Pandas

Procedemos a importar Pandas a pd, con esta acción esperamos que la nomeclatura al momento de establecer un código de ejecución sea más práctica.

import pandas as pd

Selección de ciudades con Covid-19

Seleccionaremos el sitio Web de API, las ciudades con Covid19.

url = 'https://api.covid19api.com/countries'
url 
'https://api.covid19api.com/countries'

Marco de Datos

A través de Pandas llamaremos para visualización de los datos de las ciudades con el comando: df = pd.read_json(url)

df = pd.read_json(url)
df
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
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

Visualización de Datos

Se mostrará la visualización de los datos, los resultados de países como España y Panamá. Luego se podrá ver gráficos y ver el desarrollo del virus, al mismo tiempo que una comparación de estos dos países.

Datos de España

Comenzamos con data frame de este país y luego conocer la posición y posteriormente mediante la url procedemos a hacer el llamado de los datos desde el primer día de la pandemia hasta la fecha actual. Se hará con: df[df['País'] == 'España']

df[df['Country'] == 'Spain']
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
Country Slug ISO2
141 Spain spain ES
url_rt_es = 'https://api.covid19api.com/country/spain/status/confirmed/live'
df_rt_es = pd.read_json(url_rt_es) 
df_rt_es
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
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
... ... ... ... ... ... ... ... ... ... ...
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 Spain ES 40.46 -3.75 12890002 confirmed 2022-07-07 00:00:00+00:00
898 Spain ES 40.46 -3.75 12973615 confirmed 2022-07-08 00:00:00+00:00

899 rows × 10 columns

Ahora, aplicaremos un data frame para mostrar la cabecera de los resultados en España

df_rt_es.head()
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
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

En esta oportunidad con otro data frame vizualizaremos la parte final de la tabla

df_rt_es.tail()
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
Country CountryCode Province City CityCode Lat Lon Cases Status Date
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 Spain ES 40.46 -3.75 12890002 confirmed 2022-07-07 00:00:00+00:00
898 Spain ES 40.46 -3.75 12973615 confirmed 2022-07-08 00:00:00+00:00

Gráfica de los datos

Mediante el comando casos_es.plot() plotearemos los datos para que se visualicen los resultados

casos_es = df_rt_es.set_index('Date')['Cases']
casos_es.plot(title="Casos de Covid-19 en España")
Matplotlib is building the font cache; this may take a moment.





<AxesSubplot:title={'center':'Casos de Covid-19 en España'}, xlabel='Date'>

png

Datos de Panamá

En esta ocasión realizamos la creación de un data frame de la ciudad para conocer su posición. Posteriormente se hizo la selección de los datos a través de la url de API. Además, se creó otro data frame para hacer el llamado través de Pandas de la información del url. Por último se procederá a vizualizar el gráfico para conocer el compromiso del virus desde el día 1 a la actualidad.

Conoceremos la posición de Panamá

df[df['Country'] == 'Panama'] 
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
Country Slug ISO2
190 Panama panama PA

Datos a través de la url de API

url_casos_pa = 'https://api.covid19api.com/country/panama/status/confirmed/live'

Data frame para hacer el llamado a través de Pandas

df_rt_pa = pd.read_json(url_casos_pa)
df_rt_pa
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
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
... ... ... ... ... ... ... ... ... ... ...
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-07 00:00:00+00:00
898 Panama PA 8.54 -80.78 932710 confirmed 2022-07-08 00:00:00+00:00
899 Panama PA 8.54 -80.78 925254 confirmed 2022-07-09 00:00:00+00:00

900 rows × 10 columns

Visualizar el Gráfico

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

png

Ploteamos a los países de España y Panamá

Hicimos la comparación de los casos de España y panamá, se plotearon y se mostró la gráfica comparativa sobre el comportamiento del virus cuando comenzó la pandemia.

pa_vs_es = pd.concat([casos_es,casos_pa],axis=1)
pa_vs_es
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
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-05 00:00:00+00:00 12890002.0 925254
2022-07-06 00:00:00+00:00 12890002.0 925254
2022-07-07 00:00:00+00:00 12890002.0 925254
2022-07-08 00:00:00+00:00 12973615.0 932710
2022-07-09 00:00:00+00:00 NaN 925254

900 rows × 2 columns

Ahora se procede a identificar cada columna para saber los resultados de cada país, porque en la tabla superior sólo se apreció la variable de casos.

pa_vs_es.columns = ['España', 'Panamá']
pa_vs_es
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
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-05 00:00:00+00:00 12890002.0 925254
2022-07-06 00:00:00+00:00 12890002.0 925254
2022-07-07 00:00:00+00:00 12890002.0 925254
2022-07-08 00:00:00+00:00 12973615.0 932710
2022-07-09 00:00:00+00:00 NaN 925254

900 rows × 2 columns

Comparación de Gráficos

Realizamos la comparativa en la que se muestra el comportamiento del virus en ambos países y se hizo con el comando: pa_vs_es.plot()

pa_vs_es.plot(title="Comparativa Covid19 España-Paanamá")
<AxesSubplot:title={'center':'Comparativa Covid19 España-Paanamá'}, xlabel='Date'>

png

Comparación de Países Centroamericanos

Se hizo una comparación del compromiso del virus Covid19, en los países Centroamericanos y lo hicimos tal cual realizamos con España y Panamá.

Honduras

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

png

Costa Rica

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")
<AxesSubplot:title={'center':'Casos de Covid19 en Costa Rica'}, xlabel='Date'>

png

Nicaragua

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 Nicaraguas")
<AxesSubplot:title={'center':'Casos de Covid19 en Nicaraguas'}, xlabel='Date'>

png

El Salvador

url_casos_elsalv = 'https://api.covid19api.com/country/el-salvador/status/confirmed/live'
df_rt_elsalv = pd.read_json(url_casos_elsalv)
casos_elsalv = df_rt_elsalv.set_index('Date')['Cases']
casos_elsalv.plot(title="Casos de Covid19 en El Salvador")
<AxesSubplot:title={'center':'Casos de Covid19 en El Salvador'}, xlabel='Date'>

png

Gráficos de Comparación de países Centroamericanos

df_ca = pd.concat([casos_pa,casos_cr,casos_hnd,casos_elsalv,casos_ni],axis=1)
df_ca
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
Cases Cases Cases Cases Cases
Date
2020-01-22 00:00:00+00:00 0 0 0 0 0
2020-01-23 00:00:00+00:00 0 0 0 0 0
2020-01-24 00:00:00+00:00 0 0 0 0 0
2020-01-25 00:00:00+00:00 0 0 0 0 0
2020-01-26 00:00:00+00:00 0 0 0 0 0
... ... ... ... ... ...
2022-07-05 00:00:00+00:00 925254 904934 427718 169646 14690
2022-07-06 00:00:00+00:00 925254 904934 427718 169646 14721
2022-07-07 00:00:00+00:00 925254 904934 427718 169646 14721
2022-07-08 00:00:00+00:00 932710 904934 429408 180970 14721
2022-07-09 00:00:00+00:00 925254 904934 429408 169646 14721

900 rows × 5 columns

df_ca.columns = ['Panamá','Costa Rica','Honduras','El Salvador','Nicaragua']
df_ca
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
Panamá Costa Rica Honduras El Salvador Nicaragua
Date
2020-01-22 00:00:00+00:00 0 0 0 0 0
2020-01-23 00:00:00+00:00 0 0 0 0 0
2020-01-24 00:00:00+00:00 0 0 0 0 0
2020-01-25 00:00:00+00:00 0 0 0 0 0
2020-01-26 00:00:00+00:00 0 0 0 0 0
... ... ... ... ... ...
2022-07-05 00:00:00+00:00 925254 904934 427718 169646 14690
2022-07-06 00:00:00+00:00 925254 904934 427718 169646 14721
2022-07-07 00:00:00+00:00 925254 904934 427718 169646 14721
2022-07-08 00:00:00+00:00 932710 904934 429408 180970 14721
2022-07-09 00:00:00+00:00 925254 904934 429408 169646 14721

900 rows × 5 columns

df_ca.plot(title="Comparativa Covid19 de países Centroamericanos", logy=True)
<AxesSubplot:title={'center':'Comparativa Covid19 de países Centroamericanos'}, xlabel='Date'>

png