Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Metal Bands: Exploratory Spotify Data Analysis

Overview

This historical portfolio project explores a dataset collected through the Spotify Web API to compare selected metal artists and tracks. It demonstrates data preparation, visualization, descriptive statistics, principal component analysis, and clustering on a time-specific snapshot of Spotify metadata and audio-feature values.

The analysis is exploratory. Spotify's popularity and audio-feature fields should not be treated as objective measures of artistic quality, listener emotion, or long-term success.

Questions explored

  • How do selected artists and tracks compare across the available audio-feature variables?
  • Which tracks have the highest and lowest valence values in the collected sample?
  • Which tracks have the highest energy values?
  • How do tracks group when selected standardized features are used for clustering?
  • Which variables explain the largest share of variation in the PCA output?

Workflow

  1. Retrieve the available artist and track data through the Spotify Web API.
  2. Clean the dataset and document missing-value handling.
  3. Explore feature distributions and relationships.
  4. Standardize the variables used in PCA or clustering where required.
  5. Apply PCA and clustering as exploratory unsupervised methods.
  6. Visualize and interpret the results with appropriate limitations.

Tools

  • Python
  • pandas
  • NumPy
  • Matplotlib and/or Seaborn
  • scikit-learn
  • Spotify Web API
  • Jupyter Notebook

Results terminology

Use the following labels:

  • Highest valence in the sample, not "happiest" or "most positive song"
  • Lowest valence in the sample, not "saddest" or "most negative song"
  • Highest energy score in the sample
  • Highest Spotify popularity score at the extraction date

Reproduction

  1. Clone or download the repository.
  2. Install the packages listed in requirements.txt.
  3. Review the notebook and data dictionary.
  4. If API extraction remains available for the required endpoints, create local credentials and store them outside version control.
  5. Run the notebooks in the documented order.

Historical API note

This project was created using the Spotify API access available at the time of data collection. Spotify has subsequently changed Development Mode requirements and endpoint access. The repository should state the original extraction date and should not promise that a new user can reproduce the API collection step unchanged.

Interpretation and limitations

  • Spotify popularity is time-sensitive and may change after data collection.
  • Valence and energy are platform-generated descriptors, not direct measurements of human emotion.
  • The artist and track sample is curated and is not representative of metal music as a whole.
  • PCA and clustering results depend on feature selection, scaling, algorithm settings, and the chosen sample.
  • Unsupervised groups are exploratory patterns, not verified musical genres or audience segments.

SOME INTERESTING INSIGHTS

Top Positive song

  • Bruce Dickinson-Confeos

Top Negative song

  • Metallica -Battery

Top Energetic song

  • Iced Earth-Divide Devour

Top Popular song

  • Metallica- Nothing Else Matters

🚀 About Me

Data analyst & Storyteller ┃ Pattern discoverer

About

Python used for data exploration, statistics and machine learning algorithms in an effort to draw meaningful insights .

Topics

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages