Analyse des données COVID-19 avec Python

PythonBeginner
Pratiquer maintenant

Introduction

Dans ce projet, vous allez apprendre à analyser les données COVID-19 à l'aide de Python. La pandémie de COVID-19 a eu un impact considérable sur le monde, et la compréhension des données est cruciale pour suivre la propagation du virus et prendre des décisions éclairées.

👀 Aperçu

{
  "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
  }
}

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment configurer l'environnement de développement et installer les bibliothèques Python requises
  • Comment comprendre la structure et le contenu des données COVID-19
  • Comment implémenter une fonction pour convertir les noms de pays en noms de continents
  • Comment traiter les données COVID-19 et calculer les statistiques récapitulatives pour chaque continent
  • Comment tester le code et vérifier la sortie

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Comprendre comment travailler avec les données CSV en Python
  • Implémenter des fonctions pour traiter et analyser les données
  • Convertir les données entre différents formats (par exemple, CSV en JSON)
  • Gagner de l'expérience dans l'analyse et la visualisation de données
  • Contribuer à la compréhension de la pandémie de COVID-19 grâce à des analyses basées sur les données

Préparer l'environnement

Dans cette étape, vous allez apprendre à configurer l'environnement pour le projet d'analyse des données COVID-19.

  1. Ouvrez le terminal et accédez au répertoire /home/labex/project.
  2. Installez les bibliothèques Python requises en exécutant la commande suivante :
python3 -m pip install pandas country-converter

Cela installera les bibliothèques pandas et country-converter, qui sont nécessaires pour le projet.

✨ Vérifier la solution et pratiquer

Comprendre les données

Les données COVID-19 sont fournies dans un fichier CSV situé dans le répertoire /home/labex/project. Le fichier contient les colonnes suivantes :

  • Country_Region : Le nom du pays ou de la région.
  • Confirmed : Le nombre total de cas de COVID-19 confirmés.
  • Deaths : Le nombre total de décès dus à COVID-19.
  • Recovered : Le nombre total de guérisons de COVID-19.
  • Active : Le nombre total de cas actifs de COVID-19.

Votre tâche consiste à traiter ces données et à calculer les statistiques récapitulatives pour chaque continent.

✨ Vérifier la solution et pratiquer

Implémenter la fonction country_to_continent

La première étape consiste à créer une fonction qui peut convertir un nom de pays en son nom de continent correspondant. Créez un nouveau fichier nommé covid.py dans le répertoire /home/labex/project et ajoutez le code suivant :

import country_converter as coco

def country_to_continent(country_name):
    """Cette fonction prend un nom de pays et renvoie le nom du continent."""
    try:
        ## Convertir le nom de pays en nom de continent
        if country_name == "Diamond Princess" ou country_name == "MS Zaandam":
            return "Autres"
        country_continent_name = coco.convert(names=country_name, to="continent")
        ## Si le nom de pays n'est pas trouvé, renvoyer 'Autres'
        if country_continent_name == "not found":
            return "Autres"
        return country_continent_name
    except:
        return "Autres"

Cette fonction utilise la bibliothèque country-converter pour convertir un nom de pays en son nom de continent correspondant. Si le nom de pays n'est pas trouvé, elle renvoie "Autres".

✨ Vérifier la solution et pratiquer

Implémenter la fonction count

Ensuite, vous devez implémenter la fonction count, qui traitera les données COVID-19 et renverra les statistiques récapitulatives pour chaque continent. Ajoutez le code suivant au fichier covid.py :

import json
import pandas as pd

def count(data):
    """Cette fonction prend un chemin de fichier et renvoie le nombre total de
    cas confirmés, décédés, guéris et actifs pour chaque continent."""
    ## Lire les données à partir du fichier
    df = pd.read_csv(data)
    ## Remplir les valeurs manquantes avec 0
    df.fillna(0, inplace=True)
    ## Supprimer les lignes avec des valeurs manquantes
    df = df[df["Confirmed"] == df["Deaths"] + df["Recovered"] + df["Active"]]
    ## Convertir le nom de pays en nom de continent
    df["Continent"] = df["Country_Region"].apply(country_to_continent)
    ## Convertir le type de données en entier
    df[["Confirmed", "Deaths", "Recovered", "Active"]] = df[
        ["Confirmed", "Deaths", "Recovered", "Active"]
    ].astype(int)
    ## Sélectionner les colonnes d'intérêt et les convertir en dictionnaire
    df = df[["Continent", "Confirmed", "Deaths", "Recovered", "Active"]]
    result = df.groupby("Continent").sum().to_dict()
    ## Ajouter le total pour chaque continent
    pour chaque clé dans les clés de résultat :
        result[key]["Total"] = sum(result[key].values())
    return json.dumps(result)

Cette fonction lit les données COVID-19 à partir du fichier CSV, traite les données et renvoie les statistiques récapitulatives pour chaque continent au format JSON.

✨ Vérifier la solution et pratiquer

Tester le code

Pour tester le code, vous pouvez exécuter la commande suivante dans le terminal :

python3 covid.py

Cela exécutera la fonction count et imprimera les données JSON résultantes dans la console.

✨ Vérifier la solution et pratiquer

Vérifier la sortie

La sortie de la fonction count devrait être une chaîne JSON qui ressemble à ceci :

{
  "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
  }
}

Cette sortie représente les statistiques récapitulatives pour chaque continent, y compris le nombre total de cas confirmés, de décès, de guérisons et de cas actifs.

Félicitations ! Vous avez terminé le projet d'analyse des données COVID-19. Si vous avez des questions ou des problèmes, n'hésitez pas à demander.

✨ Vérifier la solution et pratiquer

Résumé

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires dans LabEx pour améliorer vos compétences.