Очистка, обработка и анализ данных

Привет, как дела?
Во второй части проекта данных я расскажу об очистке и обработке данных, собранных с помощью парсинга, как показано в первой статье.
Для выполнения этой задачи мы будем использовать библиотеку Pandas в блокноте JupyterLab. Стоит отметить, что все три этапа данной работы разрабатывались в JupyterLab.
Понимание данных
- Импорт данных и Dataframe.

2. Проверка количества и разнообразия данных в каждом столбце.


Наблюдая за результатами, полученными с помощью метода info(), мы обнаружили, что в кадре данных имеется 23642 строки и что в некоторых столбцах, таких как Fatalities и Location, отсутствуют значения, и что все данные имеют тип «объект».
С помощью метода description() мы обнаружили, что в наборе данных зарегистрировано 3133 различных типа самолетов из 233 стран, которые участвовали в авариях, произошедших в 14319 различных местах за указанный период. Кроме того, существует 11 различных категорий несчастных случаев, которые будут рассмотрены далее в этой статье.
Интересный факт: дата с наибольшим количеством аварий в Dataframe — 10 мая 1940 года, всего 171 авария. После быстрого анализа выяснилось, что в наборе данных могут быть повторяющиеся строки, что потребует их удаления. Однако именно тогда аналитику данных необходимо иметь более широкое представление и более глубокое любопытство к предмету, над которым он работает. Беглый поиск в сети показал, что 10 мая 1940 года Германия начала крупное наступление на Францию, Бельгию, Люксембург и Нидерланды, в результате чего, по данным Википедии, в ходе конфликта было потеряно более 3000 самолетов. Следовательно, это не совсем случай повторяющихся строк.

Обработка данных
- Преобразование столбца Date в Datetime.

2. Проверка количества пустых элементов в каждом столбце.

3. Удаление строк, содержащих нулевые элементы, и проверка общего количества строк в кадре данных после процесса удаления.

4. Снова проверьте, сколько нулевых элементов существует в кадре данных.

5. Наблюдая за Dataframe, мы замечаем, что во многих строках количество погибших в результате аварии делится на два числа.

Это бывает при авариях, когда были пострадавшие на земле, поэтому первая цифра указывает на количество пострадавших в самолете (пассажиров и членов экипажа), а вторая цифра указывает на количество пострадавших, которых не было в самолете.
Ярким примером являются теракты 11 сентября 2001 года.
- Первый ряд представляет атаку на первую башню Всемирного торгового центра. В столбце Fatalities отображается количество погибших в самолете (92), а также количество пострадавших в здании и его окрестностях (1600).
- Второй ряд представляет атаку на вторую башню. В самолете погибло 65 человек, в башне и ее окрестностях — 900 человек.
- Третий ряд представляет собой самолет, который разбился, не долетев до цели, Капитолия. На земле пострадавших нет.
- Наконец, четвертый ряд представляет собой нападение на Пентагон, когда 64 человека погибли в самолете и 125 в здании Пентагона.

В этом конкретном проекте цель состоит в том, чтобы изучить общее количество жертв на одну аварию, поэтому необходимо объединить отдельные данные.
Во-первых, нам нужно выяснить, сколько строк содержит отдельные данные о смертельных исходах.

Теперь давайте объединим разделенные данные.

Теперь данные суммируются.

6. Наблюдая за названиями стран, где произошли аварии, можно заметить, что некоторые из них имеют html-символ «&», полученный в процессе очистки данных. Кроме того, некоторые страны называются своими аббревиатурами или как «Неизвестная страна», в то время как другие имеют аббревиатуры или называются с «?».

Те, что названы «?» и «Неизвестная страна» необходимо удалить. Во-первых, мы проверяем, сколько строк имеют эти обозначения для страны.

Теперь строки будут удалены.

Намерение состоит в том, чтобы отображать имена полностью, и, поскольку их немного (всего 30), для их исправления был создан словарь с текущим именем и полным именем.

И с помощью этого словаря поправили имена в Dataframe.

7. Наконец, индекс будет переименован, чтобы строки располагались последовательно.

Это последний этап обработки данных. Столбец «Регистрация», даже если он содержит пустые значения, такие как в первой строке, не будет исправлен, так как он не будет использоваться на панели инструментов.

Изучение данных
Это, несомненно, самый длительный этап процесса. Возможности изучения данных огромны, и если у вас нет представления о том, что вы ищете, вы можете часами анализировать Dataframe и всю информацию, которую можно извлечь из него. Не то чтобы это неприятное занятие; напротив, для тех, кто, как и я, хочет и хочет найти ценную информацию, это может быть очень приятно. Однако, поскольку времени у большинства из нас становится все меньше, всегда полезно иметь представление о том, что вы хотите найти в наборе данных.
Чтобы не делать эту статью слишком обширной, я сосредоточусь на информации, которую намереваюсь изучить при построении информационной панели.
На панели инструментов будет отображаться информация по странам или регионам, а также интересующие темы:
- Общее количество аварий
- Операторы с наибольшим количеством аварий
- Места с наибольшим количеством аварий
- Деление по количеству погибших
- Общее количество аварий в год
- Временное распределение аварий по количеству погибших
Чтобы проиллюстрировать поиск, я приведу данные по одной стране, Соединенным Штатам, исключительно потому, что в ней больше всего зарегистрированных несчастных случаев и самый большой разброс в числе погибших.
Общее количество аварий:

Операторы с наибольшим количеством аварий:


Места с наибольшим количеством аварий:


Деление по количеству погибших:

Общее количество аварий в год:


Временное распределение аварий по количеству погибших:

На приведенном выше графике выбросы в наборе данных очень очевидны. Эти выбросы относятся к авариям 11 сентября 2001 г.
Ниже представлен сегмент всего периода без выбросов.

Это резюме поиска информации в анализе этого проекта. Полученные результаты позволяют сформулировать различные вопросы и запросы по теме и глубже вникнуть в различные изучаемые аспекты.
Если вы не читали первую часть проекта, посвященную очистке данных, которая анализируется здесь, перейдите на страницу ниже.
В следующей части проекта мы увидим, как создать интерактивную и визуально привлекательную информационную панель с информацией, полученной в ходе этого анализа.
Спасибо за чтение.
До скорой встречи!