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.

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.

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".

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.

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 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.

Résumé

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

✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer