Spotify Song Popularity Analysis
Given Spotify song features, answer:
- What does popularity distribution look like?
- Which audio features correlate with popularity?
- Do genres differ in average popularity?
Analysis pipeline
Section titled “Analysis pipeline”flowchart LR A["Raw features
(danceability, energy, ...)"] --> B["Explore
(describe, distribution)"] B --> C["Correlate
(features vs popularity)"] C --> D["Visualize
(heatmap)"] D --> E["Conclude
(what predicts popularity)"]
Step 1: Load
Section titled “Step 1: Load”import pandas as pd
df = pd.read_csv("data/spotify.csv")
print(df.head())Step 2: Popularity distribution
Section titled “Step 2: Popularity distribution”import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=(7, 4))
sns.histplot(df["popularity"], bins=30, kde=True)
plt.title("Popularity distribution")
plt.tight_layout()
plt.show()Step 3: Correlations
Section titled “Step 3: Correlations”import seaborn as sns
import matplotlib.pyplot as plt
num = df.select_dtypes(include="number")
plt.figure(figsize=(8, 6))
sns.heatmap(num.corr(), cmap="coolwarm", center=0)
plt.title("Correlation heatmap")
plt.tight_layout()
plt.show()Visualize it
Section titled “Visualize it”Deliverable
Section titled “Deliverable”- Top correlated features
- Whether correlations are meaningful or driven by outliers
🧪 Try It Yourself
Section titled “🧪 Try It Yourself”Exercise 1 – Summary statistics
Section titled “Exercise 1 – Summary statistics”Exercise 2 – Correlation matrix
Section titled “Exercise 2 – Correlation matrix”Exercise 3 – Select only numeric columns
Section titled “Exercise 3 – Select only numeric columns”pch.coffeeTagline
pch.coffeeCtapch.feedbackHeading
pch.feedbackSubheading