Что такое EDA и почему это важно?

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

Цель EDA — обнаружить закономерности в данных.

Как выполнить EDA?

1. Сводная статистика

Это измерения для описания данных. Мы можем использовать функцию df.describe() для получения различной сводной статистики. Однако этот процесс исключает значения NaN и категориальные значения. Чтобы включить описание категориальных данных, нам нужно использовать df.describe(include= "all") .

2. Визуализация

Для выполнения EDA можно использовать различные методы визуализации, такие как гистограммы, диаграммы рассеяния, ящичные диаграммы, диаграммы распределения, карты и т. д.

В этой статье мы проведем EDA, используя набор данных COVID-19. Мы будем использовать различные широко используемые методы EDA для обнаружения закономерностей в наборе данных COVID-19. Полный код можно найти на моем github.

Наборы данных

Мы будем работать с общедоступным набором данных из Хранилища данных JHU CSSE’s COVID-19. Хранилище данных состоит из различных наборов данных, связанных с covid-19. Я объединил и объединил соответствующие данные. Вы можете найти измененный набор данных на моем github.

Импорт библиотек и загрузка данных

данные = pd.read_csv («covid19_data.csv»)

Мы будем использовать data.shape для проверки формы набора данных. Используя функцию .head(), мы получаем представление о наборе данных. covid19_csv состоит из следующей строки:

Используя функцию .dtypes(), мы можем проверить тип данных. Мы можем видеть, что тип данных либо объектный, либо плавающий. Когда тип данных является объектом, это категориальные данные.

Использование подхода EDA для более глубокого понимания данных

  1. Сводная статистика

Функции описания дают нам описательную статистику, которая суммирует значения количества, среднего значения, стандартного отклонения, минимума, максимума, квартиля (нижнего, среднего и верхнего). Иногда вы получите результат в научной нотации, чтобы подавить научную нотацию в Pandas, мы будем использовать:

pd.set_option(‘display.float_format’, lambda x: ‘%.5f’ % x)

Мы можем использовать функцию data.describe(), чтобы получить сводную статистику кадра данных. Эта функция даст нам сводку только для числовых наборов данных.

Однако .describe(include="all") описывает все столбцы фрейма данных независимо от типа данных. Мы также можем наблюдать, есть ли пропущенные значения для каких-либо функций. Например, мы видим, что confirmed и death имеют пропущенные значения. Мы можем получить больше информации о подтвержденных данных, данных о смерти и восстановленных данных, таких как максимальное и минимальное количество для каждой функции.

2. Визуализация

Для группировки подтвержденных случаев смерти и выздоровления по стране/региону мы используем функцию groupby.

data.groupby([“Country/Region”,”Province/State”]).sum()

Мы также можем сгруппировать данные по провинциям/штатам и просмотреть 5 провинций с самым высоким уровнем смертности.

data.groupby(“Province/State”)[“death”].sum().sort_values(ascending=False) [:5]

Это покажет только 5 лучших провинций с самой высокой смертностью. Эта информация дает много полезной информации.

Мы можем получить гистограмму для провинции на основе уровня смертности.

Country= data.groupby("Country/Region")["death"].sum().sort_values(ascending=False)[:10]
plt.figure(figsize=(10,5))
sns.barplot(Country.index, Country.values, alpha=0.8)
plt.title('Death- top 10 Country/Region')
plt.ylabel('Number of Death', fontsize=12)
plt.xlabel('Country/Region', fontsize=12)
plt.show()

В дополнение к этим подходам мы также использовали карту для изучения географического анализа Covid-19. Существуют различные пакеты Python для создания визуальных и информативных карт. Здесь мы использовали фолиум, чтобы создать карту мира, чтобы показать влияние covid-19 по всему миру. Здесь мы использовали данные долготы и широты из набора данных.

world_map= folium.Map(tiles="cartodbpositron")
marker_cluster = MarkerCluster().add_to(world_map)
for i in range(len(data)):
        Lat = data.iloc[i]['Lat']
        Long = data.iloc[i]['Long']
        radius=6
        popup_text = """Country/Region : {}<br>
                    Confirmed : {}<br>
                    death: {} <br>
                    recovered:{} <br>
                    Date:{} <br>"""
        popup_text = popup_text.format(data.iloc[i]['Country/Region'],
                                    data.iloc[i]['Confirmed'],
                                    data.iloc[i]['death'],
                                   data.iloc[i]['recovered'],
                                    data.iloc[i]['Date']
                                   )
        folium.CircleMarker(location = [Lat, Long], radius=radius, popup= popup_text, fill =True).add_to(marker_cluster)
world_map

Когда мы нажимаем на пузырь, карта увеличивается, чтобы показать более подробную информацию о стране. Вы можете изучить карту на моем github.