Данные — это новая нефть — Клайв Хамби

Принимая во внимание последние достижения, приведенное выше утверждение совершенно справедливо. Но сырые, необработанные данные бесполезны, если вы не извлекаете из них информацию.

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

Что касается роли Data Analyst, то умение хорошо рассказывать истории является обязательным, и здесь EDA пригодится. Графики и диаграммы лаконичны, а визуальные эффекты облегчают передачу истории.

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

  • Сбор данных
  • Очистка данных и обработка пропущенных значений
  • Выявление выбросов
  • Извлечение полезных переменных
  • Построение необходимых графиков и диаграмм
  • В конечном счете, извлечение информации из данных

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

Сбор данных — это первый шаг EDA, но здесь мы берем данные из Kaggle, так что это не имеет значения.

Давайте начнем с понимания того, какой тип данных содержится в наборе данных:

Во-первых, давайте импортируем необходимые библиотеки, необходимые для выполнения EDA:

import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import matplotlib.pyplot as plt #basic plotting
import seaborn as sns # for creating better graphs and charts

Теперь давайте загрузим набор данных в фрейм данных:

#Used kaggle for this notebook
df = pd.read_csv("/kaggle/input/software-professional-salaries-2022/Salary_Dataset_with_Extra_Features.csv")

Давайте напечатаем первые 5 строк набора данных.

Давайте напечатаем последние 5 строк набора данных.

Теперь давайте проверим количество строк и столбцов в наборе данных:

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

Приведенная выше команда случайным образом возьмет 1000 записей из всего набора данных.

Теперь давайте перейдем к шагу 2 EDA, который проверяет наличие отсутствующих или повторяющихся значений:

Существует несколько способов обработки отсутствующих значений, некоторые из них:

  1. Удаление: мы можем удалить целые строки с отсутствующими значениями. Мы даже можем удалить весь столбец, если в нем много отсутствующих или противоречивых данных. Для выполнения этой задачи можно использовать метод dropna() из библиотеки Pandas.
  2. Импутация. Удаление данных приводит к уменьшению размера выборки и может снизить статистическую мощность вашего анализа. Удаление целых строк или переменных с отсутствующими значениями приводит к огромной потере информации или нарушению структуры или баланса набора данных. Вводя пропущенные значения, мы можем сохранить доступные данные и более эффективно использовать набор данных. Мы можем использовать базовые статистические методы, такие как среднее, медиана и мода, или методы машинного обучения, чтобы предсказывать и заполнять пропущенные значения. Для этой задачи мы можем использовать такие методы, как interpolate() из библиотеки pandas.

Итак, приступим!

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

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

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

Приведенная ниже команда выводит подробную информацию о структуре набора данных.

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

Здесь объект в Dtype относится к типу данных String.

description() — одна из самых важных частей EDA. Это дает нам много важной информации о данных. Это говорит нам следующее для числовых столбцов набора данных:

Количество записей в каждом столбце.

Среднее (среднее) значений каждого столбца

Стандартное отклонение для каждого столбца

Минимальное значение (Q0)

1-й квартиль (Q1, 25-й процентиль)

2-й квартиль (Q2, 50-й процентиль), также называемый медианой.

3-й квартиль (Q3, 75-й процентиль)

Максимальное значение (Q4, 100-й процентиль)

Ниже приведена реализация того же самого:

Давайте перейдем к шагу 3, который представляет собой построение графиков и диаграмм!

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

1. Гистограмма

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

#fig, ax = plt.subplots(figsize=(60, 60))
fig=plt.figure(figsize =(10,10))
sns.set(font_scale=1.25)
b=sns.barplot(data=df, x="Job Roles", y="Salary", hue="Employment Status",errorbar=None)
plt.xticks(rotation=30)
plt.show()

Вышеприведенный код даст что-то вроде этого:

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

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

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

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

2. Круговая диаграмма

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

a=df['Job Roles']
a=set(a)
print(a)
job_roles=df['Job Roles'].tolist()
q=[]
for i in a:
    q.append(job_roles.count(i))

Вышеприведенный код предоставит количество для каждой роли работы и сохранит его в массиве с именем «q»

fig=plt.figure(figsize =(7,7))

plt.pie(q,labels=a,autopct='%.0f%%')
plt.show()

Приведенный выше код построит круговую диаграмму:

Приведенная выше реализация дает нам визуальное представление различных рабочих ролей в целом. Это позволяет зрителям быстро понять пропорции и определить наиболее значимую или наименее значимую из них. SDE занимает наибольшую долю, а Mobile — наименьшую.

3. Горизонтальная гистограмма

Давайте посмотрим на другой тип гистограммы, мы будем использовать его для другой цели.

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

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

companies = df["Company Name"].value_counts().head(50)
plt.figure(figsize=(12,15))
sns.barplot(y=companies.index, x=companies.values, palette='plasma')
plt.show()

Приведенный выше код создаст горизонтальную гистограмму для набора данных с учетом только первых 50 компаний. Мы сделали это только для того, чтобы облегчить понимание. Количество значений может меняться по мере необходимости.

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

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

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

4. Сюжет графа

Python предоставляет поддержку графика подсчета, что упрощает нашу работу, поскольку нам не нужно будет подсчитывать значения отдельно, как мы делали выше.

График подсчета — это тип визуализации данных, который отображает количество вхождений различных категорий или значений в наборе данных. По сути, это столбчатая диаграмма, где высота каждого столбца представляет количество или частоту определенной категории или значения.

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

plt.figure(figsize=(20,10))
plt.title('Location')
sns.countplot(x=df["Location"]) 

Из приведенного выше графика мы узнаем распределение рабочих мест в разных местах.

Анализируя различные графики и графики, можно сделать несколько выводов. Во-первых, замечено, что Бангалор имеет наибольшее количество вакансий по сравнению с другими местами.

При изучении различных должностей становится очевидным, что для работников, работающих полный рабочий день, должности, отличные от Тестирования и Мобильности, предлагают более высокую заработную плату. Однако в случае с контрактными работниками наибольшее вознаграждение обеспечивают роли Testing и Mobile.

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

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

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

Надеюсь, вы хорошо провели время, читая статью. Я был бы рад узнать ваше мнение о том же. Вы можете связаться со мной в LinkedIn и GitHub.