Assess music genre trends over the past century and predict which genre of music will be the most listened to in the upcoming year.
- Programming Language: Python
- Data Processing & Analysis:
- Pandas - Reading, cleaning, filtering, and merging the dataset
- Facebook Prophet - Time series forecasting of genre popularity
- Data Visualization: Matplotlib & Seaborn Creating bar charts, line graphs, and other custom visualization aesthetics
- Data Storage & Export: CSV Files
- Cloud Computing: Google Colab
- pandas
- numpy
- matplotlib
- seaborn
- prophet
Windows & Mac
graph TB
A[Project2]
A1[README.md]
A2[LICENSE.md]
B[SCRIPTS]
B1[EDA.ipynb]
B2[cleaning merged data.ipynb]
B3[genre predictive analysis.ipynb]
B4[genre trend analysis.ipynb]
B5[merging tracks and albums.ipynb]
C[DATA]
C1[cleaned_merged_tracks.csv]
C2[raw_albums.csv]
C4[obtaining tracks data.md]
C3[Data Appendix]
D[OUTPUT]
D1[Analysis Output.pdf]
D2[EDA.pdf]
A --> A1
A --> A2
A --> B
B --> B1
B --> B2
B --> B3
B --> B4
B --> B5
A --> C
C --> C1
C --> C2
C --> C3
C --> C4
A --> D
D --> D1
D --> D2
%% Styling for main project folder (Dark Blue)
style A fill:#003366,stroke:#001f3f,stroke-width:2px,color:white;
%% Styling for main categories (Light Blue)
style A1 fill:#4a90e2,stroke:#003d5b,stroke-width:2px,color:white;
style A2 fill:#4a90e2,stroke:#003d5b,stroke-width:2px,color:white;
style B fill:#4a90e2,stroke:#003d5b,stroke-width:2px,color:white;
style C fill:#4a90e2,stroke:#003d5b,stroke-width:2px,color:white;
style D fill:#4a90e2,stroke:#003d5b,stroke-width:2px,color:white;
%% Styling for subsets (Light Red)
style B1 fill:#ff9999,stroke:#8b0000,stroke-width:1px,color:black;
style B2 fill:#ff9999,stroke:#8b0000,stroke-width:1px,color:black;
style B3 fill:#ff9999,stroke:#8b0000,stroke-width:1px,color:black;
style B4 fill:#ff9999,stroke:#8b0000,stroke-width:1px,color:black;
style B5 fill:#ff9999,stroke:#8b0000,stroke-width:1px,color:black;
style C1 fill:#ff9999,stroke:#8b0000,stroke-width:1px,color:black;
style C2 fill:#ff9999,stroke:#8b0000,stroke-width:1px,color:black;
style C3 fill:#ff9999,stroke:#8b0000,stroke-width:1px,color:black;
style C4 fill:#ff9999,stroke:#8b0000,stroke-width:1px,color:black;
style D1 fill:#ff9999,stroke:#8b0000,stroke-width:1px,color:black;
style D2 fill:#ff9999,stroke:#8b0000,stroke-width:1px,color:black;
-
Set up Environment
- install python
- install required libraries (listed above)
-
Download Dataset
- navigate to DATA folder
- download
raw_albums.csv - follow instructions in obtaining tracks data.md to download
tracks.csv
-
Clean Data and EDA
- navigate to SCRIPTS folder
- open
merging tracks and albums.ipynb - run each cell to:
- load in
raw_albums.csvandtracks.csv - clean dataset
- merge and download the datasets into one called
merged_tracks_and_albums.csv
- load in
- navigate to SCRIPTS
- open
cleaning merged data.ipynb - run each cell to:
- load in
merged_tracks_and_albums.csv - clean dataset
- download cleaned version-
cleaned_merged_tracks.csv
- load in
- naviagate to SCRIPTS
- open
EDA.ipynb - run each cell to:
- load in
cleaned_merged_tracks.csv - perform EDA
- visualize genre trends
- load in
-
Analyze Genre Trends
- navigate to SCRIPTS
- open
genre trend analysis.ipynb - run each cell to:
- load in
cleaned_merged_tracks.csv - perform time series decomposition
- generate visualizations of genre trends
- load in
-
Genre Predictions
- navigate to SCRIPTS
- open
genre predictive analysis.ipynb - run each cell to:
- load in
cleaned_merged_tracks.csv - use Prophet model to predict future genre listens
- visualize predictions
- load in