Анализ данных о COVID-19 с использованием Python

PythonBeginner
Практиковаться сейчас

Введение

В этом проекте вы научитесь анализировать данные о COVID-19 с использованием Python. Pandемия COVID-19 имела значительное влияние на весь мир, и понимание данных является至关重要 для отслеживания распространения вируса и принятия информированных решений.

👀 Предварительный просмотр

{
  "Подтвержденные": {
    "Африка": 1203094,
    "Америка": 6396173,
    "Азия": 6480321,
    "Европа": 3450299,
    "Океания": 27346,
    "Другие": 721,
    "Всего": 17557954
  },
  "Смерти": {
    "Африка": 28289,
    "Америка": 254610,
    "Азия": 133186,
    "Европа": 206438,
    "Океания": 576,
    "Другие": 15,
    "Всего": 623114
  },
  "Выздоровевшие": {
    "Африка": 930536,
    "Америка": 5087347,
    "Азия": 5163062,
    "Европа": 1927545,
    "Океания": 21892,
    "Другие": 651,
    "Всего": 13131033
  },
  "Активные": {
    "Африка": 244269,
    "Америка": 1054216,
    "Азия": 1184073,
    "Европа": 1316316,
    "Океания": 4878,
    "Другие": 55,
    "Всего": 3803807
  }
}

🎯 Задачи

В этом проекте вы научитесь:

  • Как настроить开发环境 и установить необходимые библиотеки Python
  • Как понять структуру и содержание данных о COVID-19
  • Как реализовать функцию для преобразования названий стран в названия континентов
  • Как обрабатывать данные о COVID-19 и вычислять обобщенные статистики для каждого континента
  • Как протестировать код и проверить вывод

🏆 Достижения

После завершения этого проекта вы сможете:

  • Разобраться, как работать с данными в формате CSV в Python
  • Реализовать функции для обработки и анализа данных
  • Преобразовывать данные между различными форматами (например, CSV в JSON)
  • Получить опыт в анализе и визуализации данных
  • Внести вклад в понимание пандемии COVID-19 с помощью данных-driven 见解

Подготовить окружение

В этом шаге вы научитесь настраивать окружение для проекта анализа данных о COVID-19.

  1. Откройте терминал и перейдите в директорию /home/labex/project.
  2. Установите необходимые библиотеки Python, выполнив следующую команду:
python3 -m pip install pandas country-converter

Это установит библиотеки pandas и country-converter, которые необходимы для проекта.

✨ Проверить решение и практиковаться

Разобраться с данными

Данные о COVID-19 предоставлены в файле CSV, расположенном в директории /home/labex/project. Файл содержит следующие столбцы:

  • Country_Region: Название страны или региона.
  • Confirmed: Общее количество подтвержденных случаев COVID-19.
  • Deaths: Общее количество смертей от COVID-19.
  • Recovered: Общее количество выздоровлений от COVID-19.
  • Active: Общее количество активных случаев COVID-19.

Ваша задача - обработать эти данные и вычислить обобщенные статистики для каждого континента.

✨ Проверить решение и практиковаться

Реализовать функцию country_to_continent

Первым шагом является создание функции, которая может преобразовать название страны в название соответствующего континента. Создайте новый файл с именем covid.py в директории /home/labex/project и добавьте следующий код:

import country_converter as coco

def country_to_continent(country_name):
    """ Эта функция принимает название страны и возвращает название континента. """
    try:
        ## Преобразуем название страны в название континента
        if country_name == "Diamond Princess" или country_name == "MS Zaandam":
            return "Others"
        country_continent_name = coco.convert(names=country_name, to="continent")
        ## Если название страны не найдено, возвращаем 'Others'
        if country_continent_name == "not found":
            return "Others"
        return country_continent_name
    except:
        return "Others"

Эта функция использует библиотеку country-converter для преобразования названия страны в название соответствующего континента. Если название страны не найдено, возвращается "Others".

✨ Проверить решение и практиковаться

Реализовать функцию count

Далее вам необходимо реализовать функцию count, которая будет обрабатывать данные о COVID-19 и возвращать обобщенные статистики для каждого континента. Добавьте следующий код в файл covid.py:

import json
import pandas as pd

def count(data):
    """ Эта функция принимает путь к файлу и возвращает общее количество
    подтвержденных, смертей, выздоровлений и активных случаев для каждого континента. """
    ## Считываем данные из файла
    df = pd.read_csv(data)
    ## Заполняем пропущенные значения нулями
    df.fillna(0, inplace=True)
    ## Удаляем строки с пропущенными значениями
    df = df[df["Confirmed"] == df["Deaths"] + df["Recovered"] + df["Active"]]
    ## Преобразуем название страны в название континента
    df["Continent"] = df["Country_Region"].apply(country_to_continent)
    ## Преобразуем тип данных в int
    df[["Confirmed", "Deaths", "Recovered", "Active"]] = df[
        ["Confirmed", "Deaths", "Recovered", "Active"]
    ].astype(int)
    ## Выбираем интересующие нас столбцы и преобразуем их в словарь
    df = df[["Continent", "Confirmed", "Deaths", "Recovered", "Active"]]
    result = df.groupby("Continent").sum().to_dict()
    ## Добавляем итог для каждого континента
    for key in result.keys():
        result[key]["Total"] = sum(result[key].values())
    return json.dumps(result)

Эта функция считывает данные о COVID-19 из файла CSV, обрабатывает данные и возвращает обобщенные статистики для каждого континента в формате JSON.

✨ Проверить решение и практиковаться

Тестировать код

Для тестирования кода вы можете выполнить следующую команду в терминале:

python3 covid.py

Это выполнит функцию count и выведет полученные данные в формате JSON в консоль.

✨ Проверить решение и практиковаться

Проверить вывод

Вывод функции count должен быть JSON-строкой, которая выглядит примерно так:

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

Этот вывод представляет обобщенные статистики для каждого континента, включая общее количество подтвержденных случаев, смертей, выздоровлений и активных случаев.

Поздравляем! Вы завершили проект анализа данных о COVID-19. Если у вас есть вопросы или проблемы, не стесняйтесь задавать.

✨ Проверить решение и практиковаться

Резюме

Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.