Введение
В этом проекте вы научитесь анализировать данные о 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.
- Откройте терминал и перейдите в директорию
/home/labex/project. - Установите необходимые библиотеки 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, чтобы улучшить свои навыки.



