Análisis de datos de COVID-19 con Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este proyecto, aprenderá a analizar datos de COVID-19 utilizando Python. La pandemia de COVID-19 ha tenido un impacto significativo en el mundo, y entender los datos es crucial para seguir la propagación del virus y tomar decisiones informadas.

👀 Vista previa

{
  "Confirmados": {
    " África": 1203094,
    " América": 6396173,
    " Asia": 6480321,
    " Europa": 3450299,
    " Oceanía": 27346,
    " Otros": 721,
    " Total": 17557954
  },
  "Muertes": {
    " África": 28289,
    " América": 254610,
    " Asia": 133186,
    " Europa": 206438,
    " Oceanía": 576,
    " Otros": 15,
    " Total": 623114
  },
  "Recuperados": {
    " África": 930536,
    " América": 5087347,
    " Asia": 5163062,
    " Europa": 1927545,
    " Oceanía": 21892,
    " Otros": 651,
    " Total": 13131033
  },
  "Activos": {
    " África": 244269,
    " América": 1054216,
    " Asia": 1184073,
    " Europa": 1316316,
    " Oceanía": 4878,
    " Otros": 55,
    " Total": 3803807
  }
}

🎯 Tareas

En este proyecto, aprenderá:

  • Cómo configurar el entorno de desarrollo e instalar las bibliotecas de Python necesarias
  • Cómo entender la estructura y el contenido de los datos de COVID-19
  • Cómo implementar una función para convertir nombres de países en nombres de continentes
  • Cómo procesar los datos de COVID-19 y calcular las estadísticas resumidas para cada continente
  • Cómo probar el código y verificar la salida

🏆 Logros

Después de completar este proyecto, podrá:

  • Entender cómo trabajar con datos CSV en Python
  • Implementar funciones para procesar y analizar datos
  • Convertir datos entre diferentes formatos (por ejemplo, CSV a JSON)
  • Adquirir experiencia en análisis y visualización de datos
  • Contribuir a la comprensión de la pandemia de COVID-19 a través de insights basados en datos

Preparar el entorno

En este paso, aprenderá a configurar el entorno para el proyecto de análisis de datos de COVID-19.

  1. Abra la terminal y navegue hasta el directorio /home/labex/project.
  2. Instale las bibliotecas de Python necesarias ejecutando el siguiente comando:
python3 -m pip install pandas country-converter

Esto instalará las bibliotecas pandas y country-converter, que se necesitan para el proyecto.

Comprender los datos

Los datos de COVID-19 se proporcionan en un archivo CSV ubicado en el directorio /home/labex/project. El archivo contiene las siguientes columnas:

  • Country_Region: El nombre del país o región.
  • Confirmed: El número total de casos confirmados de COVID-19.
  • Deaths: El número total de muertes por COVID-19.
  • Recovered: El número total de recuperaciones de COVID-19.
  • Active: El número total de casos activos de COVID-19.

Su tarea es procesar estos datos y calcular las estadísticas resumidas para cada continente.

Implementar la función country_to_continent

El primer paso es crear una función que pueda convertir un nombre de país en el nombre de su continente correspondiente. Cree un nuevo archivo llamado covid.py en el directorio /home/labex/project y agregue el siguiente código:

import country_converter as coco

def country_to_continent(country_name):
    """Esta función toma un nombre de país y devuelve el nombre del continente."""
    try:
        ## Convertir el nombre del país al nombre del continente
        if country_name == "Diamond Princess" o country_name == "MS Zaandam":
            return "Otros"
        country_continent_name = coco.convert(names=country_name, to="continent")
        ## Si no se encuentra el nombre del país, devolver 'Otros'
        if country_continent_name == "not found":
            return "Otros"
        return country_continent_name
    except:
        return "Otros"

Esta función utiliza la biblioteca country-converter para convertir un nombre de país en el nombre de su continente correspondiente. Si no se encuentra el nombre del país, devuelve "Otros".

Implementar la función count

A continuación, debe implementar la función count, que procesará los datos de COVID-19 y devolverá las estadísticas resumidas para cada continente. Agregue el siguiente código al archivo covid.py:

import json
import pandas as pd

def count(data):
    """Esta función toma una ruta de archivo y devuelve el número total de
    casos confirmados, muertes, recuperados y activos para cada continente."""
    ## Leer los datos del archivo
    df = pd.read_csv(data)
    ## Rellenar los valores faltantes con 0
    df.fillna(0, inplace=True)
    ## Eliminar filas con valores faltantes
    df = df[df["Confirmed"] == df["Deaths"] + df["Recovered"] + df["Active"]]
    ## Convertir el nombre del país al nombre del continente
    df["Continent"] = df["Country_Region"].apply(country_to_continent)
    ## Convertir el tipo de datos a int
    df[["Confirmed", "Deaths", "Recovered", "Active"]] = df[
        ["Confirmed", "Deaths", "Recovered", "Active"]
    ].astype(int)
    ## Seleccionar las columnas de interés y convertirlas en un diccionario
    df = df[["Continent", "Confirmed", "Deaths", "Recovered", "Active"]]
    result = df.groupby("Continent").sum().to_dict()
    ## Agregar el total para cada continente
    for key in result.keys():
        result[key]["Total"] = sum(result[key].values())
    return json.dumps(result)

Esta función lee los datos de COVID-19 del archivo CSV, procesa los datos y devuelve las estadísticas resumidas para cada continente en formato JSON.

Prueba el código

Para probar el código, puede ejecutar el siguiente comando en la terminal:

python3 covid.py

Esto ejecutará la función count y mostrará los datos JSON resultantes en la consola.

Verifica la salida

La salida de la función count debe ser una cadena JSON que se vea similar a la siguiente:

{
  "Confirmed": {
    "Africa": 1203094,
    "America": 6396173,
    "Asia": 6480321,
    "Europe": 3450299,
    "Oceania": 27346,
    "Others": 721,
    "Total": 17557954
  },
  "Deaths": {
    "Africa": 28289,
    "America": 254610,
    "Asia": 133186,
    "Europe": 206438,
    "Oceania": 576,
    "Others": 15,
    "Total": 623114
  },
  "Recovered": {
    "Africa": 930536,
    "America": 5087347,
    "Asia": 5163062,
    "Europe": 1927545,
    "Oceania": 21892,
    "Others": 651,
    "Total": 13131033
  },
  "Active": {
    "Africa": 244269,
    "America": 1054216,
    "Asia": 1184073,
    "Europe": 1316316,
    "Oceania": 4878,
    "Others": 55,
    "Total": 3803807
  }
}

Esta salida representa las estadísticas resumidas para cada continente, incluyendo el número total de casos confirmados, muertes, recuperaciones y casos activos.

¡Felicitaciones! Has completado el proyecto de análisis de datos de COVID-19. Si tienes alguna pregunta o problema, no dudes en preguntar.

✨ Revisar Solución y Practicar

Resumen

¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.