diff --git a/analysis pipeline/Person 2.ipynb b/analysis pipeline/Person 2.ipynb deleted file mode 100644 index 7022d36..0000000 --- a/analysis pipeline/Person 2.ipynb +++ /dev/null @@ -1,4702 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "318c8757-bd0a-4432-8b27-7b31fbb03700", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
song_namesong_popularitysong_duration_msacousticnessdanceabilityenergyinstrumentalnesskeylivenessloudnessaudio_modespeechinesstempotime_signatureaudio_valence
0Boulevard of Broken Dreams732623330.0055200.4960.6820.00002980.0589-4.09510.0294167.06040.474
1In The End662169330.0103000.5420.8530.00000030.1080-6.40700.0498105.25640.370
2Seven Nation Army762317330.0081700.7370.4630.44700000.2550-7.82810.0792123.88140.324
3By The Way742169330.0264000.4510.9700.00355000.1020-4.93810.1070122.44440.198
4How You Remind Me562238260.0009540.4470.7660.000000100.1130-5.06510.0313172.01140.574
................................................
18830Let It Breathe601596450.8930000.5000.1510.000065110.1110-16.10710.0348113.96940.300
18831Answers602056660.7650000.4950.1610.000001110.1050-14.07800.030194.28640.265
18832Sudden Love (Acoustic)231822110.8470000.7190.3250.00000000.1250-12.22210.0355130.53440.286
18833Gentle on My Mind553522800.9450000.4880.3260.01570030.1190-12.02010.0328106.06340.323
18834Up to Me601935330.9110000.6400.3810.00025440.1040-11.79010.030291.49040.581
\n", - "

18835 rows × 15 columns

