Como dijo Freddy Vega, la mejora manera de medir la respuesta de un pais ante el COVID es analizando la cantidad de fallecidos. Aqui la informacion de Peru, Colombia, y Peru.
al 15/05/2020
Comenzando con pandas
¿Qué es pandas?
Series e Indexación y selección de datos
De paneles de datos al DataFrame
Indexado y manejo de archivos CSV
Conexión con bases de datos tipo SQL
Ventajas y desventajas de los formatos de importar y guardado
Funcionalidades básicas y esenciales de pandas
Formatos de lectura para cargar y guardar DataFrames
Tipos de Variables que componen un data frame
Estructuras de dataframes en detalle
Borrar filas, columnas y copiar información
Aplicando pandas
Funciones matemáticas
Funciones más complejas y lambdas
Múltiples índices
Cómo trabajar con variables tipo texto en Pandas
Concatenación de DataFrames: concat y append
Merge de DataFrames
¿Cómo lidiar con datos faltantes en tus DataFrames?
Group by
Cómo lidiar con datos duplicados en Pandas
Aggregation y groupby
Group By: extraer valor con variables categóricas
Tablas dinámicas con Pivot Table
Series de Tiempo
Series de Tiempo: variables nulas
Visualización y graficación de datos
Contenido extra
Iniciando una rutina típica de manejo de datos
Preprocesamiento de datos: terminando de preparar y limpiar los datasets
Análisis de datos
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 51
Preguntas 11
Como dijo Freddy Vega, la mejora manera de medir la respuesta de un pais ante el COVID es analizando la cantidad de fallecidos. Aqui la informacion de Peru, Colombia, y Peru.
al 15/05/2020
Bien, mi análisis fue un poco más larguillo, pero acá se los presento.
df_colombia = df_time.loc['Colombia',:]
df_peru = df_time.loc['Peru',:]
df_ecuador = df_time.loc['Ecuador',:]
df_mexico = df_time.loc['Mexico',:]
df_deaths_latam['Colombia'] = df_colombia['Deaths']
df_deaths_latam['Peru'] = df_peru['Deaths']
df_deaths_latam['Ecuador'] = df_ecuador['Deaths']
df_deaths_latam['Mexico'] = df_mexico['Deaths']
ax = df_deaths_latam.plot(figsize = (10,7), title='Covid LATAM')
plt.xlabel('Date')
plt.ylabel('People')
plt.show()
df_colombia['Treatment'] = df_colombia['Confirmed'] - df_colombia['Deaths'] - df_colombia['Recovered']
ax = df_colombia.plot(figsize = (10,7), title = 'Colombia\' COVID-19 Management')
plt.xlabel('Date')
plt.ylabel('People')
plt.show()
df_colombia['rate'] = 1 - df_colombia['Deaths']/df_colombia['Confirmed']
plt.plot(df_colombia['rate'].rolling(window=7).apply(lambda x: np.std(x)), label='7 Días')
plt.plot(df_colombia['rate'].rolling(window=14).apply(lambda x: np.std(x)), label='14 Días')
plt.xticks(rotation = '90')
plt.legend()
plt.title('Desviación estándar de Tasa de Supervivencia en Colombia')
df_colombia['rate'] = df_colombia['rate'].fillna(method='bfill')
# Calculando la mediana mensual
df_colombia_reset = df_colombia.reset_index()
df_colombia_monthly = df_colombia_reset.groupby(pd.Grouper(key='ObservationDate', freq='M')).median()
df_colombia_monthly = df_colombia_monthly.fillna(method='ffill')
df_colombia_monthly.plot(kind='area', figsize=(10,7), ylabel='Per million people', xlabel='Date', title='Colombia\'s COVID-19 Management')
A continuación, se presenta una tabla que muestra los datos mensuales del manejo del covid en Colombia.
Numero de casos confirmados en China y Brasil…
Código:
plt.figure(figsize=(12,5))
ax1 = china.plot(color='blue', label='China')
ax2 = brazil.plot(color='red', secondary_y=True, label='Brazil')
ax1.set_xlabel('Observation Date')
ax1.set_ylabel('Confirmed cases')
ax1.legend(loc=1)
ax2.legend(loc=2)
plt.show()
Encontré un error en el dataset de covd!
obtuve muchas graficas que se solapaban porque ya el DF es de varios meses, no solo tres.
por tanto use head(3) para obtener solo 3 graficas, y varie el figsize a (16, 10) para apreciar todo mejor
df_monthly[[‘Confirmed’, ‘Deaths’, ‘Recovered’]].head(3).T.plot(figsize = (16,10), kind = ‘pie’, subplots = True)
Datos hasta el día 05/08/2020:
Yo compare Estados Unidos y Brazil que al dia de hoy son los paises con mas casos, y me parece interesante que EEUU tiene muchos mas casos confirmados pero la linea de muertes es muy similar a Brazil.
Caso de Colombia con datos hasta el 31 de mayo. El número de contagiados comenzó a aumentar en abril pero la tasa de recuperados sigue siendo mayor a la de fallecidos.
En 2021 ya hay muchos datos, entonces las gráficas de pastel no se aprecian bien.
Una solución es recortar los datos, para ello podemos hacer lo siguiente.
df_monthly_trim = df_monthly.head(3)
df_monthly_trim
Y graficar.
df_monthly_trim[['Deaths', 'Recovered', 'Active']].T.plot(figsize = (10,7), kind = 'pie', subplots = True)
Casos confirmados por países latinoamericanos:
En esta parte de clase me salio un error asi:
# f_china.plot(figsize = (10,7), title = ‘CODV-19’)
plt.xlabel(‘Date’)
plt.ylabel(‘People’)
plt.show()
AttributeError: module ‘matplotlib’ has no attribute ‘xlabel’
Y aunque te muestra tu grafica no te va a mostrar las etiquetas asignadas a los ejes “x” y “y”
Lo único que tienes que hacer antes de ejecutar esta parte es correr este codigo:
# from matplotlib import pyplot as plt
Y listo!!
Muertes y casos confirmados por semana en Colombia desde abril del 2020 hasta mayo del 2021.
No hace diferencia en el código pero tratamiento se escribe treatment y no Traitment
Mi aporte es la tasa de supervivencia de México, con rolling con 14 días.
sr_mex = df_mex.reset_index().groupby(pd.Grouper(key='ObservationDate', freq='1D'))['rate'].mean()
sr_mex.rolling(window = 14).mean().plot(style='g')
plt.xlabel('Mes')
plt.ylabel('Tasa de suoervivencia')
La gráfica de México se ve así 😦
Y eso que cada vez se hacen menos pruebas
La gráfica hecha para Perú:
df_monthly_conf = df_peru[['Confirmed']].resample('M').sum()
df_monthly_conf.index = ['Mar20','Abr20','May20','Jun20','Jul20','Ago20','Set20',
'Oct20','Nov20','Dic20','Ene21','Feb21','Mar20','Abr20',
'May20']
df_monthly_conf.plot(kind = 'bar',title = 'Casos confirmado de COVID19\n Marzo 2020 - Mayo 2021')
plt.xlabel('Date')
plt.ylabel('People')
import matplotlib.pyplot as plt
plt.figure(figsize=(15,10))
plt.barh(mex_states_top_5['Province/State'], width =mex_states_top_5['Deaths'])
plt.title('Top 10 estados de México con más Muertes covid. Cierre al 30/05/2022')
for p, d in zip(mex_states_top_5['Province/State'], mex_states_top_5['Deaths']):
plt.text(d, p, '{:,}'.format(round(d,0)), fontfamily='monospace')
Hola comunidad
Comparto una grafica de los paises que lamentablemente tubieron el mayor numero de muertes
ax = df_us['Deaths'].plot(kind='area', color='Red', figsize = (10,7), legend=False, style = [':*'])
ax = df_Brazil['Deaths'].plot(kind='area', color='Green', figsize = (10,7), legend=False, style = [':+'])
ax = df_India['Deaths'].plot(kind='area', color='Blue', figsize = (10,7), legend=False, style = [':^'])
ax = df_Mexico['Deaths'].plot(kind='area', color='Black', figsize = (10,7), legend=False, style = [':>'])
ax = df_UK['Deaths'].plot(kind='area', color='Pink', figsize = (10,7), legend=False, style = [':<'])
ax.set_title('Countries whit the highest number of Deaths form covid-19')
ax.legend(['US', 'Brazil', 'India', 'Mexico', 'UK'])
plt.xlabel('Date')
plt.ylabel('People')
plt.show()
Que es un histograma?
Gráfico de la representación de distribuciones de frecuencias, en el que “se emplean rectángulos” dentro de unas coordenadas.
Que es un Bin?
En un histograma, el eje x es una línea numérica que se ha dividido en rangos de números o “bins”. Para cada “bin”, se dibuja una barra en la que el ancho de la barra representa el rango del “bin” y la altura de la barra representa el número de puntos de datos incluidos en ese rango.
Este es mi codigo,
saludos
df_2 = df.groupby(
['Country/Region',
pd.Grouper(key = 'ObservationDate', freq = '1D')]
).sum()
df_i = df_2.loc['Iran',:]
df_i.plot(figsize = (10,5), title = 'COV-19',
legend = True,
style = ['r-','g--','b:*'])
Yo tomé el mismo dataset de ejemplo e hice el ejercicio con Italy, país que se moestraba como el segundo con más casos de muerte por covid hasta marzo 4. Mi país Colombia hasta el 4 de marzo de 2020 no tenía casos de Covid, por eso aparece con cero, pues el primer caso reportado creo que fue el 6 de marzo.
 queden bien debido a la cantidad de data se puede utilizar .head(x)
