
Описание
Меня интересует музыка, какие артисты, песни и жанры популярны, что делает их популярными, а также другие вопросы, связанные с музыкальной индустрией. Самой крупной стриминговой площадкой на сегодняшний день является сервис Spotify. На сайте Kaggle я нашел датасет, в котором представлены 954 самых популярных трека на Spotify за 2023 год. Кроме названий и исполнителей песен датасет содержит информацию об их годе выпуска, ладе, танцевальности, скорости, энергичности и других характеристиках музыки.
Я подумал, что было бы интересно посмотреть на различные фильтрации, соотношения между треками по разным признакам, изменения в зависимости от времени выхода. Данные были визуализированы в виде столбчатой диаграммы, графика рассеяния, линейного графика и круговой диаграммы.
Подготовка датасета и настройка оформления

Загрузка библиотек

Был выбран шрифт ABC Social от студии Dinamo, поскольку эта студия создала фирменный вариативный шрифт, который используется в интерфейсе Spotify. Также шрифт подходит для визуализации данных, поскольку хорошо выдерживает уменьшение, придаёт лёгкость и чистоту графикам.

Код для подключения кастомного шрифта
Запросом в Chat GPT была сгенерирована палитра для визуализации, которая бы соответствовала фирменным цветам интерфейса Spotify.
В коде были настроены общие характеристики стиля и палитра диаграмм в библиотеках Seaborn и Matplotlib: тёмная тема из палитры, белые подписи, оси и другие элементы.
Код для палитры и общих характеристик оформления
Загрузка датасета, приведение названия столбцов к общему стилю (строчные буквы и подчёркивания), очищение столбца streams от пропусков и лишних символов, преобразование его значений в числовой формат и удаление строк с некорректными или отсутствующими данными, чтобы подготовить таблицу к дальнейшему анализу.
Загрузка данных, очистка пустых значений и подготовка
Количество стримов у топ-10 артистов
С помощью кода я построил столбчатую диаграмму с данными о 10 самых популярных артистах и их суммарных стримах в миллионах прослушиваний. Сначала я агрегировал и сортировал данные, затем создал график и оформил его в заданном стиле.
Код для столбчатой диаграммы количества стримов
Зависимость между энергичностью и танцевальностью треков
График рассеяния показывает связь между двумя параметрами треков, измеряемых в процентах: энергичностью (energy_%) и танцевальностью (danceability_%). Каждая точка представляет отдельный трек, её размер и цвет отражают количество стримов: чем больше и ярче точка, тем популярнее трек.
Код для графика рассеяния Энергичность+Танцевальность
Изменение энергичности по месяцам
На линейном графике можно увидеть, как меняется средний уровень энергичности треков в зависимости от месяца их выхода на площадку. Данные группируются по названиям месяцев и вычисляется среднее значение energy_%. Можно увидеть, что наиболее энергичные треки выходили в марте и августе, а менее энергичные в апреле и октябре. В целом, энергичность снижалась в течение года.
Код для линейного графика изменения Энергичности по месяцам
Соотношение треков по ладу
Круговая диаграмма показывает соотношение треков в датасете по ладам Major и Minor. Сначала считается количество треков каждого музыкального лада (столбец mode), затем создаётся диаграмма с подписями и процентами. Видно что мажорных треков было больше, но не намного.
Код для круговой диаграммы соотношения по ладу
Заключение
Анализ и визуализация данных из выбранного датасета позволили увидеть, какие артисты и насколько сильно были популярны в 2023 году на стриминге Spotify, насколько связаны энергичность и танцевальность треков исходя из данных, как менялась средняя энергичность треков в зависимости от месяца их выхода в 2023 году, и какое соотношение мажорных и минорных треков было на Spotify.
Анализ и визуализация данных о популярной музыке на Spotify за 2023 год может быть полезна музыкантам, продюсерам, диджеям, а также людям исследующим музыку и культуру для понимания вкусовых предпочтений слушателей и вектора развития музыкальной индустрии.
Применение генеративной модели
Chat GPT обращения с целью генерации инструкций и рекомендаций по улучшению кода, вопросы по тому, как правильно имплементировать те или иные функции, библиотеки и т. д., генерация палитры для оформления