
Данные
Я выбрала данные о статистике музыки и муз жанров на платформе spotify с платформы Kaggle. Этот датасет содержит информацию о треках и их характеристике.
Важность данных
Эти данные интересны, потому что они позволяют проанализировать, какие характеристики треков (например, танцевальность, энергия, громкость) влияют на их популярность. Также можно исследовать, как популярность треков зависит от года выпуска, наличия explicit-контента или музыкальных особенностей (например, лад или темп). Эти insights помогут понять, что делает трек успешным, и могут быть полезны для музыкантов, продюсеров и аналитиков.
Виды графиков
Столбчатая диаграмма — для сравнения средней популярности треков по категориям (например, explicit vs non-explicit, мажорный vs минорный лад).
Линейный график — для анализа динамики изменения популярности треков в зависимости от их характеристик (например, громкость, темп).
Круговая диаграмма — для отображения распределения треков по категориям (например, доли explicit-треков или распределение по жанрам).
Scatter plot (точечный график) — для визуализации зависимости популярности от числовых характеристик (например, танцевальность, энергия).
Ход работы над проектом
Загрузка и предобработка данных:
Загрузите датасет (dataset.csv).
Проверьте на наличие пропущенных значений и дубликатов.
Приведите данные к удобному формату (например, преобразуйте duration_ms в секунды).
Исследовательский анализ данных (EDA):
Изучите распределение ключевых переменных (например, popularity, danceability, energy).
Проверьте корреляции между числовыми переменными.
Исследуйте категориальные переменные (например, explicit, mode).
Визуализация данных:
Постройте графики для анализа зависимостей (например, популярность vs танцевальность, популярность vs громкость).
Используйте разные типы графиков (столбчатые, линейные, scatter plot, boxplot и т. д.).
Примеры промтов и ответов
Промт 1: «Какие характеристики треков наиболее сильно влияют на популярность?» Ответ: На основе анализа корреляционной матрицы и scatter plot можно сделать вывод, что наибольшее влияние на популярность оказывают:
Танцевальность (danceability): Треки с высокой танцевальностью чаще становятся популярными.
Энергия (energy): Энергичные треки также имеют более высокую популярность.
Громкость (loudness): Треки с высокой громкостью чаще попадают в топы.
Промт 2: «Как наличие explicit-контента влияет на популярность треков?» Ответ: На основе boxplot можно сделать вывод, что:
Треки с explicit-контентом в среднем имеют более высокую популярность, чем треки без explicit-контента.
Это может быть связано с тем, что explicit-треки чаще привлекают внимание аудитории.
import pandas as pd import seaborn as sns import matplotlib.pyplot as plt
#Загрузка датасета df = pd.read_csv ('dataset.csv')
#1. График распределения популярности треков plt.figure (figsize=(10, 6)) sns.histplot (df['popularity'], bins=30, kde=True, color='blue') plt.title ('Распределение популярности треков') plt.xlabel ('Популярность') plt.ylabel ('Количество треков') plt.show ()
#2. Линейный график зависимости популярности от громкости (loudness) plt.figure (figsize=(15, 6)) # Увеличиваем ширину графика sns.lineplot (x='loudness', y='popularity', data=df, ci=None, color='green') plt.title ('Зависимость популярности от громкости (loudness)') plt.xlabel ('Громкость (dB)') plt.ylabel ('Популярность') plt.xlim (-20, 0) plt.show ()
#3. Столбчатая диаграмма зависимости популярности от танцевальности #Создадим категории для танцевальности (низкая, средняя, высокая) df['danceability_category'] = pd.cut (df['danceability'], bins=[0, 0.33, 0.66, 1], labels=['Низкая', 'Средняя', 'Высокая']) plt.figure (figsize=(10, 6)) sns.barplot (x='danceability_category', y='popularity', data=df, palette='coolwarm', ci=None) plt.title ('Зависимость популярности от танцевальности') plt.xlabel ('Танцевальность (категории)') plt.ylabel ('Средняя популярность') plt.show ()
#4. График зависимости популярности от наличия explicit-контента plt.figure (figsize=(10, 6)) sns.boxplot (x='explicit', y='popularity', data=df, palette='coolwarm') plt.title ('Зависимость популярности от наличия explicit-контента') plt.xlabel ('Explicit (да/нет)') plt.ylabel ('Популярность') plt.show ()
Проект на Google colab