
Вступление
Данные для проекта «Анализ плейлистов Spotify» был взят из файла csv, который содержал данные 6000 плейлистов. Сам файл был взят с сайта https://www.kaggle.com/datasets/viktoriiashkurenko/278k-spotify-songs/data?select=main_dataset.csv
Я выбрал эту базу данных, поскольку мне интересна музыка и этот анализ позволил мне выявить основные тренды и тенденции в популярной музыке.
В этом анализе были использованы следующие графики:
Используется для анализа темпа треков
Показывает зависимость между популярностью и продолжительностью
Показывается средняя популярность по типу релиза (альбом, сингл, компиляция)
Зависимость между популярностью и танцевальностью
Этапы работы
Первым делом был скачан датасет и проанализированы первые строчки.
import pandas as pd
file_path = 'main_dataset.csv' data = pd.read_csv (file_path)
data.head ()
Коды для графиков
Графикам был придан стиль и цветовая гамма Spotify
import matplotlib.pyplot as plt
plt.figure (figsize=(10, 6)) plt.hist (data['tempo'], bins=30, color='#1DB954') plt.title ('Distribution of Track Tempo', fontsize=16, color='white') plt.xlabel ('Tempo (BPM)', fontsize=14, color='white') plt.ylabel ('Count', fontsize=14, color='white') plt.tick_params (colors='white') plt.gca ().set_facecolor ('black') plt.gcf ().set_facecolor ('black') plt.show ()
plt.figure (figsize=(10, 6)) plt.scatter (data['duration_ms'], data['popularity'], color='#1DB954') plt.title ('Popularity vs. Duration', fontsize=16, color='white') plt.xlabel ('Duration (ms)', fontsize=14, color='white') plt.ylabel ('Popularity', fontsize=14, color='white') plt.tick_params (colors='white') plt.gca ().set_facecolor ('black') plt.gcf ().set_facecolor ('black') plt.show ()
avg_popularity = data.groupby ('album_type')['popularity'].mean ().reset_index ()
plt.figure (figsize=(10, 6)) plt.bar (avg_popularity['album_type'], avg_popularity['popularity'], color=['#1DB954', '#191414', '#FFFFFF']) plt.title ('Average Popularity by Album Type', fontsize=16, color='white') plt.xlabel ('Album Type', fontsize=14, color='white') plt.ylabel ('Average Popularity', fontsize=14, color='white') plt.tick_params (colors='white') plt.gca ().set_facecolor ('black') plt.gcf ().set_facecolor ('black') plt.show ()
import matplotlib.pyplot as plt import pandas as pd
data = pd.read_csv ('main_dataset.csv')
plt.figure (figsize=(10, 6)) plt.scatter (data['danceability'], data['popularity'], color='#1DB954') plt.title ('Popularity vs. Danceability', fontsize=16, color='white') plt.xlabel ('Danceability', fontsize=14, color='white') plt.ylabel ('Popularity', fontsize=14, color='white') plt.tick_params (colors='white') plt.gca ().set_facecolor ('black') plt.gcf ().set_facecolor ('black') plt.show ()
Графики
Выводы на основе анализа
Большинство треков имеет темп в диапазоне от 90 до 130 BPM. Это типичный диапазон для большинства популярных жанров музыки, таких как поп и танцевальная музыка.
Наблюдается слабая зависимость между продолжительностью трека и его популярностью. Однако можно заметить, что треки средней продолжительности (около 200000 — 250000 мс, или 3-4 минут) имеют тенденцию быть более популярными.
Альбомы типа «single» и «album» имеют разные уровни популярности, причем «album» в среднем более популярны. Это может быть связано с тем, что альбомы предлагают слушателям более целостный опыт и часто лучше продвигаются.
Танцевальные треки (danceability) имеют тенденцию быть более популярными. Это важный фактор для жанров, которые часто играют на танцевальных площадках.
Описание применения генеративной модели
Для создания обложки использовался ChatGPT 4o https://openai.com/
Для создания графиков также использовался ChatGPT 4o https://openai.com/
Ссылка на GoogleColab https://colab.research.google.com/drive/1p_4u7zrcA65NJLAbeC0Ew0Mk6JuvITg6?usp=sharing
Ссылка на датасет https://disk.yandex.ru/d/mLK9lXefzHuhHA