Руководство по тенденциям в области науки о данных с использованием Python с использованием методов визуализации данных.
Наука о данных — одна из самых крутых областей в последние годы. Многие люди из разных слоев общества перешли в эту область. Но сохраняется ли эта тенденция?
Сегодня мы обработаем набор данных о зарплатах в науке о данных 2023 и изучим тенденции в науке о данных с помощью методов визуализации данных. Вот темы, которые мы рассмотрим в этом блоге:
- 10 самых популярных профессий в 2023 году
- Уровни опыта в науке о данных
- Типы занятости
- Заработная плата по должностям
- Заработная плата по видам занятости
- Заработная плата по годам работы
Начнем с загрузки набора данных.
Загрузка набора данных
Набор данных, который мы будем использовать, — это набор данных зарплаты в науке о данных 2023 на Kaggle.
Сначала мы загрузим этот набор данных с помощью Pandas. Эта библиотека — замечательная библиотека для выполнения манипуляций с данными.
import pandas as pd df=pd.read_csv('ds_salaries.csv')
Хорошо, мы загрузили набор данных. Давайте продолжим и попробуем понять набор данных, используя несколько методов в Pandas.
Ссылку на блокнот можно найти здесь.
Понимание набора данных
Прежде чем делать выводы о наборе данных, давайте немного разберемся с этим набором данных. Во-первых, давайте посмотрим на первые пять строк набора данных с помощью метода head
.
df.head()
Как видите, в наборе данных есть такие столбцы, как год работы, уровни опыта, такие как SE (старший) и EN (младший), типы занятости, такие как FT (полный рабочий день) и CT (контракт), название должности, зарплата и скоро.
Хорошо, мы кратко рассмотрели столбцы набора данных. Теперь давайте посмотрим на количество строк и столбцов в наборе данных с помощью метода shape
.
df.shape # Output (3755, 11)
Как видите, в наборе данных 3755 строк и 11 столбцов. Этот набор данных достаточно велик, чтобы делать выводы. Давайте продолжим и подробнее рассмотрим свойства столбцов в наборе данных с помощью метода info
.
df.info()
Здесь вы можете увидеть имена столбцов, номера столбцов, отсутствующие данные и типы столбцов. Как видите, в столбцах нет пропущенных данных. Мы можем использовать метод isnull
для проверки отсутствующих данных. Обратите внимание, что мы можем увидеть все недостающие данные в каждом столбце, используя метод sum
. Чтобы просмотреть все отсутствующие данные во всем наборе данных, мы можем использовать два метода sum
, например:
df.isnull().sum().sum() # Output 0
Как мы и ожидали, в наборе данных нет пропущенных данных. Набор данных довольно чистый. Конечно, реальные наборы данных не всегда чисты. Давайте продолжим и посмотрим на количество уникальных значений в столбцах.
df.nunique()
Столбец work_year
имеет 4 уникальных значения. Позвольте мне показать вам эти годы с помощью метода value_counts
.
df["work_year"].value_counts() # Output: 2023 1785 2022 1664 2021 230 2020 76 Name: work_year, dtype: int64
Как видите, в наборе данных 4 разных года. В 2023 году данных больше, чем в любой другой год.
До сих пор мы загрузили набор данных и использовали некоторые методы для понимания набора данных. Перейдем к выводам из набора данных. Во-первых, позвольте мне изучить 10 самых популярных профессий в 2023 году.
10 лучших профессий в 2023 году
Одним из важнейших этапов анализа данных является визуализация данных. С визуализацией данных вы можете лучше понять свои данные и построить отличные модели. Прежде чем визуализировать данные, давайте импортируем библиотеки, которые мы будем использовать, и установим темы.
import matplotlib.pyplot as plt import seaborn as sns sns.set_theme() sns.set(rc = {"figure.figsize":(10,6), "figure.dpi":300})
Как мы видели выше, в наборе данных 93 различных названия должностей. Теперь давайте посмотрим на 10 самых популярных должностей в 2023 году. Сначала выберем 2023 год и столбец job_title
, а затем нарисуем гистограмму, чтобы увидеть 10 самых популярных должностей.
# Filtering jobs = df[df['work_year']==2023]['job_title'].value_counts().nlargest(10).reset_index() # Creating graphic objects fig, ax = plt.subplots() # Drawing the barplot ax = sns.barplot(ax = ax, data=jobs, y = jobs['index'], x = jobs.job_title) # Setting the labels ax.set(ylabel='Job Titles',xlabel='Counts', title='Top 10 Job Titles in 2023') # Adding labels to the bars in the plot ax.bar_label(ax.containers[0], padding = 2)
Как видите, инженеры данных находятся на первом месте, за ними следуют специалисты по данным. Это потому, что проектирование данных — это новая тенденция.
Инженеры данных играют решающую роль в проектах по науке о данных. Что делает дата-инженер, спросите вы? Короче говоря, инженеры данных готовят данные, используя конвейеры для построения модели.
Круто, мы увидели 10 лучших должностей. Теперь давайте продолжим и посмотрим на их уровень опыта.
Уровни опыта
Уровень опыта относится к уровню квалификации и опыта в области науки о данных, который включает в себя навыки в таких областях, как анализ данных, статистика, машинное обучение, визуализация данных и программирование.
В этом разделе мы рассмотрим столбец уровня опыта. Во-первых, давайте посмотрим на уникальные значения в этом столбце.
df['experience_level'].unique() # Output: array(['SE', 'MI', 'EN', 'EX'], dtype=object)
Как видите, есть 4 разные категории опыта. Заменим эти значения их полными именами.
df['experience_level'] = df['experience_level'].replace('EN','Entry-level/Junior') df['experience_level'] = df['experience_level'].replace('MI','Mid-level/Intermediate') df['experience_level'] = df['experience_level'].replace('SE','Senior-level/Expert') df['experience_level'] = df['experience_level'].replace('EX','Executive-level/Director')
Теперь давайте рассмотрим уровни опыта сотрудников в области науки о данных.
# Creating graphic objects fig, ax = plt.subplots() # Calculating values for each category sns.countplot(ax = ax, data = df, x = df.experience_level) # Setting the labels ax.set(xlabel='', ylabel='Counts', title='Experience Levels') # Adding labels to the bars in the plot ax.bar_label(ax.containers[0])
Как видите, у старших должностей больше всего, за ними следуют средние и младшие должности. Должностей на уровне директоров меньше, чем на других уровнях.
Хорошо, мы видели уровень опыта. Теперь давайте продолжим и посмотрим на типы занятости
Типы занятости
В последние годы наблюдается заметный рост увольнений, что побудило многих работников искать альтернативные формы занятости. Одним из самых популярных вариантов является внештатная работа, которая становится все более жизнеспособной благодаря достижениям в области технологий.
Рассмотрим виды занятости в сфере науки о данных. Во-первых, позвольте мне взглянуть на уникальные значения в столбце employment_type
.
df['employment_type'].unique() # Output: array(['FT', 'CT', 'FL', 'PT'], dtype=object)
Как видите, существует 4 различных типа занятости. Переименуем их методом rename
.
df['employment_type'] = df['employment_type'].replace('FT','Full-Time') df['employment_type'] = df['employment_type'].replace('PT','Part-Time') df['employment_type'] = df['employment_type'].replace('CT','Contract') df['employment_type'] = df['employment_type'].replace('FL','Freelance')
Теперь рассмотрим цифры каждого вида работ по уровню опыта.
# Creating graphic objects fig, ax = plt.subplots() # Calculating values for each category sns.countplot(ax = ax, data = df, x = df.employment_type, hue = 'experience_level') # Setting the labels ax.set(xlabel='', ylabel='Counts', title='Number of Employment Types') # Adding labels to the bars in the plot ax.bar_label(ax.containers[0]) ax.bar_label(ax.containers[1]) ax.bar_label(ax.containers[2]) ax.bar_label(ax.containers[3])
Как видите, здесь на постоянной основе занято немалое количество людей. Среди штатных сотрудников преобладают старшие. Мы наблюдаем, что фриланс менее распространен в наши дни.
Отлично, мы увидели виды занятости. Перейдем к рассмотрению средней заработной платы по должностям.
Заработная плата по должностям
Наука о данных значительно выросла за последние годы. В этой области появилось много названий должностей. Давайте посмотрим на средние зарплаты по должностям.
# Filtering and grouping job_title_salary = df['salary_in_usd'].groupby(df['job_title']).mean().round(0).nlargest(15).sort_values(ascending = False).reset_index() # Setting the figure size plt.figure(figsize=(25,9)) # Creating graphic objects fig, ax = plt.subplots() # Drawing the bar plot ax = sns.barplot(ax = ax, data = job_title_salary , y = job_title_salary.job_title, x = job_title_salary.salary_in_usd) # Setting the labels ax.set(ylabel='Job titles',xlabel='Salary in usd', title='Top 15 Average Salaries by Job Titles') # Adding average salaries to the bars in the plot ax.bar_label(ax.containers[0], padding = 2)
Как мы и ожидали, средняя заработная плата тех, кто обычно занят на руководящем уровне, выше. Из-за тенденции облачных вычислений архитектор облачных данных является второй самой высокооплачиваемой профессией.
Хорошо, мы покрыли средние зарплаты для должностей. Перейдем к средней зарплате.
Заработная плата по типам занятости
Мы все задаемся вопросом о заработной плате, связанной с областью, в которой мы работаем. Это важный фактор, который может повлиять на наш выбор карьеры и общую удовлетворенность работой.
Давайте посмотрим на средние зарплаты для разных уровней опыта.
# Grouping and filtering avg_salaries = df.groupby('employment_type')['salary_in_usd'].mean().round(0).sort_values(ascending = False).reset_index() # Creating graphic objects fig, ax = plt.subplots() # Drawing the bar plot sns.barplot(ax =ax,data = df , x = 'employment_type', y = 'salary_in_usd',errorbar = None, hue = 'work_year') # Setting the labels ax.set(xlabel='', ylabel='Dollars', title='Average Salaries in Dollars Per Year') # Adding 2013 average salaries to the bars in the plot ax.bar_label(ax.containers[3], padding = 2)
Как видите, средняя заработная плата за полный рабочий день с годами увеличилась. Это показывает, что компании заботятся о науке о данных. Вторые по величине зарплаты на участке принадлежат фрилансерам, что является явным свидетельством растущей тенденции в фриланс-работе.
Круто, мы видели средние зарплаты по уровню опыта. Давайте продолжим и узнаем средние зарплаты по годам работы.
Заработная плата по годам работы
Наука о данных стала заметной областью в последние годы, и стоит изучить, отражается ли эта тенденция на заработной плате. Давайте подробнее рассмотрим текущее состояние зарплат в области науки о данных, чтобы лучше понять эту динамичную и быстро развивающуюся область.
Для этого сначала выделим зарплаты, затем сгруппируем эти данные по годам и методом среднего найдем средние.
# Filtering and grouping year_based_salary = df['salary_in_usd'].groupby(df['work_year']).mean() # Setting the labels plt.title("Average Salaries based on Work Year") plt.xlabel('Work Year') plt.ylabel('Salary') # Drawing the line plot sns.lineplot(x=['2020', '2021', '2022','2023'], y=year_based_salary) plt.show()
Как видите, средняя заработная плата на профессиях, связанных с данными, увеличивается с каждым годом, причем особенно значительный скачок наблюдается между 2021 и 2022 годами. Эта тенденция подчеркивает растущий спрос на квалифицированных специалистов в этой области.
Заворачивать
В этом блоге мы рассмотрели тенденции и зарплаты в науке о данных. Когда мы изучаем графики, мы можем сказать, что популярность науки о данных сохраняется. Инженеры данных больше всего заняты в области науки о данных, за ними следуют специалисты по данным.
Возможно, вы задаетесь вопросом, в какой сфере вам лучше всего заняться карьерой. Позвольте мне рассказать немного больше об этих областях.
Если вы проявляете большой интерес к таким областям, как облачные вычисления, базы данных и программирование, то карьера в области инженерии данных может быть правильным выбором. С другой стороны, если вы увлечены исследованиями, то карьера в области науки о данных может вам подойти. Если вам нравится создавать модели и запускать их в производство, машинное обучение может быть лучшим вариантом. Для тех, кто любит анализировать данные и визуализировать их, аналитика данных может больше соответствовать их интересам.
Ссылку на блокнот, который я использовал в этом блоге, можно найти здесь.
Вот и все. Спасибо за прочтение. Подключим YouTube | Средний | Твиттер | Инстаграм | ЛинкедИн | Каггл
Повышение уровня кодирования
Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:
- 👏 Хлопайте за историю и подписывайтесь на автора 👉
- 📰 Смотрите больше контента в публикации Level Up Coding
- 💰 Бесплатный курс собеседования по программированию ⇒ Просмотреть курс
- 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"
🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу