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
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.
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
Seleccionaremos el sitio Web de API, las ciudades con Covid19.
url = 'https://api.covid19api.com/countries'
url
'https://api.covid19api.com/countries'
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
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
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
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.
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']
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
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
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
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()
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
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()
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
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 |
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'>
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.
df[df['Country'] == 'Panama']
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
Country | Slug | ISO2 | |
---|---|---|---|
190 | Panama | panama | PA |
url_casos_pa = 'https://api.covid19api.com/country/panama/status/confirmed/live'
df_rt_pa = pd.read_json(url_casos_pa)
df_rt_pa
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
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
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'>
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
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
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
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
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
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'>
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á.
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'>
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'>
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'>
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'>
df_ca = pd.concat([casos_pa,casos_cr,casos_hnd,casos_elsalv,casos_ni],axis=1)
df_ca
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
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
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
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'>