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

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

Для выполнения этой задачи мы будем использовать библиотеку Pandas в блокноте JupyterLab. Стоит отметить, что все три этапа данной работы разрабатывались в JupyterLab.

Понимание данных

  1. Импорт данных и Dataframe.

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

Наблюдая за результатами, полученными с помощью метода info(), мы обнаружили, что в кадре данных имеется 23642 строки и что в некоторых столбцах, таких как Fatalities и Location, отсутствуют значения, и что все данные имеют тип «объект».

С помощью метода description() мы обнаружили, что в наборе данных зарегистрировано 3133 различных типа самолетов из 233 стран, которые участвовали в авариях, произошедших в 14319 различных местах за указанный период. Кроме того, существует 11 различных категорий несчастных случаев, которые будут рассмотрены далее в этой статье.

Интересный факт: дата с наибольшим количеством аварий в Dataframe — 10 мая 1940 года, всего 171 авария. После быстрого анализа выяснилось, что в наборе данных могут быть повторяющиеся строки, что потребует их удаления. Однако именно тогда аналитику данных необходимо иметь более широкое представление и более глубокое любопытство к предмету, над которым он работает. Беглый поиск в сети показал, что 10 мая 1940 года Германия начала крупное наступление на Францию, Бельгию, Люксембург и Нидерланды, в результате чего, по данным Википедии, в ходе конфликта было потеряно более 3000 самолетов. Следовательно, это не совсем случай повторяющихся строк.

Обработка данных

  1. Преобразование столбца Date в Datetime.

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

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

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

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

Это бывает при авариях, когда были пострадавшие на земле, поэтому первая цифра указывает на количество пострадавших в самолете (пассажиров и членов экипажа), а вторая цифра указывает на количество пострадавших, которых не было в самолете.

Ярким примером являются теракты 11 сентября 2001 года.

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

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

Во-первых, нам нужно выяснить, сколько строк содержит отдельные данные о смертельных исходах.

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

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

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

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

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

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

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

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

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

Изучение данных

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

Чтобы не делать эту статью слишком обширной, я сосредоточусь на информации, которую намереваюсь изучить при построении информационной панели.

На панели инструментов будет отображаться информация по странам или регионам, а также интересующие темы:

  • Общее количество аварий
  • Операторы с наибольшим количеством аварий
  • Места с наибольшим количеством аварий
  • Деление по количеству погибших
  • Общее количество аварий в год
  • Временное распределение аварий по количеству погибших

Чтобы проиллюстрировать поиск, я приведу данные по одной стране, Соединенным Штатам, исключительно потому, что в ней больше всего зарегистрированных несчастных случаев и самый большой разброс в числе погибших.

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

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

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

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

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

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

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

Ниже представлен сегмент всего периода без выбросов.

Это резюме поиска информации в анализе этого проекта. Полученные результаты позволяют сформулировать различные вопросы и запросы по теме и глубже вникнуть в различные изучаемые аспекты.

Если вы не читали первую часть проекта, посвященную очистке данных, которая анализируется здесь, перейдите на страницу ниже.



В следующей части проекта мы увидим, как создать интерактивную и визуально привлекательную информационную панель с информацией, полученной в ходе этого анализа.

Спасибо за чтение.

До скорой встречи!