x = cantidad de datos (en este caso la grafica correspondiente a una fecha mencusal del país de Francia)
Espero que les sriva
Excelente una herramienta muy potente
Comparación número de muertos por mes a causa del Covid-19. Países Latam con similar número de habitantes:
latam = pd.DataFrame({
'M_Colombia': df_time2.loc['Colombia','Deaths'],
'M_Perú' : df_time2.loc['Peru', 'Deaths'],
'M_Argentina' : df_time2.loc['Argentina', 'Deaths']
})
Hola, comparto mi gráfica bajo la cual aplique los siguientes parámetros:
df_col.plot(figsize=(10,7), kind='area', stacked=False, subplots=True, color={"Confirmed": "blue", "Recovered": "green", "Deaths": "red", "Traitment": "orange"}, title='COVD-19 Cases Colombia')
Casos Actualizados de Covid19 confirmados, recuperados y de muertes en Francia(País con más casos actualmente):
Una grafica de los casos diarios en Bogotá
Es increible como se notan los picos, justo en agosto con la reapertura y en Enero 2021 despues de diciembre
Buena clase David! es mucha información por absorber y se nota que dominas todo el tema
Argentina, Brasil y Estados Unidos en comparativa.
plt.figure(figsize= (10,7))
agraph= df_arg.plot(color = 'blue', label = 'Argentina')
bgraph= df_bra.plot(color = 'green', label = 'Brazil')
usgraph= df_us.plot(color = 'red', label = 'US')
agraph.set_xlabel('Date')
agraph.set_ylabel('Confirmed')
agraph.legend(loc=1)
bgraph.legend(loc=2)
usgraph.legend(loc=3)
plt.show()```
Este fue el resutado

Los datos cambia…
Country/Region
US 350121.0
Russia 281752.0
UK 243695.0
Brazil 241080.0
Spain 236899.0
…
Gibraltar 1.0
Gambia, The 1.0
Channel Islands 1.0
East Timor 1.0
Azerbaijan 1.0
Name: Confirmed, Length: 223, dtype: float64
Country/Region US 350121.0 Russia 281752.0 UK 243695.0 Brazil 241080.0 Spain 236899.0 ... Gibraltar 1.0 Gambia, The 1.0 Channel Islands 1.0 East Timor
Yo hacer todo el trabajo de graficacion con matlotlib ya que puedes hacer muchas mas personalizaciones y adaptar mjor la graficas.
Aunque con pandas puedes hacer graficas de manera muy rapida y con muy pocos parametros
Este es la gráfica para la tasa de sobrevivir al coronavirus comparando los países de Estados Unidos, Brasil y Colombia:
Yo lo hice con brazil, que a la fecha tiene los números más altos entre los países del dataset.
En este enlace pueden encontrar el DataSet completo de los casos de COVID-19 en Colombia:
https://www.datos.gov.co/Salud-y-Protecci-n-Social/Casos-positivos-de-COVID-19-en-Colombia/gt2j-8ykr/data
O, si prefieren, en este otro enlace encuentran los reportes diarios del COVID-19 en Colombia:
https://www.ins.gov.co/Paginas/Boletines-casos-COVID-19-Colombia.aspx
Covid 19 en México D:
 y el de covid(octubre) para calcular la tasa de contagios con respecto a su población total en piases americanos.
También calcule la tasa de recuperación en los mismos piases, exceptuando a Perú y a Estados Unidos, ya que el dataset presenta un error.
Comportamiento exponencial del virus según su evolución n Colombia hasta Febrero 2021.
Reto
Con datos hasta el 23 de Septiembre, que es hasta donde han actualizado de memento (12de noviembre) este dataset, encontré datos interesantes sobre Casos confirmados y Muerte per capita (con la población estimada que tiene Wikipedia de cada país).
Casos per capita:
Muertes per capita
Reto 2 listo:
Reto listo:
Realizando una comparacion del numero de muertes por covid que se identifivcaron hasta la fecha en US, UK, Brazil, Colombia, China
Encontré esta forma de graficar los datos entre países, teniendo en cuenta la cantidad de muertes, ¿Qué les parece?, veo que varios ya lo habían hecho, quisiera conocer de que otras formas lo puedo realizar. Gracias.
df_time1 = df.groupby(['Country/Region',pd.Grouper(key = 'Date',freq = '15D')])[['Deaths']].sum()
Creé un nuevo dataFrame para alojar allí la información definida bajo los índices Country y Date, aplicando la función suma a la columna Deaths.
Luego, partí el data set en 3, que son los 3 países que deseaba graficar.
df_usa = df_time1.loc['US',:]
df_col = df_time1.loc['Colombia',:]
df_bra = df_time1.loc['Brazil',:]
Y por ultimo definí esta función para graficar.
import matplotlib.pyplot as plt
def plotter():
plt.xlabel('Mes')
plt.ylabel('Cantidad')
plt.title('Cantidad de Muertes')
plt.plot(df_usa, label='Usa')
plt.plot(df_col, label='Colombia')
plt.plot(df_bra,label='Brazil')
plt.legend()
plt.show()
plotter()
Detrás de df_AmN2, hay agrupaciones y filtros
Taza de mortalidad GLOBAL vs MEXICO y COLOMBIA
Aunque puede parecer que Colombia presenta una taza de mortalidad menor a la global verifiqué por qué, aquí la respuesta:
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.