\n", - "
" - ], - "text/plain": [ - " song_name song_popularity song_duration_ms \\\n", - "0 Boulevard of Broken Dreams 73 262333 \n", - "1 In The End 66 216933 \n", - "2 Seven Nation Army 76 231733 \n", - "3 By The Way 74 216933 \n", - "4 How You Remind Me 56 223826 \n", - "... ... ... ... \n", - "18830 Let It Breathe 60 159645 \n", - "18831 Answers 60 205666 \n", - "18832 Sudden Love (Acoustic) 23 182211 \n", - "18833 Gentle on My Mind 55 352280 \n", - "18834 Up to Me 60 193533 \n", - "\n", - " acousticness danceability energy instrumentalness key liveness \\\n", - "0 0.005520 0.496 0.682 0.000029 8 0.0589 \n", - "1 0.010300 0.542 0.853 0.000000 3 0.1080 \n", - "2 0.008170 0.737 0.463 0.447000 0 0.2550 \n", - "3 0.026400 0.451 0.970 0.003550 0 0.1020 \n", - "4 0.000954 0.447 0.766 0.000000 10 0.1130 \n", - "... ... ... ... ... ... ... \n", - "18830 0.893000 0.500 0.151 0.000065 11 0.1110 \n", - "18831 0.765000 0.495 0.161 0.000001 11 0.1050 \n", - "18832 0.847000 0.719 0.325 0.000000 0 0.1250 \n", - "18833 0.945000 0.488 0.326 0.015700 3 0.1190 \n", - "18834 0.911000 0.640 0.381 0.000254 4 0.1040 \n", - "\n", - " loudness audio_mode speechiness tempo time_signature \\\n", - "0 -4.095 1 0.0294 167.060 4 \n", - "1 -6.407 0 0.0498 105.256 4 \n", - "2 -7.828 1 0.0792 123.881 4 \n", - "3 -4.938 1 0.1070 122.444 4 \n", - "4 -5.065 1 0.0313 172.011 4 \n", - "... ... ... ... ... ... \n", - "18830 -16.107 1 0.0348 113.969 4 \n", - "18831 -14.078 0 0.0301 94.286 4 \n", - "18832 -12.222 1 0.0355 130.534 4 \n", - "18833 -12.020 1 0.0328 106.063 4 \n", - "18834 -11.790 1 0.0302 91.490 4 \n", - "\n", - " audio_valence \n", - "0 0.474 \n", - "1 0.370 \n", - "2 0.324 \n", - "3 0.198 \n", - "4 0.574 \n", - "... ... \n", - "18830 0.300 \n", - "18831 0.265 \n", - "18832 0.286 \n", - "18833 0.323 \n", - "18834 0.581 \n", - "\n", - "[18835 rows x 15 columns]" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "music = pd.read_csv(\"../data/raw/song_data.csv.zip\")\n", - "music" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d57510e4-3987-4d6c-afee-67c386e2a91c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
song_namesong_popularitysong_duration_msacousticnessdanceabilityenergyinstrumentalnesskeylivenessloudnessaudio_modespeechinesstempotime_signatureaudio_valence
0Boulevard of Broken Dreams732623330.0055200.4960.6820.00002980.0589-4.09510.0294167.06040.474
1In The End662169330.0103000.5420.8530.00000030.1080-6.40700.0498105.25640.370
2Seven Nation Army762317330.0081700.7370.4630.44700000.2550-7.82810.0792123.88140.324
3By The Way742169330.0264000.4510.9700.00355000.1020-4.93810.1070122.44440.198
4How You Remind Me562238260.0009540.4470.7660.000000100.1130-5.06510.0313172.01140.574
................................................
495China Grove671953060.3190000.6230.9100.00044890.0810-8.44810.0384145.62440.745
496Foreplay / Long Time644676400.0097500.4360.6570.00748050.0931-8.86810.0541118.69340.210
497Come Sail Away593650000.1600000.2870.5620.00000000.1030-7.54910.0304147.62240.126
498Give A Little Bit722481730.0694000.5310.8180.00960020.2630-5.35810.045290.76740.471
499Doctor My Eyes641999060.2660000.4800.6260.00005750.0857-8.40610.029475.63040.542
\n", - "

500 rows × 15 columns

\n", - "
" - ], - "text/plain": [ - " song_name song_popularity song_duration_ms \\\n", - "0 Boulevard of Broken Dreams 73 262333 \n", - "1 In The End 66 216933 \n", - "2 Seven Nation Army 76 231733 \n", - "3 By The Way 74 216933 \n", - "4 How You Remind Me 56 223826 \n", - ".. ... ... ... \n", - "495 China Grove 67 195306 \n", - "496 Foreplay / Long Time 64 467640 \n", - "497 Come Sail Away 59 365000 \n", - "498 Give A Little Bit 72 248173 \n", - "499 Doctor My Eyes 64 199906 \n", - "\n", - " acousticness danceability energy instrumentalness key liveness \\\n", - "0 0.005520 0.496 0.682 0.000029 8 0.0589 \n", - "1 0.010300 0.542 0.853 0.000000 3 0.1080 \n", - "2 0.008170 0.737 0.463 0.447000 0 0.2550 \n", - "3 0.026400 0.451 0.970 0.003550 0 0.1020 \n", - "4 0.000954 0.447 0.766 0.000000 10 0.1130 \n", - ".. ... ... ... ... ... ... \n", - "495 0.319000 0.623 0.910 0.000448 9 0.0810 \n", - "496 0.009750 0.436 0.657 0.007480 5 0.0931 \n", - "497 0.160000 0.287 0.562 0.000000 0 0.1030 \n", - "498 0.069400 0.531 0.818 0.009600 2 0.2630 \n", - "499 0.266000 0.480 0.626 0.000057 5 0.0857 \n", - "\n", - " loudness audio_mode speechiness tempo time_signature audio_valence \n", - "0 -4.095 1 0.0294 167.060 4 0.474 \n", - "1 -6.407 0 0.0498 105.256 4 0.370 \n", - "2 -7.828 1 0.0792 123.881 4 0.324 \n", - "3 -4.938 1 0.1070 122.444 4 0.198 \n", - "4 -5.065 1 0.0313 172.011 4 0.574 \n", - ".. ... ... ... ... ... ... \n", - "495 -8.448 1 0.0384 145.624 4 0.745 \n", - "496 -8.868 1 0.0541 118.693 4 0.210 \n", - "497 -7.549 1 0.0304 147.622 4 0.126 \n", - "498 -5.358 1 0.0452 90.767 4 0.471 \n", - "499 -8.406 1 0.0294 75.630 4 0.542 \n", - "\n", - "[500 rows x 15 columns]" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "songs = music.loc[0:499]\n", - "songs" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d192c40d-acfe-4f16-92ca-3f66c0bd2e9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
song_namesong_popularitysong_duration_msacousticnessdanceabilityenergyinstrumentalnesskeylivenessloudnessspeechinesstempoaudio_valence
0Boulevard of Broken Dreams732623330.0055200.4960.6820.00002980.0589-4.0950.0294167.0600.474
1In The End662169330.0103000.5420.8530.00000030.1080-6.4070.0498105.2560.370
2Seven Nation Army762317330.0081700.7370.4630.44700000.2550-7.8280.0792123.8810.324
3By The Way742169330.0264000.4510.9700.00355000.1020-4.9380.1070122.4440.198
4How You Remind Me562238260.0009540.4470.7660.000000100.1130-5.0650.0313172.0110.574
..........................................
495China Grove671953060.3190000.6230.9100.00044890.0810-8.4480.0384145.6240.745
496Foreplay / Long Time644676400.0097500.4360.6570.00748050.0931-8.8680.0541118.6930.210
497Come Sail Away593650000.1600000.2870.5620.00000000.1030-7.5490.0304147.6220.126
498Give A Little Bit722481730.0694000.5310.8180.00960020.2630-5.3580.045290.7670.471
499Doctor My Eyes641999060.2660000.4800.6260.00005750.0857-8.4060.029475.6300.542
\n", - "

500 rows × 13 columns

\n", - "
" - ], - "text/plain": [ - " song_name song_popularity song_duration_ms \\\n", - "0 Boulevard of Broken Dreams 73 262333 \n", - "1 In The End 66 216933 \n", - "2 Seven Nation Army 76 231733 \n", - "3 By The Way 74 216933 \n", - "4 How You Remind Me 56 223826 \n", - ".. ... ... ... \n", - "495 China Grove 67 195306 \n", - "496 Foreplay / Long Time 64 467640 \n", - "497 Come Sail Away 59 365000 \n", - "498 Give A Little Bit 72 248173 \n", - "499 Doctor My Eyes 64 199906 \n", - "\n", - " acousticness danceability energy instrumentalness key liveness \\\n", - "0 0.005520 0.496 0.682 0.000029 8 0.0589 \n", - "1 0.010300 0.542 0.853 0.000000 3 0.1080 \n", - "2 0.008170 0.737 0.463 0.447000 0 0.2550 \n", - "3 0.026400 0.451 0.970 0.003550 0 0.1020 \n", - "4 0.000954 0.447 0.766 0.000000 10 0.1130 \n", - ".. ... ... ... ... ... ... \n", - "495 0.319000 0.623 0.910 0.000448 9 0.0810 \n", - "496 0.009750 0.436 0.657 0.007480 5 0.0931 \n", - "497 0.160000 0.287 0.562 0.000000 0 0.1030 \n", - "498 0.069400 0.531 0.818 0.009600 2 0.2630 \n", - "499 0.266000 0.480 0.626 0.000057 5 0.0857 \n", - "\n", - " loudness speechiness tempo audio_valence \n", - "0 -4.095 0.0294 167.060 0.474 \n", - "1 -6.407 0.0498 105.256 0.370 \n", - "2 -7.828 0.0792 123.881 0.324 \n", - "3 -4.938 0.1070 122.444 0.198 \n", - "4 -5.065 0.0313 172.011 0.574 \n", - ".. ... ... ... ... \n", - "495 -8.448 0.0384 145.624 0.745 \n", - "496 -8.868 0.0541 118.693 0.210 \n", - "497 -7.549 0.0304 147.622 0.126 \n", - "498 -5.358 0.0452 90.767 0.471 \n", - "499 -8.406 0.0294 75.630 0.542 \n", - "\n", - "[500 rows x 13 columns]" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "songs_cleaned = songs.drop(['audio_mode', 'time_signature'], axis=1)\n", - "songs_cleaned\n", - "#Cleaning the data. Here I am cleaning the data by removing 2 columns that are not significantin my research or are just repetitive." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5c5ff1e0-d19c-43b7-b408-fb6092689ea0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
song_namesong_popularitysong_duration_msacousticnessdanceabilityenergyinstrumentalnesskeylivenessloudnessspeechinesstempoaudio_valencedanceable_valence
0Boulevard of Broken Dreams732623330.0055200.4960.6820.00002980.0589-4.0950.0294167.0600.4740.970
1In The End662169330.0103000.5420.8530.00000030.1080-6.4070.0498105.2560.3700.912
2Seven Nation Army762317330.0081700.7370.4630.44700000.2550-7.8280.0792123.8810.3241.061
3By The Way742169330.0264000.4510.9700.00355000.1020-4.9380.1070122.4440.1980.649
4How You Remind Me562238260.0009540.4470.7660.000000100.1130-5.0650.0313172.0110.5741.021
.............................................
495China Grove671953060.3190000.6230.9100.00044890.0810-8.4480.0384145.6240.7451.368
496Foreplay / Long Time644676400.0097500.4360.6570.00748050.0931-8.8680.0541118.6930.2100.646
497Come Sail Away593650000.1600000.2870.5620.00000000.1030-7.5490.0304147.6220.1260.413
498Give A Little Bit722481730.0694000.5310.8180.00960020.2630-5.3580.045290.7670.4711.002
499Doctor My Eyes641999060.2660000.4800.6260.00005750.0857-8.4060.029475.6300.5421.022
\n", - "

500 rows × 14 columns

\n", - "
" - ], - "text/plain": [ - " song_name song_popularity song_duration_ms \\\n", - "0 Boulevard of Broken Dreams 73 262333 \n", - "1 In The End 66 216933 \n", - "2 Seven Nation Army 76 231733 \n", - "3 By The Way 74 216933 \n", - "4 How You Remind Me 56 223826 \n", - ".. ... ... ... \n", - "495 China Grove 67 195306 \n", - "496 Foreplay / Long Time 64 467640 \n", - "497 Come Sail Away 59 365000 \n", - "498 Give A Little Bit 72 248173 \n", - "499 Doctor My Eyes 64 199906 \n", - "\n", - " acousticness danceability energy instrumentalness key liveness \\\n", - "0 0.005520 0.496 0.682 0.000029 8 0.0589 \n", - "1 0.010300 0.542 0.853 0.000000 3 0.1080 \n", - "2 0.008170 0.737 0.463 0.447000 0 0.2550 \n", - "3 0.026400 0.451 0.970 0.003550 0 0.1020 \n", - "4 0.000954 0.447 0.766 0.000000 10 0.1130 \n", - ".. ... ... ... ... ... ... \n", - "495 0.319000 0.623 0.910 0.000448 9 0.0810 \n", - "496 0.009750 0.436 0.657 0.007480 5 0.0931 \n", - "497 0.160000 0.287 0.562 0.000000 0 0.1030 \n", - "498 0.069400 0.531 0.818 0.009600 2 0.2630 \n", - "499 0.266000 0.480 0.626 0.000057 5 0.0857 \n", - "\n", - " loudness speechiness tempo audio_valence danceable_valence \n", - "0 -4.095 0.0294 167.060 0.474 0.970 \n", - "1 -6.407 0.0498 105.256 0.370 0.912 \n", - "2 -7.828 0.0792 123.881 0.324 1.061 \n", - "3 -4.938 0.1070 122.444 0.198 0.649 \n", - "4 -5.065 0.0313 172.011 0.574 1.021 \n", - ".. ... ... ... ... ... \n", - "495 -8.448 0.0384 145.624 0.745 1.368 \n", - "496 -8.868 0.0541 118.693 0.210 0.646 \n", - "497 -7.549 0.0304 147.622 0.126 0.413 \n", - "498 -5.358 0.0452 90.767 0.471 1.002 \n", - "499 -8.406 0.0294 75.630 0.542 1.022 \n", - "\n", - "[500 rows x 14 columns]" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "songs_cleaned['danceable_valence'] = songs_cleaned['danceability'] + songs_cleaned['audio_valence']\n", - "# These 2 variables have very similar values so I combined them\n", - "\n", - "songs_cleaned" - ] - }, - { - "cell_type": "markdown", - "id": "62daed46-a07e-41cc-8a86-e1404b207faf", - "metadata": {}, - "source": [ - "# Wrangling data\n", - "since one of my research questions has to do with genres of a song, but I cannot find all\n", - "the genres because it is not only time consuming, but there are multiple songs with that one titles and I will not be able to figure out all of it so I am just going to find the top 25 songs and their genres and attempt to answer my question that way." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b00ceb23-05ff-4535-abea-4cec55c14051", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
song_namesong_popularitysong_duration_msacousticnessdanceabilityenergyinstrumentalnesskeylivenessloudnessspeechinesstempoaudio_valencedanceable_valence
61Taki Taki (with Selena Gomez, Ozuna & Cardi B)982125000.1530000.8410.7980.00000310.0618-4.2060.229095.9480.5911.432
86I Like It952533900.0990000.8160.7260.00000050.3720-3.9980.1290136.0480.6501.466
85BEBE952178220.1720000.6350.9020.00000000.1250-3.5590.1090102.0630.2860.921
64Beautiful (feat. Camila Cabello)941800000.3460000.6380.7170.00000020.1050-4.7220.0337100.0270.2490.887
60MIA (feat. Drake)942103670.0143000.8180.5400.00051260.0990-6.3500.054497.0640.1740.992
70Wake Up in the Sky922046640.0038100.8000.5780.00000040.3590-5.1440.0485143.0100.3671.167
1011, 2, 3 (feat. Jason Derulo & De La Ghetto)882015260.1650000.7920.8950.00000010.0501-3.1120.058994.9680.7941.586
65Celoso871796930.3520000.7460.7030.00000040.3310-4.1790.1070166.0430.6671.413
67Real Friends852235830.2350000.7010.5120.00000500.1350-6.8690.096991.9470.6631.364
131All of Me852695600.9220000.4220.2640.00000080.1320-7.0640.0322119.9300.3310.753
212Hips Don't Lie842180930.2840000.7780.8240.000000100.4050-5.8920.0712100.0240.7561.534
114Finesse (Remix) [feat. Cardi B]842172880.0185000.7040.8590.00000050.0215-4.8770.0996105.1150.9261.630
126Hips Don't Lie842180930.2840000.7780.8240.000000100.4050-5.8920.0712100.0240.7561.534
128Pumped Up Kicks842396000.1450000.7330.7100.11500050.0956-5.8490.0292127.9750.9651.698
414Hotel California - Remastered833913760.0057400.5790.5080.00049420.0575-9.4840.0270147.1250.6091.188
71Está Rico832151510.2660000.8170.7400.000000110.0992-4.5660.2830130.0400.6741.491
427Highway to Hell832084000.0591000.5730.9130.00173060.1560-4.7930.1320115.7150.4220.995
353Hotel California - Remastered833913760.0057400.5790.5080.00049420.0575-9.4840.0270147.1250.6091.188
180How to Save a Life832625330.2690000.6400.7430.000000100.1010-4.0800.0379122.0350.3611.001
13Can't Stop812690000.0179000.6180.9380.00000090.1670-3.4420.045691.4550.8751.493
185If I Ain't Got You812287060.6030000.6090.4450.00000770.1040-9.1290.1060118.3930.1660.775
155Bleeding Love812624660.1880000.6380.6560.00000050.1460-5.8860.0357104.0360.2250.863
261Fortunate Son811407730.2010000.6400.6630.00806000.1520-7.5160.0374132.7700.6631.303
9Sex on Fire812033460.0017200.5420.9050.01040090.1360-5.6530.0540153.3980.3740.916
6Last Resort811998930.0005040.5810.8870.00111040.2680-3.6590.062490.5780.7241.305
\n", - "
" - ], - "text/plain": [ - " song_name song_popularity \\\n", - "61 Taki Taki (with Selena Gomez, Ozuna & Cardi B) 98 \n", - "86 I Like It 95 \n", - "85 BEBE 95 \n", - "64 Beautiful (feat. Camila Cabello) 94 \n", - "60 MIA (feat. Drake) 94 \n", - "70 Wake Up in the Sky 92 \n", - "101 1, 2, 3 (feat. Jason Derulo & De La Ghetto) 88 \n", - "65 Celoso 87 \n", - "67 Real Friends 85 \n", - "131 All of Me 85 \n", - "212 Hips Don't Lie 84 \n", - "114 Finesse (Remix) [feat. Cardi B] 84 \n", - "126 Hips Don't Lie 84 \n", - "128 Pumped Up Kicks 84 \n", - "414 Hotel California - Remastered 83 \n", - "71 Está Rico 83 \n", - "427 Highway to Hell 83 \n", - "353 Hotel California - Remastered 83 \n", - "180 How to Save a Life 83 \n", - "13 Can't Stop 81 \n", - "185 If I Ain't Got You 81 \n", - "155 Bleeding Love 81 \n", - "261 Fortunate Son 81 \n", - "9 Sex on Fire 81 \n", - "6 Last Resort 81 \n", - "\n", - " song_duration_ms acousticness danceability energy instrumentalness \\\n", - "61 212500 0.153000 0.841 0.798 0.000003 \n", - "86 253390 0.099000 0.816 0.726 0.000000 \n", - "85 217822 0.172000 0.635 0.902 0.000000 \n", - "64 180000 0.346000 0.638 0.717 0.000000 \n", - "60 210367 0.014300 0.818 0.540 0.000512 \n", - "70 204664 0.003810 0.800 0.578 0.000000 \n", - "101 201526 0.165000 0.792 0.895 0.000000 \n", - "65 179693 0.352000 0.746 0.703 0.000000 \n", - "67 223583 0.235000 0.701 0.512 0.000005 \n", - "131 269560 0.922000 0.422 0.264 0.000000 \n", - "212 218093 0.284000 0.778 0.824 0.000000 \n", - "114 217288 0.018500 0.704 0.859 0.000000 \n", - "126 218093 0.284000 0.778 0.824 0.000000 \n", - "128 239600 0.145000 0.733 0.710 0.115000 \n", - "414 391376 0.005740 0.579 0.508 0.000494 \n", - "71 215151 0.266000 0.817 0.740 0.000000 \n", - "427 208400 0.059100 0.573 0.913 0.001730 \n", - "353 391376 0.005740 0.579 0.508 0.000494 \n", - "180 262533 0.269000 0.640 0.743 0.000000 \n", - "13 269000 0.017900 0.618 0.938 0.000000 \n", - "185 228706 0.603000 0.609 0.445 0.000007 \n", - "155 262466 0.188000 0.638 0.656 0.000000 \n", - "261 140773 0.201000 0.640 0.663 0.008060 \n", - "9 203346 0.001720 0.542 0.905 0.010400 \n", - "6 199893 0.000504 0.581 0.887 0.001110 \n", - "\n", - " key liveness loudness speechiness tempo audio_valence \\\n", - "61 1 0.0618 -4.206 0.2290 95.948 0.591 \n", - "86 5 0.3720 -3.998 0.1290 136.048 0.650 \n", - "85 0 0.1250 -3.559 0.1090 102.063 0.286 \n", - "64 2 0.1050 -4.722 0.0337 100.027 0.249 \n", - "60 6 0.0990 -6.350 0.0544 97.064 0.174 \n", - "70 4 0.3590 -5.144 0.0485 143.010 0.367 \n", - "101 1 0.0501 -3.112 0.0589 94.968 0.794 \n", - "65 4 0.3310 -4.179 0.1070 166.043 0.667 \n", - "67 0 0.1350 -6.869 0.0969 91.947 0.663 \n", - "131 8 0.1320 -7.064 0.0322 119.930 0.331 \n", - "212 10 0.4050 -5.892 0.0712 100.024 0.756 \n", - "114 5 0.0215 -4.877 0.0996 105.115 0.926 \n", - "126 10 0.4050 -5.892 0.0712 100.024 0.756 \n", - "128 5 0.0956 -5.849 0.0292 127.975 0.965 \n", - "414 2 0.0575 -9.484 0.0270 147.125 0.609 \n", - "71 11 0.0992 -4.566 0.2830 130.040 0.674 \n", - "427 6 0.1560 -4.793 0.1320 115.715 0.422 \n", - "353 2 0.0575 -9.484 0.0270 147.125 0.609 \n", - "180 10 0.1010 -4.080 0.0379 122.035 0.361 \n", - "13 9 0.1670 -3.442 0.0456 91.455 0.875 \n", - "185 7 0.1040 -9.129 0.1060 118.393 0.166 \n", - "155 5 0.1460 -5.886 0.0357 104.036 0.225 \n", - "261 0 0.1520 -7.516 0.0374 132.770 0.663 \n", - "9 9 0.1360 -5.653 0.0540 153.398 0.374 \n", - "6 4 0.2680 -3.659 0.0624 90.578 0.724 \n", - "\n", - " danceable_valence \n", - "61 1.432 \n", - "86 1.466 \n", - "85 0.921 \n", - "64 0.887 \n", - "60 0.992 \n", - "70 1.167 \n", - "101 1.586 \n", - "65 1.413 \n", - "67 1.364 \n", - "131 0.753 \n", - "212 1.534 \n", - "114 1.630 \n", - "126 1.534 \n", - "128 1.698 \n", - "414 1.188 \n", - "71 1.491 \n", - "427 0.995 \n", - "353 1.188 \n", - "180 1.001 \n", - "13 1.493 \n", - "185 0.775 \n", - "155 0.863 \n", - "261 1.303 \n", - "9 0.916 \n", - "6 1.305 " - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "most_popular = songs_cleaned.sort_values(\"song_popularity\", ascending=False).head(25)\n", - "most_popular #these songs are the top popular songs in this dataset" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3dbff90c-9783-48d0-ac86-4b9f8bf49a8b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
song_namesong_popularitysong_duration_msacousticnessdanceabilityenergyinstrumentalnesskeylivenessloudnessspeechinesstempoaudio_valencedanceable_valence
61Taki Taki (with Selena Gomez, Ozuna & Cardi B)982125000.1530000.8410.7980.00000310.0618-4.2060.229095.9480.5911.432
86I Like It952533900.0990000.8160.7260.00000050.3720-3.9980.1290136.0480.6501.466
85BEBE952178220.1720000.6350.9020.00000000.1250-3.5590.1090102.0630.2860.921
64Beautiful (feat. Camila Cabello)941800000.3460000.6380.7170.00000020.1050-4.7220.0337100.0270.2490.887
60MIA (feat. Drake)942103670.0143000.8180.5400.00051260.0990-6.3500.054497.0640.1740.992
70Wake Up in the Sky922046640.0038100.8000.5780.00000040.3590-5.1440.0485143.0100.3671.167
1011, 2, 3 (feat. Jason Derulo & De La Ghetto)882015260.1650000.7920.8950.00000010.0501-3.1120.058994.9680.7941.586
65Celoso871796930.3520000.7460.7030.00000040.3310-4.1790.1070166.0430.6671.413
67Real Friends852235830.2350000.7010.5120.00000500.1350-6.8690.096991.9470.6631.364
131All of Me852695600.9220000.4220.2640.00000080.1320-7.0640.0322119.9300.3310.753
212Hips Don't Lie842180930.2840000.7780.8240.000000100.4050-5.8920.0712100.0240.7561.534
114Finesse (Remix) [feat. Cardi B]842172880.0185000.7040.8590.00000050.0215-4.8770.0996105.1150.9261.630
128Pumped Up Kicks842396000.1450000.7330.7100.11500050.0956-5.8490.0292127.9750.9651.698
414Hotel California - Remastered833913760.0057400.5790.5080.00049420.0575-9.4840.0270147.1250.6091.188
71Está Rico832151510.2660000.8170.7400.000000110.0992-4.5660.2830130.0400.6741.491
427Highway to Hell832084000.0591000.5730.9130.00173060.1560-4.7930.1320115.7150.4220.995
180How to Save a Life832625330.2690000.6400.7430.000000100.1010-4.0800.0379122.0350.3611.001
13Can't Stop812690000.0179000.6180.9380.00000090.1670-3.4420.045691.4550.8751.493
185If I Ain't Got You812287060.6030000.6090.4450.00000770.1040-9.1290.1060118.3930.1660.775
261Fortunate Son811407730.2010000.6400.6630.00806000.1520-7.5160.0374132.7700.6631.303
9Sex on Fire812033460.0017200.5420.9050.01040090.1360-5.6530.0540153.3980.3740.916
6Last Resort811998930.0005040.5810.8870.00111040.2680-3.6590.062490.5780.7241.305
\n", - "
" - ], - "text/plain": [ - " song_name song_popularity \\\n", - "61 Taki Taki (with Selena Gomez, Ozuna & Cardi B) 98 \n", - "86 I Like It 95 \n", - "85 BEBE 95 \n", - "64 Beautiful (feat. Camila Cabello) 94 \n", - "60 MIA (feat. Drake) 94 \n", - "70 Wake Up in the Sky 92 \n", - "101 1, 2, 3 (feat. Jason Derulo & De La Ghetto) 88 \n", - "65 Celoso 87 \n", - "67 Real Friends 85 \n", - "131 All of Me 85 \n", - "212 Hips Don't Lie 84 \n", - "114 Finesse (Remix) [feat. Cardi B] 84 \n", - "128 Pumped Up Kicks 84 \n", - "414 Hotel California - Remastered 83 \n", - "71 Está Rico 83 \n", - "427 Highway to Hell 83 \n", - "180 How to Save a Life 83 \n", - "13 Can't Stop 81 \n", - "185 If I Ain't Got You 81 \n", - "261 Fortunate Son 81 \n", - "9 Sex on Fire 81 \n", - "6 Last Resort 81 \n", - "\n", - " song_duration_ms acousticness danceability energy instrumentalness \\\n", - "61 212500 0.153000 0.841 0.798 0.000003 \n", - "86 253390 0.099000 0.816 0.726 0.000000 \n", - "85 217822 0.172000 0.635 0.902 0.000000 \n", - "64 180000 0.346000 0.638 0.717 0.000000 \n", - "60 210367 0.014300 0.818 0.540 0.000512 \n", - "70 204664 0.003810 0.800 0.578 0.000000 \n", - "101 201526 0.165000 0.792 0.895 0.000000 \n", - "65 179693 0.352000 0.746 0.703 0.000000 \n", - "67 223583 0.235000 0.701 0.512 0.000005 \n", - "131 269560 0.922000 0.422 0.264 0.000000 \n", - "212 218093 0.284000 0.778 0.824 0.000000 \n", - "114 217288 0.018500 0.704 0.859 0.000000 \n", - "128 239600 0.145000 0.733 0.710 0.115000 \n", - "414 391376 0.005740 0.579 0.508 0.000494 \n", - "71 215151 0.266000 0.817 0.740 0.000000 \n", - "427 208400 0.059100 0.573 0.913 0.001730 \n", - "180 262533 0.269000 0.640 0.743 0.000000 \n", - "13 269000 0.017900 0.618 0.938 0.000000 \n", - "185 228706 0.603000 0.609 0.445 0.000007 \n", - "261 140773 0.201000 0.640 0.663 0.008060 \n", - "9 203346 0.001720 0.542 0.905 0.010400 \n", - "6 199893 0.000504 0.581 0.887 0.001110 \n", - "\n", - " key liveness loudness speechiness tempo audio_valence \\\n", - "61 1 0.0618 -4.206 0.2290 95.948 0.591 \n", - "86 5 0.3720 -3.998 0.1290 136.048 0.650 \n", - "85 0 0.1250 -3.559 0.1090 102.063 0.286 \n", - "64 2 0.1050 -4.722 0.0337 100.027 0.249 \n", - "60 6 0.0990 -6.350 0.0544 97.064 0.174 \n", - "70 4 0.3590 -5.144 0.0485 143.010 0.367 \n", - "101 1 0.0501 -3.112 0.0589 94.968 0.794 \n", - "65 4 0.3310 -4.179 0.1070 166.043 0.667 \n", - "67 0 0.1350 -6.869 0.0969 91.947 0.663 \n", - "131 8 0.1320 -7.064 0.0322 119.930 0.331 \n", - "212 10 0.4050 -5.892 0.0712 100.024 0.756 \n", - "114 5 0.0215 -4.877 0.0996 105.115 0.926 \n", - "128 5 0.0956 -5.849 0.0292 127.975 0.965 \n", - "414 2 0.0575 -9.484 0.0270 147.125 0.609 \n", - "71 11 0.0992 -4.566 0.2830 130.040 0.674 \n", - "427 6 0.1560 -4.793 0.1320 115.715 0.422 \n", - "180 10 0.1010 -4.080 0.0379 122.035 0.361 \n", - "13 9 0.1670 -3.442 0.0456 91.455 0.875 \n", - "185 7 0.1040 -9.129 0.1060 118.393 0.166 \n", - "261 0 0.1520 -7.516 0.0374 132.770 0.663 \n", - "9 9 0.1360 -5.653 0.0540 153.398 0.374 \n", - "6 4 0.2680 -3.659 0.0624 90.578 0.724 \n", - "\n", - " danceable_valence \n", - "61 1.432 \n", - "86 1.466 \n", - "85 0.921 \n", - "64 0.887 \n", - "60 0.992 \n", - "70 1.167 \n", - "101 1.586 \n", - "65 1.413 \n", - "67 1.364 \n", - "131 0.753 \n", - "212 1.534 \n", - "114 1.630 \n", - "128 1.698 \n", - "414 1.188 \n", - "71 1.491 \n", - "427 0.995 \n", - "180 1.001 \n", - "13 1.493 \n", - "185 0.775 \n", - "261 1.303 \n", - "9 0.916 \n", - "6 1.305 " - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "new_most_popular = most_popular.drop(labels=[353,126,155], axis=0)\n", - "new_most_popular\n", - "#when individually finding the genre of each song I saw that my data had duplicate rows but with different numbers so I just removed the 2 duplicate rows so I will not get false data.Also, Iwill remove the song \"Bleeding love\" simply because there are many songs with that title and Icannot differentiate them." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9f414127-c26e-49dc-a4bf-38747e65c943", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
song_namesong_popularitysong_duration_msacousticnessdanceabilityenergyinstrumentalnesskeylivenessloudnessspeechinesstempoaudio_valencedanceable_valenceGenre
61Taki Taki (with Selena Gomez, Ozuna & Cardi B)982125000.1530000.8410.7980.00000310.0618-4.2060.229095.9480.5911.432Electronic
86I Like It952533900.0990000.8160.7260.00000050.3720-3.9980.1290136.0480.6501.466Latin Urbano
85BEBE952178220.1720000.6350.9020.00000000.1250-3.5590.1090102.0630.2860.921Latin Urbano
64Beautiful (feat. Camila Cabello)941800000.3460000.6380.7170.00000020.1050-4.7220.0337100.0270.2490.887Electronic
60MIA (feat. Drake)942103670.0143000.8180.5400.00051260.0990-6.3500.054497.0640.1740.992Latin Urbano
70Wake Up in the Sky922046640.0038100.8000.5780.00000040.3590-5.1440.0485143.0100.3671.167Hip-Hop/Rap
1011, 2, 3 (feat. Jason Derulo & De La Ghetto)882015260.1650000.7920.8950.00000010.0501-3.1120.058994.9680.7941.586Latin Urbano
65Celoso871796930.3520000.7460.7030.00000040.3310-4.1790.1070166.0430.6671.413Electronic
67Real Friends852235830.2350000.7010.5120.00000500.1350-6.8690.096991.9470.6631.364Pop
131All of Me852695600.9220000.4220.2640.00000080.1320-7.0640.0322119.9300.3310.753R&B/Soul
212Hips Don't Lie842180930.2840000.7780.8240.000000100.4050-5.8920.0712100.0240.7561.534Pop
114Finesse (Remix) [feat. Cardi B]842172880.0185000.7040.8590.00000050.0215-4.8770.0996105.1150.9261.630Funk
128Pumped Up Kicks842396000.1450000.7330.7100.11500050.0956-5.8490.0292127.9750.9651.698Electropop
414Hotel California - Remastered833913760.0057400.5790.5080.00049420.0575-9.4840.0270147.1250.6091.188Rock
71Está Rico832151510.2660000.8170.7400.000000110.0992-4.5660.2830130.0400.6741.491Latin Urbano
427Highway to Hell832084000.0591000.5730.9130.00173060.1560-4.7930.1320115.7150.4220.995Rock
180How to Save a Life832625330.2690000.6400.7430.000000100.1010-4.0800.0379122.0350.3611.001Rock
13Can't Stop812690000.0179000.6180.9380.00000090.1670-3.4420.045691.4550.8751.493Alternative/Indie
185If I Ain't Got You812287060.6030000.6090.4450.00000770.1040-9.1290.1060118.3930.1660.775R&B
261Fortunate Son811407730.2010000.6400.6630.00806000.1520-7.5160.0374132.7700.6631.303Rock
9Sex on Fire812033460.0017200.5420.9050.01040090.1360-5.6530.0540153.3980.3740.916Alternative/Indie
6Last Resort811998930.0005040.5810.8870.00111040.2680-3.6590.062490.5780.7241.305Rap metal
\n", - "
" - ], - "text/plain": [ - " song_name song_popularity \\\n", - "61 Taki Taki (with Selena Gomez, Ozuna & Cardi B) 98 \n", - "86 I Like It 95 \n", - "85 BEBE 95 \n", - "64 Beautiful (feat. Camila Cabello) 94 \n", - "60 MIA (feat. Drake) 94 \n", - "70 Wake Up in the Sky 92 \n", - "101 1, 2, 3 (feat. Jason Derulo & De La Ghetto) 88 \n", - "65 Celoso 87 \n", - "67 Real Friends 85 \n", - "131 All of Me 85 \n", - "212 Hips Don't Lie 84 \n", - "114 Finesse (Remix) [feat. Cardi B] 84 \n", - "128 Pumped Up Kicks 84 \n", - "414 Hotel California - Remastered 83 \n", - "71 Está Rico 83 \n", - "427 Highway to Hell 83 \n", - "180 How to Save a Life 83 \n", - "13 Can't Stop 81 \n", - "185 If I Ain't Got You 81 \n", - "261 Fortunate Son 81 \n", - "9 Sex on Fire 81 \n", - "6 Last Resort 81 \n", - "\n", - " song_duration_ms acousticness danceability energy instrumentalness \\\n", - "61 212500 0.153000 0.841 0.798 0.000003 \n", - "86 253390 0.099000 0.816 0.726 0.000000 \n", - "85 217822 0.172000 0.635 0.902 0.000000 \n", - "64 180000 0.346000 0.638 0.717 0.000000 \n", - "60 210367 0.014300 0.818 0.540 0.000512 \n", - "70 204664 0.003810 0.800 0.578 0.000000 \n", - "101 201526 0.165000 0.792 0.895 0.000000 \n", - "65 179693 0.352000 0.746 0.703 0.000000 \n", - "67 223583 0.235000 0.701 0.512 0.000005 \n", - "131 269560 0.922000 0.422 0.264 0.000000 \n", - "212 218093 0.284000 0.778 0.824 0.000000 \n", - "114 217288 0.018500 0.704 0.859 0.000000 \n", - "128 239600 0.145000 0.733 0.710 0.115000 \n", - "414 391376 0.005740 0.579 0.508 0.000494 \n", - "71 215151 0.266000 0.817 0.740 0.000000 \n", - "427 208400 0.059100 0.573 0.913 0.001730 \n", - "180 262533 0.269000 0.640 0.743 0.000000 \n", - "13 269000 0.017900 0.618 0.938 0.000000 \n", - "185 228706 0.603000 0.609 0.445 0.000007 \n", - "261 140773 0.201000 0.640 0.663 0.008060 \n", - "9 203346 0.001720 0.542 0.905 0.010400 \n", - "6 199893 0.000504 0.581 0.887 0.001110 \n", - "\n", - " key liveness loudness speechiness tempo audio_valence \\\n", - "61 1 0.0618 -4.206 0.2290 95.948 0.591 \n", - "86 5 0.3720 -3.998 0.1290 136.048 0.650 \n", - "85 0 0.1250 -3.559 0.1090 102.063 0.286 \n", - "64 2 0.1050 -4.722 0.0337 100.027 0.249 \n", - "60 6 0.0990 -6.350 0.0544 97.064 0.174 \n", - "70 4 0.3590 -5.144 0.0485 143.010 0.367 \n", - "101 1 0.0501 -3.112 0.0589 94.968 0.794 \n", - "65 4 0.3310 -4.179 0.1070 166.043 0.667 \n", - "67 0 0.1350 -6.869 0.0969 91.947 0.663 \n", - "131 8 0.1320 -7.064 0.0322 119.930 0.331 \n", - "212 10 0.4050 -5.892 0.0712 100.024 0.756 \n", - "114 5 0.0215 -4.877 0.0996 105.115 0.926 \n", - "128 5 0.0956 -5.849 0.0292 127.975 0.965 \n", - "414 2 0.0575 -9.484 0.0270 147.125 0.609 \n", - "71 11 0.0992 -4.566 0.2830 130.040 0.674 \n", - "427 6 0.1560 -4.793 0.1320 115.715 0.422 \n", - "180 10 0.1010 -4.080 0.0379 122.035 0.361 \n", - "13 9 0.1670 -3.442 0.0456 91.455 0.875 \n", - "185 7 0.1040 -9.129 0.1060 118.393 0.166 \n", - "261 0 0.1520 -7.516 0.0374 132.770 0.663 \n", - "9 9 0.1360 -5.653 0.0540 153.398 0.374 \n", - "6 4 0.2680 -3.659 0.0624 90.578 0.724 \n", - "\n", - " danceable_valence Genre \n", - "61 1.432 Electronic \n", - "86 1.466 Latin Urbano \n", - "85 0.921 Latin Urbano \n", - "64 0.887 Electronic \n", - "60 0.992 Latin Urbano \n", - "70 1.167 Hip-Hop/Rap \n", - "101 1.586 Latin Urbano \n", - "65 1.413 Electronic \n", - "67 1.364 Pop \n", - "131 0.753 R&B/Soul \n", - "212 1.534 Pop \n", - "114 1.630 Funk \n", - "128 1.698 Electropop \n", - "414 1.188 Rock \n", - "71 1.491 Latin Urbano \n", - "427 0.995 Rock \n", - "180 1.001 Rock \n", - "13 1.493 Alternative/Indie \n", - "185 0.775 R&B \n", - "261 1.303 Rock \n", - "9 0.916 Alternative/Indie \n", - "6 1.305 Rap metal " - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# After all my sorting, I now have the genres of the top 22 songs in my dataset and I will addthem into my data under a new column titled \"genre\".\n", - "Genre = ['Electronic' , 'Latin Urbano' , 'Latin Urbano' , 'Electronic' , 'Latin Urbano' , 'Hip-Hop/Rap'\n", - ", 'Latin Urbano' , 'Electronic' , 'Pop' , 'R&B/Soul' , 'Pop' , 'Funk' , 'Electropop' , 'Rock' , 'Latin Urbano' , 'Rock' , 'Rock' , 'Alternative/Indie' , 'R&B' , 'Rock' , 'Alternative/Indie' , 'Rap metal']\n", - "new_most_popular['Genre'] = Genre\n", - "new_most_popular" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "29049a69-9500-4a5f-afff-122f7adcec68", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
song_nameGenresong_popularitysong_duration_msacousticnessdanceabilityenergykeylivenessloudnessspechinesstempoaudio_valencedanceable_valence
61Taki Taki (with Selena Gomez, Ozuna & Cardi B)Electronic982125000.1530000.8410.79810.0618-4.206NaNNaN1.432
86I Like ItLatin Urbano952533900.0990000.8160.72650.3720-3.998NaNNaN1.466
85BEBELatin Urbano952178220.1720000.6350.90200.1250-3.559NaNNaN0.921
64Beautiful (feat. Camila Cabello)Electronic941800000.3460000.6380.71720.1050-4.722NaNNaN0.887
60MIA (feat. Drake)Latin Urbano942103670.0143000.8180.54060.0990-6.350NaNNaN0.992
70Wake Up in the SkyHip-Hop/Rap922046640.0038100.8000.57840.3590-5.144NaNNaN1.167
1011, 2, 3 (feat. Jason Derulo & De La Ghetto)Latin Urbano882015260.1650000.7920.89510.0501-3.112NaNNaN1.586
65CelosoElectronic871796930.3520000.7460.70340.3310-4.179NaNNaN1.413
67Real FriendsPop852235830.2350000.7010.51200.1350-6.869NaNNaN1.364
131All of MeR&B/Soul852695600.9220000.4220.26480.1320-7.064NaNNaN0.753
212Hips Don't LiePop842180930.2840000.7780.824100.4050-5.892NaNNaN1.534
114Finesse (Remix) [feat. Cardi B]Funk842172880.0185000.7040.85950.0215-4.877NaNNaN1.630
128Pumped Up KicksElectropop842396000.1450000.7330.71050.0956-5.849NaNNaN1.698
414Hotel California - RemasteredRock833913760.0057400.5790.50820.0575-9.484NaNNaN1.188
71Está RicoLatin Urbano832151510.2660000.8170.740110.0992-4.566NaNNaN1.491
427Highway to HellRock832084000.0591000.5730.91360.1560-4.793NaNNaN0.995
180How to Save a LifeRock832625330.2690000.6400.743100.1010-4.080NaNNaN1.001
13Can't StopAlternative/Indie812690000.0179000.6180.93890.1670-3.442NaNNaN1.493
185If I Ain't Got YouR&B812287060.6030000.6090.44570.1040-9.129NaNNaN0.775
261Fortunate SonRock811407730.2010000.6400.66300.1520-7.516NaNNaN1.303
9Sex on FireAlternative/Indie812033460.0017200.5420.90590.1360-5.653NaNNaN0.916
6Last ResortRap metal811998930.0005040.5810.88740.2680-3.659NaNNaN1.305
\n", - "
" - ], - "text/plain": [ - " song_name Genre \\\n", - "61 Taki Taki (with Selena Gomez, Ozuna & Cardi B) Electronic \n", - "86 I Like It Latin Urbano \n", - "85 BEBE Latin Urbano \n", - "64 Beautiful (feat. Camila Cabello) Electronic \n", - "60 MIA (feat. Drake) Latin Urbano \n", - "70 Wake Up in the Sky Hip-Hop/Rap \n", - "101 1, 2, 3 (feat. Jason Derulo & De La Ghetto) Latin Urbano \n", - "65 Celoso Electronic \n", - "67 Real Friends Pop \n", - "131 All of Me R&B/Soul \n", - "212 Hips Don't Lie Pop \n", - "114 Finesse (Remix) [feat. Cardi B] Funk \n", - "128 Pumped Up Kicks Electropop \n", - "414 Hotel California - Remastered Rock \n", - "71 Está Rico Latin Urbano \n", - "427 Highway to Hell Rock \n", - "180 How to Save a Life Rock \n", - "13 Can't Stop Alternative/Indie \n", - "185 If I Ain't Got You R&B \n", - "261 Fortunate Son Rock \n", - "9 Sex on Fire Alternative/Indie \n", - "6 Last Resort Rap metal \n", - "\n", - " song_popularity song_duration_ms acousticness danceability energy \\\n", - "61 98 212500 0.153000 0.841 0.798 \n", - "86 95 253390 0.099000 0.816 0.726 \n", - "85 95 217822 0.172000 0.635 0.902 \n", - "64 94 180000 0.346000 0.638 0.717 \n", - "60 94 210367 0.014300 0.818 0.540 \n", - "70 92 204664 0.003810 0.800 0.578 \n", - "101 88 201526 0.165000 0.792 0.895 \n", - "65 87 179693 0.352000 0.746 0.703 \n", - "67 85 223583 0.235000 0.701 0.512 \n", - "131 85 269560 0.922000 0.422 0.264 \n", - "212 84 218093 0.284000 0.778 0.824 \n", - "114 84 217288 0.018500 0.704 0.859 \n", - "128 84 239600 0.145000 0.733 0.710 \n", - "414 83 391376 0.005740 0.579 0.508 \n", - "71 83 215151 0.266000 0.817 0.740 \n", - "427 83 208400 0.059100 0.573 0.913 \n", - "180 83 262533 0.269000 0.640 0.743 \n", - "13 81 269000 0.017900 0.618 0.938 \n", - "185 81 228706 0.603000 0.609 0.445 \n", - "261 81 140773 0.201000 0.640 0.663 \n", - "9 81 203346 0.001720 0.542 0.905 \n", - "6 81 199893 0.000504 0.581 0.887 \n", - "\n", - " key liveness loudness spechiness tempoaudio_valence \\\n", - "61 1 0.0618 -4.206 NaN NaN \n", - "86 5 0.3720 -3.998 NaN NaN \n", - "85 0 0.1250 -3.559 NaN NaN \n", - "64 2 0.1050 -4.722 NaN NaN \n", - "60 6 0.0990 -6.350 NaN NaN \n", - "70 4 0.3590 -5.144 NaN NaN \n", - "101 1 0.0501 -3.112 NaN NaN \n", - "65 4 0.3310 -4.179 NaN NaN \n", - "67 0 0.1350 -6.869 NaN NaN \n", - "131 8 0.1320 -7.064 NaN NaN \n", - "212 10 0.4050 -5.892 NaN NaN \n", - "114 5 0.0215 -4.877 NaN NaN \n", - "128 5 0.0956 -5.849 NaN NaN \n", - "414 2 0.0575 -9.484 NaN NaN \n", - "71 11 0.0992 -4.566 NaN NaN \n", - "427 6 0.1560 -4.793 NaN NaN \n", - "180 10 0.1010 -4.080 NaN NaN \n", - "13 9 0.1670 -3.442 NaN NaN \n", - "185 7 0.1040 -9.129 NaN NaN \n", - "261 0 0.1520 -7.516 NaN NaN \n", - "9 9 0.1360 -5.653 NaN NaN \n", - "6 4 0.2680 -3.659 NaN NaN \n", - "\n", - " danceable_valence \n", - "61 1.432 \n", - "86 1.466 \n", - "85 0.921 \n", - "64 0.887 \n", - "60 0.992 \n", - "70 1.167 \n", - "101 1.586 \n", - "65 1.413 \n", - "67 1.364 \n", - "131 0.753 \n", - "212 1.534 \n", - "114 1.630 \n", - "128 1.698 \n", - "414 1.188 \n", - "71 1.491 \n", - "427 0.995 \n", - "180 1.001 \n", - "13 1.493 \n", - "185 0.775 \n", - "261 1.303 \n", - "9 0.916 \n", - "6 1.305 " - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "new_most_popular_2 = new_most_popular.reindex(columns=['song_name', 'Genre',\n", - "'song_popularity', 'song_duration_ms', 'acousticness','danceability', 'energy', 'key', 'liveness',\n", - "'loudness' , 'spechiness' , 'tempo' 'audio_valence' , 'danceable_valence'])\n", - "new_most_popular_2" - ] - }, - { - "cell_type": "markdown", - "id": "cc5ceb32-4a87-4e56-b6da-b3fca2ff97a0", - "metadata": {}, - "source": [ - "\n", - "# Method Chain building" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cec90490-24e2-4480-b4a6-aac3eb5f47c0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
song_namesong_popularitysong_duration_msacousticnessdanceabilityenergyinstrumentalnesskeylivenessloudnessspeechinesstempoaudio_valencedanceable_valenceGenre
61Taki Taki (with Selena Gomez, Ozuna & Cardi B)982125000.1530000.8410.7980.00000310.0618-4.2060.229095.9480.5911.432Electronic
86I Like It952533900.0990000.8160.7260.00000050.3720-3.9980.1290136.0480.6501.466Latin Urbano
85BEBE952178220.1720000.6350.9020.00000000.1250-3.5590.1090102.0630.2860.921Latin Urbano
64Beautiful (feat. Camila Cabello)941800000.3460000.6380.7170.00000020.1050-4.7220.0337100.0270.2490.887Electronic
60MIA (feat. Drake)942103670.0143000.8180.5400.00051260.0990-6.3500.054497.0640.1740.992Latin Urbano
70Wake Up in the Sky922046640.0038100.8000.5780.00000040.3590-5.1440.0485143.0100.3671.167Hip-Hop/Rap
1011, 2, 3 (feat. Jason Derulo & De La Ghetto)882015260.1650000.7920.8950.00000010.0501-3.1120.058994.9680.7941.586Latin Urbano
65Celoso871796930.3520000.7460.7030.00000040.3310-4.1790.1070166.0430.6671.413Electronic
67Real Friends852235830.2350000.7010.5120.00000500.1350-6.8690.096991.9470.6631.364Pop
131All of Me852695600.9220000.4220.2640.00000080.1320-7.0640.0322119.9300.3310.753R&B/Soul
212Hips Don't Lie842180930.2840000.7780.8240.000000100.4050-5.8920.0712100.0240.7561.534Pop
114Finesse (Remix) [feat. Cardi B]842172880.0185000.7040.8590.00000050.0215-4.8770.0996105.1150.9261.630Funk
128Pumped Up Kicks842396000.1450000.7330.7100.11500050.0956-5.8490.0292127.9750.9651.698Electropop
414Hotel California - Remastered833913760.0057400.5790.5080.00049420.0575-9.4840.0270147.1250.6091.188Rock
71Está Rico832151510.2660000.8170.7400.000000110.0992-4.5660.2830130.0400.6741.491Latin Urbano
427Highway to Hell832084000.0591000.5730.9130.00173060.1560-4.7930.1320115.7150.4220.995Rock
180How to Save a Life832625330.2690000.6400.7430.000000100.1010-4.0800.0379122.0350.3611.001Rock
13Can't Stop812690000.0179000.6180.9380.00000090.1670-3.4420.045691.4550.8751.493Alternative/Indie
185If I Ain't Got You812287060.6030000.6090.4450.00000770.1040-9.1290.1060118.3930.1660.775R&B
261Fortunate Son811407730.2010000.6400.6630.00806000.1520-7.5160.0374132.7700.6631.303Rock
9Sex on Fire812033460.0017200.5420.9050.01040090.1360-5.6530.0540153.3980.3740.916Alternative/Indie
6Last Resort811998930.0005040.5810.8870.00111040.2680-3.6590.062490.5780.7241.305Rap metal
\n", - "
" - ], - "text/plain": [ - " song_name song_popularity \\\n", - "61 Taki Taki (with Selena Gomez, Ozuna & Cardi B) 98 \n", - "86 I Like It 95 \n", - "85 BEBE 95 \n", - "64 Beautiful (feat. Camila Cabello) 94 \n", - "60 MIA (feat. Drake) 94 \n", - "70 Wake Up in the Sky 92 \n", - "101 1, 2, 3 (feat. Jason Derulo & De La Ghetto) 88 \n", - "65 Celoso 87 \n", - "67 Real Friends 85 \n", - "131 All of Me 85 \n", - "212 Hips Don't Lie 84 \n", - "114 Finesse (Remix) [feat. Cardi B] 84 \n", - "128 Pumped Up Kicks 84 \n", - "414 Hotel California - Remastered 83 \n", - "71 Está Rico 83 \n", - "427 Highway to Hell 83 \n", - "180 How to Save a Life 83 \n", - "13 Can't Stop 81 \n", - "185 If I Ain't Got You 81 \n", - "261 Fortunate Son 81 \n", - "9 Sex on Fire 81 \n", - "6 Last Resort 81 \n", - "\n", - " song_duration_ms acousticness danceability energy instrumentalness \\\n", - "61 212500 0.153000 0.841 0.798 0.000003 \n", - "86 253390 0.099000 0.816 0.726 0.000000 \n", - "85 217822 0.172000 0.635 0.902 0.000000 \n", - "64 180000 0.346000 0.638 0.717 0.000000 \n", - "60 210367 0.014300 0.818 0.540 0.000512 \n", - "70 204664 0.003810 0.800 0.578 0.000000 \n", - "101 201526 0.165000 0.792 0.895 0.000000 \n", - "65 179693 0.352000 0.746 0.703 0.000000 \n", - "67 223583 0.235000 0.701 0.512 0.000005 \n", - "131 269560 0.922000 0.422 0.264 0.000000 \n", - "212 218093 0.284000 0.778 0.824 0.000000 \n", - "114 217288 0.018500 0.704 0.859 0.000000 \n", - "128 239600 0.145000 0.733 0.710 0.115000 \n", - "414 391376 0.005740 0.579 0.508 0.000494 \n", - "71 215151 0.266000 0.817 0.740 0.000000 \n", - "427 208400 0.059100 0.573 0.913 0.001730 \n", - "180 262533 0.269000 0.640 0.743 0.000000 \n", - "13 269000 0.017900 0.618 0.938 0.000000 \n", - "185 228706 0.603000 0.609 0.445 0.000007 \n", - "261 140773 0.201000 0.640 0.663 0.008060 \n", - "9 203346 0.001720 0.542 0.905 0.010400 \n", - "6 199893 0.000504 0.581 0.887 0.001110 \n", - "\n", - " key liveness loudness speechiness tempo audio_valence \\\n", - "61 1 0.0618 -4.206 0.2290 95.948 0.591 \n", - "86 5 0.3720 -3.998 0.1290 136.048 0.650 \n", - "85 0 0.1250 -3.559 0.1090 102.063 0.286 \n", - "64 2 0.1050 -4.722 0.0337 100.027 0.249 \n", - "60 6 0.0990 -6.350 0.0544 97.064 0.174 \n", - "70 4 0.3590 -5.144 0.0485 143.010 0.367 \n", - "101 1 0.0501 -3.112 0.0589 94.968 0.794 \n", - "65 4 0.3310 -4.179 0.1070 166.043 0.667 \n", - "67 0 0.1350 -6.869 0.0969 91.947 0.663 \n", - "131 8 0.1320 -7.064 0.0322 119.930 0.331 \n", - "212 10 0.4050 -5.892 0.0712 100.024 0.756 \n", - "114 5 0.0215 -4.877 0.0996 105.115 0.926 \n", - "128 5 0.0956 -5.849 0.0292 127.975 0.965 \n", - "414 2 0.0575 -9.484 0.0270 147.125 0.609 \n", - "71 11 0.0992 -4.566 0.2830 130.040 0.674 \n", - "427 6 0.1560 -4.793 0.1320 115.715 0.422 \n", - "180 10 0.1010 -4.080 0.0379 122.035 0.361 \n", - "13 9 0.1670 -3.442 0.0456 91.455 0.875 \n", - "185 7 0.1040 -9.129 0.1060 118.393 0.166 \n", - "261 0 0.1520 -7.516 0.0374 132.770 0.663 \n", - "9 9 0.1360 -5.653 0.0540 153.398 0.374 \n", - "6 4 0.2680 -3.659 0.0624 90.578 0.724 \n", - "\n", - " danceable_valence Genre \n", - "61 1.432 Electronic \n", - "86 1.466 Latin Urbano \n", - "85 0.921 Latin Urbano \n", - "64 0.887 Electronic \n", - "60 0.992 Latin Urbano \n", - "70 1.167 Hip-Hop/Rap \n", - "101 1.586 Latin Urbano \n", - "65 1.413 Electronic \n", - "67 1.364 Pop \n", - "131 0.753 R&B/Soul \n", - "212 1.534 Pop \n", - "114 1.630 Funk \n", - "128 1.698 Electropop \n", - "414 1.188 Rock \n", - "71 1.491 Latin Urbano \n", - "427 0.995 Rock \n", - "180 1.001 Rock \n", - "13 1.493 Alternative/Indie \n", - "185 0.775 R&B \n", - "261 1.303 Rock \n", - "9 0.916 Alternative/Indie \n", - "6 1.305 Rap metal " - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#This code builds the method chain of the above codes\n", - "Genre = ['Electronic', 'Latin Urbano', 'Latin Urbano', 'Electronic', 'Latin Urbano', 'Hip-Hop/Rap',\n", - "'Latin Urbano', 'Electronic', 'Pop', 'R&B/Soul', 'Pop', 'Funk', 'Electropop', 'Rock', 'Latin Urbano',\n", - "'Rock', 'Rock', 'Alternative/Indie', 'R&B', 'Rock', 'Alternative/Indie', 'Rap metal']\n", - "new_most_popular = (songs_cleaned\n", - "\n", - ".sort_values(\"song_popularity\", ascending=False)\n", - ".head(25)\n", - ".drop(labels=[353, 126, 155], axis=0)\n", - ".assign(Genre=Genre))\n", - "\n", - "new_most_popular" - ] - }, - { - "cell_type": "markdown", - "id": "94a2fa49-0686-4392-93a6-24011690ebe1", - "metadata": {}, - "source": [ - "# Wrapping method chain in function" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "94c37304-43f1-4cdb-bd86-d87da197b114", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
song_namesong_popularitysong_duration_msacousticnessdanceabilityenergyinstrumentalnesskeylivenessloudnessspeechinesstempoaudio_valencedanceable_valenceGenre
61Taki Taki (with Selena Gomez, Ozuna & Cardi B)982125000.1530000.8410.7980.00000310.0618-4.2060.229095.9480.5911.432Electronic
86I Like It952533900.0990000.8160.7260.00000050.3720-3.9980.1290136.0480.6501.466Latin Urbano
85BEBE952178220.1720000.6350.9020.00000000.1250-3.5590.1090102.0630.2860.921Latin Urbano
64Beautiful (feat. Camila Cabello)941800000.3460000.6380.7170.00000020.1050-4.7220.0337100.0270.2490.887Electronic
60MIA (feat. Drake)942103670.0143000.8180.5400.00051260.0990-6.3500.054497.0640.1740.992Latin Urbano
70Wake Up in the Sky922046640.0038100.8000.5780.00000040.3590-5.1440.0485143.0100.3671.167Hip-Hop/Rap
1011, 2, 3 (feat. Jason Derulo & De La Ghetto)882015260.1650000.7920.8950.00000010.0501-3.1120.058994.9680.7941.586Latin Urbano
65Celoso871796930.3520000.7460.7030.00000040.3310-4.1790.1070166.0430.6671.413Electronic
67Real Friends852235830.2350000.7010.5120.00000500.1350-6.8690.096991.9470.6631.364Pop
131All of Me852695600.9220000.4220.2640.00000080.1320-7.0640.0322119.9300.3310.753R&B/Soul
212Hips Don't Lie842180930.2840000.7780.8240.000000100.4050-5.8920.0712100.0240.7561.534Pop
114Finesse (Remix) [feat. Cardi B]842172880.0185000.7040.8590.00000050.0215-4.8770.0996105.1150.9261.630Funk
128Pumped Up Kicks842396000.1450000.7330.7100.11500050.0956-5.8490.0292127.9750.9651.698Electropop
414Hotel California - Remastered833913760.0057400.5790.5080.00049420.0575-9.4840.0270147.1250.6091.188Rock
71Está Rico832151510.2660000.8170.7400.000000110.0992-4.5660.2830130.0400.6741.491Latin Urbano
427Highway to Hell832084000.0591000.5730.9130.00173060.1560-4.7930.1320115.7150.4220.995Rock
180How to Save a Life832625330.2690000.6400.7430.000000100.1010-4.0800.0379122.0350.3611.001Rock
13Can't Stop812690000.0179000.6180.9380.00000090.1670-3.4420.045691.4550.8751.493Alternative/Indie
185If I Ain't Got You812287060.6030000.6090.4450.00000770.1040-9.1290.1060118.3930.1660.775R&B
261Fortunate Son811407730.2010000.6400.6630.00806000.1520-7.5160.0374132.7700.6631.303Rock
9Sex on Fire812033460.0017200.5420.9050.01040090.1360-5.6530.0540153.3980.3740.916Alternative/Indie
6Last Resort811998930.0005040.5810.8870.00111040.2680-3.6590.062490.5780.7241.305Rap metal
\n", - "
" - ], - "text/plain": [ - " song_name song_popularity \\\n", - "61 Taki Taki (with Selena Gomez, Ozuna & Cardi B) 98 \n", - "86 I Like It 95 \n", - "85 BEBE 95 \n", - "64 Beautiful (feat. Camila Cabello) 94 \n", - "60 MIA (feat. Drake) 94 \n", - "70 Wake Up in the Sky 92 \n", - "101 1, 2, 3 (feat. Jason Derulo & De La Ghetto) 88 \n", - "65 Celoso 87 \n", - "67 Real Friends 85 \n", - "131 All of Me 85 \n", - "212 Hips Don't Lie 84 \n", - "114 Finesse (Remix) [feat. Cardi B] 84 \n", - "128 Pumped Up Kicks 84 \n", - "414 Hotel California - Remastered 83 \n", - "71 Está Rico 83 \n", - "427 Highway to Hell 83 \n", - "180 How to Save a Life 83 \n", - "13 Can't Stop 81 \n", - "185 If I Ain't Got You 81 \n", - "261 Fortunate Son 81 \n", - "9 Sex on Fire 81 \n", - "6 Last Resort 81 \n", - "\n", - " song_duration_ms acousticness danceability energy instrumentalness \\\n", - "61 212500 0.153000 0.841 0.798 0.000003 \n", - "86 253390 0.099000 0.816 0.726 0.000000 \n", - "85 217822 0.172000 0.635 0.902 0.000000 \n", - "64 180000 0.346000 0.638 0.717 0.000000 \n", - "60 210367 0.014300 0.818 0.540 0.000512 \n", - "70 204664 0.003810 0.800 0.578 0.000000 \n", - "101 201526 0.165000 0.792 0.895 0.000000 \n", - "65 179693 0.352000 0.746 0.703 0.000000 \n", - "67 223583 0.235000 0.701 0.512 0.000005 \n", - "131 269560 0.922000 0.422 0.264 0.000000 \n", - "212 218093 0.284000 0.778 0.824 0.000000 \n", - "114 217288 0.018500 0.704 0.859 0.000000 \n", - "128 239600 0.145000 0.733 0.710 0.115000 \n", - "414 391376 0.005740 0.579 0.508 0.000494 \n", - "71 215151 0.266000 0.817 0.740 0.000000 \n", - "427 208400 0.059100 0.573 0.913 0.001730 \n", - "180 262533 0.269000 0.640 0.743 0.000000 \n", - "13 269000 0.017900 0.618 0.938 0.000000 \n", - "185 228706 0.603000 0.609 0.445 0.000007 \n", - "261 140773 0.201000 0.640 0.663 0.008060 \n", - "9 203346 0.001720 0.542 0.905 0.010400 \n", - "6 199893 0.000504 0.581 0.887 0.001110 \n", - "\n", - " key liveness loudness speechiness tempo audio_valence \\\n", - "61 1 0.0618 -4.206 0.2290 95.948 0.591 \n", - "86 5 0.3720 -3.998 0.1290 136.048 0.650 \n", - "85 0 0.1250 -3.559 0.1090 102.063 0.286 \n", - "64 2 0.1050 -4.722 0.0337 100.027 0.249 \n", - "60 6 0.0990 -6.350 0.0544 97.064 0.174 \n", - "70 4 0.3590 -5.144 0.0485 143.010 0.367 \n", - "101 1 0.0501 -3.112 0.0589 94.968 0.794 \n", - "65 4 0.3310 -4.179 0.1070 166.043 0.667 \n", - "67 0 0.1350 -6.869 0.0969 91.947 0.663 \n", - "131 8 0.1320 -7.064 0.0322 119.930 0.331 \n", - "212 10 0.4050 -5.892 0.0712 100.024 0.756 \n", - "114 5 0.0215 -4.877 0.0996 105.115 0.926 \n", - "128 5 0.0956 -5.849 0.0292 127.975 0.965 \n", - "414 2 0.0575 -9.484 0.0270 147.125 0.609 \n", - "71 11 0.0992 -4.566 0.2830 130.040 0.674 \n", - "427 6 0.1560 -4.793 0.1320 115.715 0.422 \n", - "180 10 0.1010 -4.080 0.0379 122.035 0.361 \n", - "13 9 0.1670 -3.442 0.0456 91.455 0.875 \n", - "185 7 0.1040 -9.129 0.1060 118.393 0.166 \n", - "261 0 0.1520 -7.516 0.0374 132.770 0.663 \n", - "9 9 0.1360 -5.653 0.0540 153.398 0.374 \n", - "6 4 0.2680 -3.659 0.0624 90.578 0.724 \n", - "\n", - " danceable_valence Genre \n", - "61 1.432 Electronic \n", - "86 1.466 Latin Urbano \n", - "85 0.921 Latin Urbano \n", - "64 0.887 Electronic \n", - "60 0.992 Latin Urbano \n", - "70 1.167 Hip-Hop/Rap \n", - "101 1.586 Latin Urbano \n", - "65 1.413 Electronic \n", - "67 1.364 Pop \n", - "131 0.753 R&B/Soul \n", - "212 1.534 Pop \n", - "114 1.630 Funk \n", - "128 1.698 Electropop \n", - "414 1.188 Rock \n", - "71 1.491 Latin Urbano \n", - "427 0.995 Rock \n", - "180 1.001 Rock \n", - "13 1.493 Alternative/Indie \n", - "185 0.775 R&B \n", - "261 1.303 Rock \n", - "9 0.916 Alternative/Indie \n", - "6 1.305 Rap metal " - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#This code wraps my method chain into a function\n", - "def get_new_most_popular(songs_cleaned, Genre):\n", - " return (songs_cleaned\n", - ".sort_values(\"song_popularity\", ascending=False)\n", - ".head(25)\n", - ".drop(labels=[353, 126, 155], axis=0)\n", - ".assign(Genre=Genre))\n", - "\n", - "new_most_popular = get_new_most_popular(songs_cleaned, Genre)\n", - "new_most_popular" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "dcf19224-b374-4021-89e3-ded4251dafdc", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Genrefrequency
0Electronic3
1Latin Urbano5
2Rock4
3Hip-Hop/Rap2
4Alternative/Indie2
5R&B2
6Pop2
7Electropop1
8Rap metal1
9Funk1
\n", - "
" - ], - "text/plain": [ - " Genre frequency\n", - "0 Electronic 3\n", - "1 Latin Urbano 5\n", - "2 Rock 4\n", - "3 Hip-Hop/Rap 2\n", - "4 Alternative/Indie 2\n", - "5 R&B 2\n", - "6 Pop 2\n", - "7 Electropop 1\n", - "8 Rap metal 1\n", - "9 Funk 1" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import matplotlib.pylab as plt\n", - "import seaborn as sns\n", - "# Now that I have all genres in place, I will need to make a separate table to get the frequencyof each of the top 23 popular songs and plot that in a graph to visualize the genres that belongto the most popular songs in this dataset. I also combined R&B with R&B/ soul.\n", - "\n", - "data = {'Electronic': 3, 'Latin Urbano': 5, 'Rock': 4, 'Hip-Hop/Rap': 2, 'Alternative/Indie': 2, 'R&B':\n", - "2, 'Pop': 2, 'Electropop': 1, 'Rap metal': 1, 'Funk': 1}\n", - "df = pd.DataFrame.from_dict(data, orient='index', columns=['frequency'])\n", - "df.reset_index(inplace=True)\n", - "df.rename(columns={'index': 'Genre'}, inplace=True)\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2b065427-16a3-4adf-8d42-8101dca884dc", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAISCAYAAADiGeRzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB3K0lEQVR4nO3dd1gUV9sG8GfpVRGxgAWwoWIHGzZEEQHB3ns39thb7LHEEmPsXWPsPRi72DV2jYmKvYJdsVH3/v7g23lZQaOI7oD377q4lNnZ3WfY2Zl7zjkzowEAISIiIlIhI0MXQERERPQ+DCpERESkWgwqREREpFoMKkRERKRaDCpERESkWgwqREREpFoMKkRERKRaDCpERESkWgwqREREpFoMKkQfcP78eWnfvr3kzZtXLC0txdLSUvLnzy+dO3eWkydPGrq8FPP29haNRpPsz4ULFwxdXrqj1Wpl+fLl4ufnJ1mzZhVTU1Oxs7OTcuXKyeTJk+Xx48cGq23fvn2i0Whk3bp1BquB6ENMDF0AkVrNnTtXunfvLm5ubtKrVy9xd3cXjUYjFy9elJUrV0rp0qXl6tWrkjdvXkOXmiJ58uSR33//Pcn0tLo8avX27VupXbu27N69Wxo3bizTp08XJycniYyMlCNHjsikSZNk8+bNcvDgQUOXSqRKDCpEyTh8+LB07dpVAgMDZd26dWJmZqY85uPjI926dZO1a9eKpaXlV6/t7du3qfK+lpaWUq5cuY+e/82bN2JlZfXZ7/ut6d27t+zatUtWrFghTZs21XusVq1aMmzYsGQDY2IAJCoqyiDrG5GhseuHKBnjxo0TY2NjmTt3rl5ISaxhw4bi5OSkN+3kyZMSHBws9vb2YmFhISVLlpQ1a9bozbNkyRLRaDQSGhoq3333nTg4OEjmzJmlXr16cv/+fb15XVxcpFatWrJhwwYpWbKkWFhYyKhRo0REJCIiQjp37iw5c+YUMzMzcXV1lVGjRklcXNxnL3+bNm3ExsZG/v77b6lRo4bY2tpKtWrVREQkJiZGxo4dKwULFhRzc3PJkiWLtG3bVh49eqT3GrGxsTJgwADJnj27WFlZScWKFeX48ePi4uIibdq0UeYbOXKkaDSaJDXo/k43b97Um7569WopX768WFtbi42Njfj5+cmZM2eSrf/q1asSEBAgNjY2kitXLunbt69ER0frzRsdHS2jR4+WQoUKiYWFhWTOnFmqVq0qR44cERGRatWqScGCBeXd+7cCkHz58klgYOB7/47h4eGyaNEiCQwMTBJSdKysrKRjx4560zQajXTv3l3mzJkjhQoVEnNzc1m6dKmIiIwaNUrKli0r9vb2kiFDBilVqpQsXLgwSX26dWfjxo1SrFgxsbCwkDx58sj06dOTrSM2NlaGDh0qTk5OkiFDBqlevbpcvnz5vctG9LWwRYXoHfHx8RIaGiqenp7i6Oj40c8LDQ2VmjVrStmyZWXOnDmSMWNGWbVqlTRu3FjevHmjt3MWEenQoYMEBgbKihUr5M6dO9K/f39p0aKF7N27V2++06dPy8WLF2XYsGHi6uoq1tbWEhERIWXKlBEjIyMZPny45M2bV44ePSpjx46VmzdvyuLFiz+q5ndDjZGRkRgZJRy/xMTESHBwsHTu3FkGDRokcXFxotVqpXbt2nLw4EEZMGCAeHl5ya1bt2TEiBHi7e0tJ0+eVI76O3bsKMuWLZN+/fqJr6+vXLhwQerVqycvX7786L/pu8aNGyfDhg2Ttm3byrBhwyQmJkYmTZoklSpVkuPHj0vhwoWVeWNjYyU4OFjat28vffv2lQMHDsiYMWMkY8aMMnz4cGX5/f395eDBg9K7d2/x8fGRuLg4OXbsmNy+fVu8vLykV69eUrt2bdmzZ49Ur15def1t27bJtWvX3rvjF0lYJ+Li4iQ4OPiTl3XTpk1y8OBBGT58uGTPnl2yZs0qIiI3b96Uzp07S+7cuUVE5NixY9KjRw+5d++eslw6Z8+eld69e8vIkSMle/bs8vvvv0uvXr0kJiZG+vXrpzfvkCFDpEKFCrJgwQKJjIyUgQMHSlBQkFy8eFGMjY0/uX6iVAMi0hMREQERQZMmTZI8FhcXh9jYWOVHq9UqjxUsWBAlS5ZEbGys3nNq1aoFR0dHxMfHAwAWL14MEUHXrl315vvpp58gIggPD1emOTs7w9jYGJcvX9abt3PnzrCxscGtW7f0pk+ePBkign/++eeDy1ilShWISJKf5s2bAwBat24NEcGiRYv0nrdy5UqICNavX683/cSJExARzJo1CwBw8eJFiAi+//57vfl+//13iAhat26tTBsxYgSS2xTp/k43btwAANy+fRsmJibo0aOH3nwvX75E9uzZ0ahRI2Warv41a9bozRsQEAA3Nzfl92XLlkFEMH/+/Pf+reLj45EnTx7Url1bb7q/vz/y5s2rtw68a8KECRARbN++Pcljidejd9cZEUHGjBnx9OnT9762rrbY2FiMHj0amTNn1qvF2dkZGo0GZ8+e1XuOr68vMmTIgNevXwMAQkNDISIICAjQm2/NmjUQERw9evSDNRB9aez6IfoEHh4eYmpqqvxMmTJFRESuXr0qly5dkubNm4tIwpG67icgIEDCw8OTNKO/e5RdrFgxERG5detWkukFChTQmxYSEiJVq1YVJycnvffy9/cXEZH9+/f/57LkzZtXTpw4ofczZswYvXnq16+f5H3t7OwkKChI731LlCgh2bNnl3379olIQkuCiCh/D51GjRqJiUnKGnJ37NghcXFx0qpVK733trCwkCpVqijvraPRaCQoKEhvWrFixfT+vtu2bRMLCwtp167de9/XyMhIunfvLiEhIXL79m0REbl27Zps375dunbtmmy31X85e/as3npkamqa5MwfHx8fyZQpU5Ln7t27V6pXry4ZM2YUY2NjMTU1leHDh8uTJ0/k4cOHevO6u7tL8eLF9aY1a9ZMIiMj5fTp03rTP3Z9JPra2PVD9A4HBwextLRMdgO9YsUKefPmjYSHh+tt2B88eCAiIv369UvSpK7z7o4oc+bMer+bm5uLSMJg2cSS63568OCB/PHHH2JqavpR75UcCwsL8fT0fO/jVlZWkiFDhiTv+/z58/eO29G975MnT0REJHv27HqPm5iYJFnuj6X7G5cuXTrZx3VdVjpWVlZiYWGhN83c3FyioqKU3x89eiROTk5Jnvuudu3ayfDhw2XOnDkybtw4mTlzplhaWn4w4IiI0j3z7rrk5uYmJ06cEBGRefPmyfz585M8N7nP/fjx41KjRg3x9vaW+fPnK+OTNm3aJD/++GOSdefdv3/iabrPSOdj10eir41BhegdxsbG4uPjIzt37pTw8HC9HYZuDMS7AzwdHBxERGTw4MFSr169ZF/Xzc0tRfUkd8Tu4OAgxYoVkx9//DHZ57w7yDc13zdz5syyffv2ZJ9ja2srIv/b6UVEREiOHDmUx+Pi4pLsIHVhIjo6Wtk5iiQNW7q/8bp168TZ2flTFydZWbJkkUOHDolWq/1gWMmYMaO0bt1aFixYIP369ZPFixdLs2bNxM7O7oOv7+3tLSYmJrJlyxbp1KmTMt3S0lIJiSEhIck+N7m//6pVq8TU1FRCQkL0QtimTZuSfY2IiIj3TktpYCT62hhUiJIxePBg2bZtm3Tp0kXWrVv33pYLHTc3N8mfP7+cO3dOxo0b98Xrq1Wrlvz555+SN2/eZLsHvuT7rlq1SuLj46Vs2bLvnc/b21tERH7//Xfx8PBQpq9ZsybJAF4XFxcRSbi4XuLWkj/++ENvPj8/PzExMZFr164l6ZJKKX9/f1m5cqUsWbLkP1tHevbsKbNmzZIGDRrI8+fPpXv37v/5+o6OjtKuXTuZN2+erFq1Spo0afJZ9Wo0GjExMdEb3Pr27Vv57bffkp3/n3/+kXPnzul1/6xYsUJsbW2lVKlSn1UL0dfCoEKUjAoVKsjMmTOlR48eUqpUKenUqZO4u7uLkZGRhIeHy/r160VE9LpG5s6dK/7+/uLn5ydt2rSRHDlyyNOnT+XixYty+vRpWbt2barVN3r0aNm1a5d4eXlJz549xc3NTaKiouTmzZvy559/ypw5cyRnzpyp9n46TZo0kd9//10CAgKkV69eUqZMGTE1NZW7d+9KaGio1K5dW+rWrSuFChWSFi1ayLRp08TU1FSqV68uFy5ckMmTJyfpTgoICBB7e3tp3769jB49WkxMTGTJkiVy584dvflcXFxk9OjRMnToULl+/brUrFlTMmXKJA8ePJDjx4+LtbW1cur2x2ratKksXrxYunTpIpcvX5aqVauKVquVv/76SwoVKqQXLAoUKCA1a9aUbdu2ScWKFZOM/XifadOmyY0bN6R58+ayZcsWqV27tjg5OcmbN2/k0qVLsmrVKrGwsPjPMCwiEhgYKFOnTpVmzZpJp06d5MmTJzJ58mS9lqjEnJycJDg4WEaOHCmOjo6yfPly2bVrl0ycOJHXxKG0w9CjeYnU7OzZs2jbti1cXV1hbm4OCwsL5MuXD61atcKePXuSzH/u3Dk0atQIWbNmhampKbJnzw4fHx/MmTNHmUd3NsuJEyf0nqs7+yI0NFSZ5uzsjMDAwGRre/ToEXr27AlXV1eYmprC3t4eHh4eGDp0KF69evXB5apSpQrc3d3f+3jr1q1hbW2d7GOxsbGYPHkyihcvDgsLC9jY2KBgwYLo3Lkzrly5oswXHR2Nvn37ImvWrLCwsEC5cuVw9OhRODs76531AwDHjx+Hl5cXrK2tkSNHDowYMQILFizQO+tHZ9OmTahatSoyZMgAc3NzODs7o0GDBti9e/d/1p/cGUZv377F8OHDkT9/fpiZmSFz5szw8fHBkSNHkjx/yZIlEBGsWrXqvX+75MTHx2PZsmXw9fWFg4MDTExMkDFjRpQpUwY//PAD7t69qze/iKBbt27JvtaiRYvg5uYGc3Nz5MmTB+PHj8fChQuT/K106866devg7u4OMzMzuLi4YOrUqXqvp1vv1q5dqzf9xo0bEBEsXrz4k5aVKLVpgHeuEkRE9AW5uLiIt7e3LFmyxNClfLL69evLsWPH5ObNmx/VAmJILi4uUqRIkfeOgSFKK9j1Q0T0AdHR0XL69Gk5fvy4bNy4UaZOnar6kEKUnjCoEBF9QHh4uHh5eUmGDBmkc+fO0qNHD0OXRPRNYdcPERERqRavTEtERESqxaBCREREqsWgQkRERKqVpgfTarVauX//vtja2qboxmBERET09QGQly9fftS9ttJ0ULl//77kypXL0GUQERFRCty5c+c/r6KdpoOK7gZod+7cSXJZbiIiIlKnyMhIyZUrl7If/5A0HVR03T0ZMmRgUCEiIkpjPmbYBgfTEhERkWoxqBAREZFqMagQERGRaqXpMSpERJQ+xMfHS2xsrKHLoFRiamoqxsbGqfJaDCpERGQwACQiIkKeP39u6FIoldnZ2Un27Nk/+zpnDCpERGQwupCSNWtWsbKy4sU70wEA8ubNG3n48KGIiDg6On7W6zGoEBGRQcTHxyshJXPmzIYuh1KRpaWliIg8fPhQsmbN+lndQBxMS0REBqEbk2JlZWXgSuhL0H2unzv2iEGFiIgMit096VNqfa4MKkRERKRaBg0qI0eOFI1Go/eTPXt2Q5ZERET0nwBIp06dxN7eXjQajZw9e9bQJaVbBh9M6+7uLrt371Z+T63zromIKO1yGbT1q77fzQmBnzT/9u3bZcmSJbJv3z7JkyePODg4fKHKyOBBxcTEhK0oRESUply7dk0cHR3Fy8sr2cdjYmLEzMzsK1eVPhl8jMqVK1fEyclJXF1dpUmTJnL9+nVDl0RERPRebdq0kR49esjt27dFo9GIi4uLeHt7S/fu3aVPnz7i4OAgvr6+IiLy77//SkBAgNjY2Ei2bNmkZcuW8vjxY+W1Xr9+La1atRIbGxtxdHSUKVOmiLe3t/Tu3VuZR6PRyKZNm/RqsLOzkyVLlii/37t3Txo3biyZMmWSzJkzS+3ateXmzZt6NdepU0cmT54sjo6OkjlzZunWrZveGTnR0dEyYMAAyZUrl5ibm0v+/Pll4cKFAkDy5csnkydP1qvhwoULYmRkJNeuXfv8P+oHGDSolC1bVpYtWyY7duyQ+fPnS0REhHh5ecmTJ0+SnT86OloiIyP1foiIiL6mX375RUaPHi05c+aU8PBwOXHihIiILF26VExMTOTw4cMyd+5cCQ8PlypVqkiJEiXk5MmTsn37dnnw4IE0atRIea3+/ftLaGiobNy4UXbu3Cn79u2TU6dOfVI9b968kapVq4qNjY0cOHBADh06JDY2NlKzZk2JiYlR5gsNDZVr165JaGioLF26VJYsWaIXdlq1aiWrVq2S6dOny8WLF2XOnDliY2MjGo1G2rVrJ4sXL9Z730WLFkmlSpUkb968KfgrfjyDdv34+/sr/y9atKiUL19e8ubNK0uXLpU+ffokmX/8+PEyatSor1mian2N/ttP7bMlIvoWZMyYUWxtbcXY2Fhv6EK+fPnkp59+Un4fPny4lCpVSsaNG6dMW7RokeTKlUvCwsLEyclJFi5cKMuWLVNaYJYuXSo5c+b8pHpWrVolRkZGsmDBAuWU4MWLF4udnZ3s27dPatSoISIimTJlkhkzZoixsbEULFhQAgMDZc+ePdKxY0cJCwuTNWvWyK5du6R69eoiIpInTx7lPdq2bSvDhw+X48ePS5kyZSQ2NlaWL18ukyZN+sS/3qczeNdPYtbW1lK0aFG5cuVKso8PHjxYXrx4ofzcuXPnK1dIRESUPE9PT73fT506JaGhoWJjY6P8FCxYUEQSxrhcu3ZNYmJipHz58spz7O3txc3N7ZPe99SpU3L16lWxtbVV3sfe3l6ioqL0umXc3d31TlhxdHRULnN/9uxZMTY2lipVqiT7Ho6OjhIYGCiLFi0SEZGQkBCJioqShg0bflKtKWHwwbSJRUdHy8WLF6VSpUrJPm5ubi7m5uZfuSoiIqL/Zm1trfe7VquVoKAgmThxYpJ5HR0d33tQ/i6NRiMA9KYlHlui1WrFw8NDfv/99yTPzZIli/J/U1PTJK+r1WpF5H+XvP+QDh06SMuWLeXnn3+WxYsXS+PGjb/KVYUNGlT69esnQUFBkjt3bnn48KGMHTtWIiMjpXXr1oYsi4iI6LOVKlVK1q9fLy4uLmJiknR3my9fPjE1NZVjx45J7ty5RUTk2bNnEhYWpteykSVLFgkPD1d+v3Llirx580bvfVavXi1Zs2aVDBkypKjWokWLilarlf379ytdP+8KCAgQa2trmT17tmzbtk0OHDiQovf6VAbt+rl79640bdpU3NzcpF69emJmZibHjh0TZ2dnQ5ZFRET02bp16yZPnz6Vpk2byvHjx+X69euyc+dOadeuncTHx4uNjY20b99e+vfvL3v27JELFy5ImzZtxMhIf9fs4+MjM2bMkNOnT8vJkyelS5cueq0jzZs3FwcHB6ldu7YcPHhQbty4Ifv375devXrJ3bt3P6pWFxcXad26tbRr1042bdokN27ckH379smaNWuUeYyNjaVNmzYyePBgyZcvn16X1Zdk0BaVVatWGfLtiYhIpdLDYH4nJyc5fPiwDBw4UPz8/CQ6OlqcnZ2lZs2aShiZNGmSvHr1SoKDg8XW1lb69u0rL1680HudKVOmSNu2baVy5cri5OQkv/zyi96ZQVZWVnLgwAEZOHCg1KtXT16+fCk5cuSQatWqfVILy+zZs2XIkCHStWtXefLkieTOnVuGDBmiN0/79u1l3Lhx0q5du8/4y3waDd7t+EpDIiMjJWPGjPLixYsUN3elVTzrh4jSuqioKLlx44a4urqKhYWFoctRDW9vbylRooRMmzbN0KUkcfjwYfH29pa7d+9KtmzZPjjvhz7fT9l/q2owLREREalPdHS03LlzR3744Qdp1KjRf4aU1KSq05OJiIhIfVauXClubm7y4sULvWvFfA1sUSEiIlKRffv2GbqEJNq0aSNt2rQxyHuzRYWIiIhUi0GFiIgMKg2f00EfkFqfK4MKEREZhO5aIIkvXkbph+5zffeKuJ+KY1SIiMggjI2Nxc7OTrnfjJWVlXJTPUq7AMibN2/k4cOHYmdnp3d/oZRgUCEiIoPR3X1YF1Yo/bCzs9O7u3RKMagQEZHBaDQacXR0lKxZs+rdaI/SNlNT089uSdFhUCEiIoMzNjZOtR0bpS8cTEtERESqxaBCREREqsWgQkRERKrFoEJERESqxaBCREREqsWgQkRERKrFoEJERESqxaBCREREqsWgQkRERKrFoEJERESqxaBCREREqsWgQkRERKrFoEJERESqxaBCREREqsWgQkRERKrFoEJERESqxaBCRERE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oqCio7tHDxEREdGXkKKgEh8fL0uWLJE9e/bIw4cPRavV6j2+d+/eVCmOiIiIvm0pCiq9evWSJUuWSGBgoBQpUkQ0Gk1q10VERESUsqCyatUqWbNmjQQEBKR2PURERESKFJ2enPj+PERERERfSoqCSt++feWXX34RAKldDxEREZEiRV0/hw4dktDQUNm2bZu4u7uLqamp3uMbNmxIleKIiIjo25aioGJnZyd169ZN7VqIiIiI9KQoqCxevDi16yAiIiJKIkVjVERE4uLiZPfu3TJ37lx5+fKliIjcv39fXr16lWrFERER0bctRS0qt27dkpo1a8rt27clOjpafH19xdbWVn766SeJioqSOXPmpHadRERE9A1KUYtKr169xNPTU549eyaWlpbK9Lp168qePXtSrTgiIiL6tqX4rJ/Dhw+LmZmZ3nRnZ2e5d+9eqhRGRERElKIWFa1WK/Hx8Umm3717V2xtbT+7KCIiIiKRFAYVX19fmTZtmvK7RqORV69eyYgRI3hZfSIiIko1Ker6+fnnn6Vq1apSuHBhiYqKkmbNmsmVK1fEwcFBVq5cmdo1EhER0TcqRUHFyclJzp49KytXrpTTp0+LVquV9u3bS/PmzfUG1xIRERF9jhQFFRERS0tLadeunbRr1y416yEiIiJSpCioLFu27IOPt2rVKkXFEBERESWWoqDSq1cvvd9jY2PlzZs3YmZmJlZWVgwqRERElCpSdNbPs2fP9H5evXolly9flooVK3IwLREREaWaFN/r51358+eXCRMmJGltISIiIkqpVAsqIiLGxsZy//791HxJIiIi+oalaIzKli1b9H4HIOHh4TJjxgypUKFCqhRGRERElKKgUqdOHb3fNRqNZMmSRXx8fGTKlCmpURcRERFRyoKKVqtN7TqIiIiIkkjVMSpEREREqSlFLSp9+vT56HmnTp2akrcgIiIiSllQOXPmjJw+fVri4uLEzc1NRETCwsLE2NhYSpUqpcyn0WhSp0oiIiL6JqUoqAQFBYmtra0sXbpUMmXKJCIJF4Fr27atVKpUSfr27ZuqRRIREdG3KUVjVKZMmSLjx49XQoqISKZMmWTs2LE864eIiIhSTYqCSmRkpDx48CDJ9IcPH8rLly8/uygiIiIikRQGlbp160rbtm1l3bp1cvfuXbl7966sW7dO2rdvL/Xq1UvtGomIiOgb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Bg3wMecGEREREX19Br/XDxEREdH7MKgQERGRajGoEBERkWoxqBAREZFqMagQERG9R7NmzaRp06aGLuObxqBCRESUDAASEBAgISEh0q1bN0OX880y+HVU1ALAF7tf0JegqxeAABAjo7SbOXXL8vz58692S4TUlHjdSWvrUWKJa9dqtWl6nUosLX4myf390+Jn8u7fPq19FhqNRpo2bSpWVlbSsmVL0Wq1Mnv2bEOXlWJp7e+v801eR0X3YZ0/f16ePn0q3t7ehi7pk+jq37lzp2zZskXCwsKkbt264uHhIWXKlDF0eSmyY8cO+e2332TJkiViZGSUZjbIiXce0dHREhcXJ9bW1srjaWXDEB8fL8bGxsrvb9++FUtLSwNWlDI3b96UzZs3i1arlZIlS6a577aI/joVEREh8fHxkiNHDuXxtLJOJV4OrVYrGo0mTdSdHK1WKxs3bpRWrVpJq1at0nRY2bFjh1haWkrlypUNXcpHSxt7g1Sk+5KvX79e/P395dChQ3LlyhVDl/VJNBqNbNq0SYKDgyUqKkqsrKxk/vz58v3330tISIihy/tPCxYskB07dohIwgZARGT//v1iaWkpJiZpq5FPtyEeO3as+Pn5iaenpwwZMkROnz4tIqK0eqlZ4pAyePBgqVu3rvj4+MjUqVPlxYsXBq7u4507d068vLxky5YtMnHiRBkzZowcOnRIeVztn4OObp0aNmyYVK5cWTw8PKRKlSqyYcMGef36dZpYpxK38v7000/SrFkz8fb2luXLl0tYWJiBq/tvur+v7l8jIyMJCgqSZcuWybJly+S7774zZHkf7eLFixIVFSUiCdvaly9fyoABA+T169cGruwT4Ruh1WqV/+/fvx+2traYM2cOXr16ZcCqUubBgwcoU6YMpk6dqkw7dOgQ2rRpg0qVKuH06dMGrO7D7t69C39/fxQqVAh79+5Vprdq1QrfffedASv7NPHx8cr/x40bh8yZM2PkyJEYOXIkcuXKhcDAQGzdutWAFX66unXromjRopg6dSqWLl0KjUaD4cOHIyoqytCl/adz587B0tISgwcPRlxcHC5evIicOXPit99+05sv8XZAbRKvUwsWLICDgwMWLVqEkJAQ1KxZE6VKlcL06dPx9u1bA1b53xIvx8iRI2FnZ4fevXujTp06yJs3Lxo3bowTJ04YsMIPS1x/REQE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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Now to plot the bar graph\n", - "ax = df.plot(kind='bar', x='Genre', y='frequency', rot=0)\n", - "plt.xticks(rotation=45, ha='right')\n", - "# This code sets the axis labels and title\n", - "ax.set_xlabel('Genre')\n", - "ax.set_ylabel('Frequency')\n", - "ax.set_title('Genre Frequency Graph')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "1a5789a5-bbde-45d5-9108-46a2d1171ff1", - "metadata": {}, - "source": [ - "# Bar Graph Explanation\n", - "### This bar graph portrays the frequency of the genres of the top 23 songs in the dataset and from the looks of it, the most popular genres are Latin Urbano, Rock and Electronic. This answers my research question that yes, some song genres are more popular than others. Although the amount of sample data is small (23), it does still give a sense of the types of music people consider popular, and according to this dataset, it is Latin Urbano, Rock and Electronic.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2778cf75-d568-4a7e-aed8-b8928db856ca", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/analysis/analysis pipeline/Person 3.ipynb b/analysis/ungraded/Person 3.ipynb similarity index 100% rename from analysis/analysis pipeline/Person 3.ipynb rename to analysis/ungraded/Person 3.ipynb diff --git a/final_report_group48.md b/final_report_group48.md new file mode 100644 index 0000000..c52c384 --- /dev/null +++ b/final_report_group48.md @@ -0,0 +1,111 @@ +# Introduction: +### After looking for possible topics of interest for the project, our group decided to focus on music. In particular we wanted to know what factors contribute to the popularity of music. Knowing that people have different tastes, we were curious about what kinds of trends and influences we could discover after analyzing a musical dataset. Initially our broad guiding question was: “What factors make music popular? In line with this inquiry, our chosen data set was one that provided a list of songs and their scores in regards to different musical features like popularity, accousticness, and loudness. + +# Exploratory Data Analysis: +### The purpose of the EDA was to gain useful insights into our dataset in order to mold more refined and specific questions. We each took a slightly different approach even with our initial questions but found similar trends. One common question was whether there is a distinct musical feature that most correlates to or perhaps “causes” popularity. The basic correlation and scatter plots we constructed showed that this was not the case. As can be seen below, none of the features had a strong correlation with popularity. Through this we discovered that there isn’t a one to one causal relationship between the features and popularity, meaning we’d have to look further to find how they possibly interact. + +# Person 1: Alvin: +# Question 1 + Results: Is there a combination of elements that is only prevalent amongst the most popular songs? + +![Loudness of Top 15 Songs](/images/alvin1.png) + +![Pairplot](/images/alvin2.png) + +### This bar plot is one of several. It shows the top 15 popular songs (listed most to least popular), and their loudness scores. The most significant implication of this graph is that the feature of loudness (similarly to the other tested features) doesn’t have a specific correlation with popularity. Even among the top 15, there is a distribution where some of the top songs in this list have high loudness, but also some of the lower rated songs in this list have high loudness as well. For example Kryptonite which is 14th has a higher loudness rating than Billie Jean, but lower popularity. The fact that this occurs with the other features shows that neither one or a combination of elements are necessarily only prevalent in the most popular songs. The pair plot similarly shows that the features do not have high or low ratings for only high or low popularity. For most features there are popular songs with high and low scores, and unpopular songs with the same. + + +# Question 2 + Results: Are there musical features that contribute to the popularity of certain genres and not others? + +![Pairplot](/images/alvin2.png) + +![Violin Plot](/images/alvin3.png) + +### The approach I took to analyzing how the different genres interact with the different factors was to look at both distribution and quantity. The violin plot helps to identify the most popular genres and the distribution of popularity, which helps when looking at the pairplot to pay attention to the most popular genres and how their features relate to popularity. Rock songs which are the most prevalent seem to also have the least noticeable trend. For each factor, apart from loudness and acoustic-ness (danceability, energy, speechiness, temp, audio valence, loudness_energy and energy duration), rock and pop songs are distributed widely, having both high and low ratings in these factors and popularity across the board. In contrast hip hop and hard rock seem to cluster in more of these categories. For acousticness, the hard rock songs all have below average acoustic-ness but are still popular, implying that this factor isn't impactful in their popularity. For loudness however, all hard rock and hip hop songs have above average scores and are highly popular, signifying that they are popular because of the factor of loudness. Loudness and energy seem to have similar impact in the popularity of pop songs. + +### Therefore, it can be said that thus far I know that hard rock, hip hop and pop songs are the most popular within my chosen sample size. The factors that most influence their popularity seem to be loudness and energy. The impact of loudness and energy is strengthened by the fact that the combined loundness_energy scores for these two genres are high along with their popularity. + + +# Person 2: Tobi Ogunbote + +# Research Question 1: + +# Are songs with repeated verses or choruses considered more catchy or popular than songs without? + +### I could not go through every song and check the ones that had repeated verses or choruses, that would take too long. The closest thing that I could find to back up this question was the variable “speechiness” which means the presence of spoken words in a track. The closer to 1.0, the more spoken words in the song. + +![Scatterplot](/images/tobi1.png) + +### Figure 1. Scatterplot of speechiness and song popularity. This Scatterplot portrays how the speechiness of the songs in my dataset have correlation to the popularity of the song. Most songs in this dataset have a speechiness of less than 0.5 meaning they do not have many spoken words. At first I believed that the more words in a song, the more popular it is. Although, in this dataset, the songs with less words are the more popular ones. This is seen in the graph (the big clump of dots near the popularity of 60-80). Another thing seen here is the outlier (the one dot at the far right of the graph) that has a lot of words and is not that popular. This scatterplot helped me answer my question but not my main research question. + + +# Research Question 2: + +# Are there specific genres of music that are more popular than others? + +![Bar Graph](/images/tobi2.png) + +### Figure 2. Bar graph depicting average song popularity in relation to the genres. In this graph, it shows the average song popularity of each genre and the most popular songs are Reggae, Metal, Pop and Hip-Hop. Average meaning the mean of the most and least popular songs put together. According to the graph, Reggae, Metal, Pop and Hip Hop are the most popular songs in this dataset. The least popular songs in this dataset are Son Cubaro, Bolero and Latin Pop. This occurred because there was only 1 song for each of these genres. I believe that if these genres had more songs in them, they would have a higher popularity. This graph still answers my question that there are genres that individuals find more popular than others in a set of songs. + +![Bar plot](/images/tobi3.png) + +### Figure 3. Bar plot of song popularity with certain genres. This final graph is a box plot to better showcase the 4 most popular genres (Reggae, Metal, Pop and Hip-Hop). The plot for Hip-Hop is quite tall which means there is a big discrepancy in most popular and least popular songs. With this plot we can assume that most Hip-Hop songs in the dataset are not popular (since the upper quartile is shorter) but that some of them are popular, but the non-popular songs outweigh the popular ones. Taking a look at Reggae plot, it is very short meaning most Reggae songs in this set are popular. This might also be a bit inaccurate because there were only 3 songs in this dataset with the genre Reggae. This can be improved if there were more songs with this specific genre in the dataset to give a more accurate picture. The pop genre has a medium sized plot with a lot more popular songs than non popular songs. The Metal plot is just 1 line because there is only 1 song so this does not give a proper correlation of the data. + +### In conclusion from all these plots and according to my modified dataset, Hip-Hop, Reggae and Pop are the most popular genres. Which means there are certain genres that make a song more popular. If that was not the case then all the genres would have had the same number. + + +# Person 3: Annabelle + + +# Question 1: What musical elements are most associated with each other and how are they related to music popularity? Are the trends consistent across the top and least popular songs? + + +# Figure 1: Correlation Heatmap between elements + +![Corr Plot](/images/anna1.png) + +# Figure 2 (Left) : Correlation between Musical Elements and Popularity Score (Top 50 Songs) + +![Corr Plot](/images/anna2.png) + +# Figure 3 (Right): Correlation between Musical Elements and Popularity Score (Bottom 50 Songs) + +![Corr Plot](/images/anna3.png) + + + +# Results: +### The results of my analysis showed that we the two elements that were most associated with each other are loudness and energy. The heatmap above shows that the two elements had a a strong positive correlation of 0.75 . I also found by comparing the popularity scores of each individual song to song popularity that audio valence and danceability had the strongest relationship to popularity. Even though the each of the elements individually were not particularly correlated with song popularity, the aggregate elements loud_energy_prod had the second highest correlation to popularity in the top 50 songs as shown in Figure 2. This positive correlation suggests that as loudness and energy both increase in a song, the song is associated with a higher popularity score. . These results are inconsistent in the bottom 50 songs however as song duration , audio valence and the aggregate element vale_dance_prod had the strongest relationship with popularity as shown in Figure 3. The negative correlation between the elements and popularity suggests that among the least popular songs, higher audio valence and vale_dance_prod is associated with a lower popularity score. + + +# Question 2: What musical features are most important to the song popularities of the most popular genres within this dataset? + +# Figure 4: Average Song Popularity by Genre + +![Popularity](/images/anna4.png) + +# Figure 5: Most important features by most popular genre + +![Genre](/images/anna5.png) + +# Results: + +### As identified by the mean popularity score of each genre, the most popular genres in my sample are Trap, Hip Hop and Pop Rock respectively. + +### Trap: Based on the results above, energy and audio valence seem to be the most important musical features to the song popularity of trap music. This is seen in the correlation data generated in line 516, where energy and audio valence are shown to have correlations to popularity of -0.587341 and -0.552183, respectively. The importance of energy here can likely be explained by the fact that trap music tends to have a heavier emphasis on delivery, which is one of the elements of a song that can bring about the most energy. Additionally, the importance of audio valence can be explained by the presence of acoustically appealing elements in trap, such as synth, which often evokes feelings of euphoria. + +### Hip Hop: Based on the results above, instrumentalness and danceability seem to be the most important musical features to the song popularity of the Hip Hop genre. This is seen in the correlation data generated in line 556, where instrumentalness and danceability are shown to have correlations to popularity of -0.597227 and 0.415569, respectively. The importance of instrumentalness here can likely be explained by the fact that hip hop music tends to have a heavier emphasis on the beats, which is where the instrumentation exists. The importance of danceability here also follows, as beats provide the rhythm for dance. + +### Pop Rock: Based on the results above, song duration and loud_energy_prod seem to be the most important musical features to the song popularity in the Pop Rock genre. This is seen in the correlation data generated in line 558, where song duration and loud_energy_prod are shown to have correlations to popularity of -0.588488 and 0.536797, respectively. The importance of song duration here can likely be explained by the fact that Pop Rock songs tend to be more radio friendly, which would come with specific time retraints for artists seeking such a platform. The importance of loud_energy_prod can be explained by the fact that Pop rock is a genre that often emphasizes catchy melodies, memorable hooks, and sing-along choruses, and the use of loudness and energy can help to amplify these qualities and make the music more engaging and exciting. Loudness in particular can create a sense of power and urgency, and can be used to create contrast between softer and louder sections of a song, adding to its dynamic range. + + + +# Summary/Conclusion: +### While we all took slightly different approaches to the question of music and popularity, there is a common conclusion. While we initially thought that there may be broad general trends that show which features specifically correlate or match up with popularity, the relationships that exist are more complex and are compartmentalized. After subsetting data, these relationships are much easier to see. For example by subsetting according to genre, we found that for different genres, different features correlated with popularity levels. This makes sense logically as music is not homogenous. People have different music tastes which may align with the idea of genres. It then is reasonable that within these genres, certain traits of music are more preferred than others + + + + + + + + diff --git a/images/alvin1.png b/images/alvin1.png new file mode 100644 index 0000000..20c98ab Binary files /dev/null and b/images/alvin1.png differ diff --git a/images/alvin2.png b/images/alvin2.png new file mode 100644 index 0000000..f4a27eb Binary files /dev/null and b/images/alvin2.png differ diff --git a/images/alvin3.png b/images/alvin3.png new file mode 100644 index 0000000..d4667ab Binary files /dev/null and b/images/alvin3.png differ diff --git a/images/anna1.png b/images/anna1.png new file mode 100644 index 0000000..04fec8e Binary files /dev/null and b/images/anna1.png differ diff --git a/images/anna2.png b/images/anna2.png new file mode 100644 index 0000000..bd30091 Binary files /dev/null and b/images/anna2.png differ diff --git a/images/anna3.png b/images/anna3.png new file mode 100644 index 0000000..eafa88c Binary files /dev/null and b/images/anna3.png differ diff --git a/images/anna4.png b/images/anna4.png new file mode 100644 index 0000000..25ad39d Binary files /dev/null and b/images/anna4.png differ diff --git a/images/anna5.png b/images/anna5.png new file mode 100644 index 0000000..ee47437 Binary files /dev/null and b/images/anna5.png differ diff --git a/images/tobi1.png b/images/tobi1.png new file mode 100644 index 0000000..74ddb2a Binary files /dev/null and b/images/tobi1.png differ diff --git a/images/tobi2.png b/images/tobi2.png new file mode 100644 index 0000000..1d901a0 Binary files /dev/null and b/images/tobi2.png differ diff --git a/images/tobi3.png b/images/tobi3.png new file mode 100644 index 0000000..31efd01 Binary files /dev/null and b/images/tobi3.png differ