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

plt.style.use ('seaborn-v0_8-darkgrid') plt.rcParams['font.family'] = 'DejaVu Sans' plt.rcParams['figure.figsize'] = (14, 8)
spotify_palette = ['
Топ-10 артистов по общему количеству прослушиваний
The Weeknd, Taylor Swift и Ed Sheeran образуют тройку лидеров с практически одинаковыми показателями (около 14 миллиардов потоков каждый). Это демонстрирует устойчивую популярность артистов на протяжении длительного времени.
Интересно отметить присутствие как поп-исполнителей, так и рок-групп (Arctic Monkeys, Imagine Dragons) в топ-10, что указывает на разнообразие музыкальных предпочтений аудитории.

artist_streams = df.groupby ('artist (s)_name')['streams'].sum ().reset_index () top_10_artists = artist_streams.nlargest (10, 'streams').sort_values ('streams', ascending=True)
plt.figure (figsize=(15, 9)) bars = plt.barh (top_10_artists['artist (s)_name'], top_10_artists['streams'] / 1e9, color=plt.cm.viridis (np.linspace (0.3, 0.9, len (top_10_artists))), edgecolor='black', alpha=0.85, height=0.7)
plt.title ('ТОП-10 АРТИСТОВ ПО ОБЩЕМУ КОЛИЧЕСТВУ ПОТОКОВ', fontsize=20, fontweight='bold', pad=20, color=spotify_palette[1]) plt.xlabel ('ПОТОКИ (МИЛЛИАРДЫ)', fontsize=14, fontweight='bold') plt.ylabel ('АРТИСТ', fontsize=14, fontweight='bold')
for bar, streams in zip (bars, top_10_artists['streams']): plt.text (bar.get_width () + 0.05, bar.get_y () + bar.get_height ()/2, f'{streams/1e9:.2f}B', va='center', fontsize=11, fontweight='bold')
plt. grid (axis='x', alpha=0.3, linestyle='--') plt.gca ().spines['top'].set_visible (False) plt.gca ().spines['right'].set_visible (False) plt.tight_layout () plt.show ()
Топ-15 самых прослушиваемых треков 2023 года
Трек «Flowers» является абсолютным лидером с 738 миллионами потоков. Интересно, что в топ-15 представлены как сольные артисты, так и коллаборации, что подтверждает успешность обоих форматов.
df_2023 = df[df['released_year'] == 2023].copy () top_15_2023 = df_2023.nlargest (15, 'streams')[['track_name', 'artist (s)_name', 'streams']] top_15_2023 = top_15_2023.sort_values ('streams', ascending=True)
plt.figure (figsize=(16, 10)) bars = plt.barh (top_15_2023['track_name'], top_15_2023['streams'] / 1e9, color=spotify_palette[0], edgecolor=spotify_palette[1], linewidth=1.5, height=0.7)
plt.title ('ТОП-15 САМЫХ ПРОСЛУШИВАЕМЫХ ТРЕКОВ 2023 ГОДА', fontsize=22, fontweight='bold', pad=25, color=spotify_palette[1]) plt.xlabel ('ПРОСЛУШИВАНИЯ (МИЛЛИАРДЫ)', fontsize=14, fontweight='bold', color=spotify_palette[3]) plt.ylabel ('НАЗВАНИЕ ТРЕКА', fontsize=14, fontweight='bold', color=spotify_palette[3])
for i, (bar, stream) in enumerate (zip (bars, top_15_2023['streams'])): plt.text (bar.get_width () + 0.02, bar.get_y () + bar.get_height ()/2, f'{stream/1e9:.2f}B', va='center', fontsize=11, fontweight='bold', color=spotify_palette[1])
plt.grid (axis='x', alpha=0.3, linestyle='--') plt.gca ().spines['top'].set_visible (False) plt.gca ().spines['right'].set_visible (False) plt.tight_layout () plt.show ()
Анализ аудиохарактеристик популярных треков
Средняя танцевальность популярных треков составляет 67%, что указывает на преобладание танцевальных ритмов. Энергичность в среднем равна 64,3%, показывая умеренно-высокий уровень энергии.
Распределение по характеристикам показывает нормальное распределение для большинства параметров, что свидетельствует о разнообразии музыкальных стилей среди популярных треков.
audio_features = ['danceability_%', 'energy_%', 'valence_%', 'acousticness_%']
fig, axes = plt.subplots (2, 2, figsize=(16, 12)) axes = axes.flatten ()
feature_names = ['Танцевальность', 'Энергичность', 'Позитивность', 'Акустичность']
for idx, (feature, name) in enumerate (zip (audio_features, feature_names)): ax = axes[idx] sns.histplot (df[feature], bins=30, kde=True, ax=ax, color=spotify_palette[idx], alpha=0.7, edgecolor=spotify_palette[1])
mean_val = df[feature].mean ()
ax.axvline (mean_val, color=spotify_palette[1], linestyle='--', linewidth=2,
label=f’Среднее: {mean_val:.1f}%')
ax.set_title (f’РАСПРЕДЕЛЕНИЕ {name.upper ()}', fontsize=16, fontweight='bold', pad=15)
ax.set_xlabel (f'{name} (%)', fontsize=12)
ax.set_ylabel ('КОЛИЧЕСТВО ТРЕКОВ', fontsize=12)
ax.legend ()
ax.grid (True, alpha=0.2)
plt.suptitle ('АНАЛИЗ АУДИОХАРАКТЕРИСТИК ПОПУЛЯРНЫХ ТРЕКОВ', fontsize=20, fontweight='bold', y=1.02, color=spotify_palette[1]) plt.tight_layout () plt.show ()
Корреляция между потоками и характеристиками
Самый сильный фактор, влияющий на количество потоков — присутствие в плейлистах Spotify (коэффициент корреляции 0.79). Это подтверждает важность включения в редакционные и пользовательские плейлисты для достижения популярности.
Музыкальные характеристики (танцевальность, энергичность, позитивность, акустичность) показывают слабую или отсутствующую прямую корреляцию с количеством потоков, что говорит о том, что популярность определяется не только техническими параметрами треков.
correlation_features = ['streams', 'danceability_%', 'energy_%', 'valence_%', 'acousticness_%', 'bpm', 'in_spotify_playlists']
corr_df = df[correlation_features].copy () correlation_matrix = corr_df.corr ()
plt.figure (figsize=(14, 10)) mask = np.triu (np.ones_like (correlation_matrix, dtype=bool))
sns.heatmap (correlation_matrix, mask=mask, annot=True, fmt='.2f', cmap='RdYlGn', center=0, square=True, linewidths=1, cbar_kws={"shrink»: 0.8, «label»: «Коэффициент корреляции"}, annot_kws={"size»: 11, «weight»: «bold"})
plt.title ('КОРРЕЛЯЦИЯ МЕЖДУ ПРОСЛУШИВАНИЯМИ И ХАРАКТЕРИСТИКАМИ', fontsize=18, fontweight='bold', pad=20, color=spotify_palette[1]) plt.xticks (rotation=45, ha='right', fontsize=11) plt.yticks (rotation=0, fontsize=11) plt.tight_layout () plt.show ()
Таким образом, анализ приведённых данных дал нам общий ключ к пониманию того, какая музыка обладает большим шансом стать популярной: Фокус на плейлисты — основной драйвер роста потоков; Танцевальные ритмы — наиболее распространенная характеристика популярных треков; Долгосрочная карьера — ключ к накоплению общего количества потоков.