You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/5-Clustering/1-Visualize/solution/notebook.ipynb

819 lines
236 KiB

3 years ago
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
3 years ago
"source": [
"# Nigerian Music scraped from Spotify - an analysis"
]
3 years ago
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Defaulting to user installation because normal site-packages is not writeable\n",
"Requirement already satisfied: seaborn in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (0.11.2)\n",
"Requirement already satisfied: matplotlib>=2.2 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from seaborn) (3.5.0)\n",
"Requirement already satisfied: numpy>=1.15 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from seaborn) (1.21.4)\n",
"Requirement already satisfied: pandas>=0.23 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from seaborn) (1.3.4)\n",
"Requirement already satisfied: scipy>=1.0 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from seaborn) (1.7.2)\n",
"Requirement already satisfied: fonttools>=4.22.0 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (4.28.1)\n",
"Requirement already satisfied: pyparsing>=2.2.1 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (2.4.7)\n",
"Requirement already satisfied: kiwisolver>=1.0.1 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (1.3.2)\n",
"Requirement already satisfied: pillow>=6.2.0 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (8.4.0)\n",
"Requirement already satisfied: cycler>=0.10 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (0.11.0)\n",
"Requirement already satisfied: packaging>=20.0 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (21.2)\n",
"Requirement already satisfied: setuptools-scm>=4 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (6.3.2)\n",
"Requirement already satisfied: python-dateutil>=2.7 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (2.8.2)\n",
"Requirement already satisfied: pytz>=2017.3 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from pandas>=0.23->seaborn) (2021.3)\n",
"Requirement already satisfied: six>=1.5 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from python-dateutil>=2.7->matplotlib>=2.2->seaborn) (1.16.0)\n",
"Requirement already satisfied: tomli>=1.0.0 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from setuptools-scm>=4->matplotlib>=2.2->seaborn) (1.2.2)\n",
"Requirement already satisfied: setuptools in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from setuptools-scm>=4->matplotlib>=2.2->seaborn) (59.1.1)\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"!pip install seaborn"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 4,
3 years ago
"metadata": {},
"outputs": [
{
3 years ago
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>album</th>\n",
" <th>artist</th>\n",
" <th>artist_top_genre</th>\n",
" <th>release_date</th>\n",
" <th>length</th>\n",
" <th>popularity</th>\n",
" <th>danceability</th>\n",
" <th>acousticness</th>\n",
" <th>energy</th>\n",
" <th>instrumentalness</th>\n",
" <th>liveness</th>\n",
" <th>loudness</th>\n",
" <th>speechiness</th>\n",
" <th>tempo</th>\n",
" <th>time_signature</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Sparky</td>\n",
" <td>Mandy &amp; The Jungle</td>\n",
" <td>Cruel Santino</td>\n",
" <td>alternative r&amp;b</td>\n",
" <td>2019</td>\n",
" <td>144000</td>\n",
" <td>48</td>\n",
" <td>0.666</td>\n",
" <td>0.8510</td>\n",
" <td>0.420</td>\n",
" <td>0.534000</td>\n",
" <td>0.1100</td>\n",
" <td>-6.699</td>\n",
" <td>0.0829</td>\n",
" <td>133.015</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>shuga rush</td>\n",
" <td>EVERYTHING YOU HEARD IS TRUE</td>\n",
" <td>Odunsi (The Engine)</td>\n",
" <td>afropop</td>\n",
" <td>2020</td>\n",
" <td>89488</td>\n",
" <td>30</td>\n",
" <td>0.710</td>\n",
" <td>0.0822</td>\n",
" <td>0.683</td>\n",
" <td>0.000169</td>\n",
" <td>0.1010</td>\n",
" <td>-5.640</td>\n",
" <td>0.3600</td>\n",
" <td>129.993</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>LITT!</td>\n",
" <td>LITT!</td>\n",
" <td>AYLØ</td>\n",
" <td>indie r&amp;b</td>\n",
" <td>2018</td>\n",
" <td>207758</td>\n",
" <td>40</td>\n",
" <td>0.836</td>\n",
" <td>0.2720</td>\n",
" <td>0.564</td>\n",
" <td>0.000537</td>\n",
" <td>0.1100</td>\n",
" <td>-7.127</td>\n",
" <td>0.0424</td>\n",
" <td>130.005</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Confident / Feeling Cool</td>\n",
" <td>Enjoy Your Life</td>\n",
" <td>Lady Donli</td>\n",
" <td>nigerian pop</td>\n",
" <td>2019</td>\n",
" <td>175135</td>\n",
" <td>14</td>\n",
" <td>0.894</td>\n",
" <td>0.7980</td>\n",
" <td>0.611</td>\n",
" <td>0.000187</td>\n",
" <td>0.0964</td>\n",
" <td>-4.961</td>\n",
" <td>0.1130</td>\n",
" <td>111.087</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>wanted you</td>\n",
" <td>rare.</td>\n",
" <td>Odunsi (The Engine)</td>\n",
" <td>afropop</td>\n",
" <td>2018</td>\n",
" <td>152049</td>\n",
" <td>25</td>\n",
" <td>0.702</td>\n",
" <td>0.1160</td>\n",
" <td>0.833</td>\n",
" <td>0.910000</td>\n",
" <td>0.3480</td>\n",
" <td>-6.044</td>\n",
" <td>0.0447</td>\n",
" <td>105.115</td>\n",
" <td>4</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
3 years ago
"text/plain": [
" name album \\\n",
"0 Sparky Mandy & The Jungle \n",
"1 shuga rush EVERYTHING YOU HEARD IS TRUE \n",
"2 LITT! LITT! \n",
"3 Confident / Feeling Cool Enjoy Your Life \n",
"4 wanted you rare. \n",
"\n",
" artist artist_top_genre release_date length popularity \\\n",
"0 Cruel Santino alternative r&b 2019 144000 48 \n",
"1 Odunsi (The Engine) afropop 2020 89488 30 \n",
"2 AYLØ indie r&b 2018 207758 40 \n",
"3 Lady Donli nigerian pop 2019 175135 14 \n",
"4 Odunsi (The Engine) afropop 2018 152049 25 \n",
"\n",
" danceability acousticness energy instrumentalness liveness loudness \\\n",
"0 0.666 0.8510 0.420 0.534000 0.1100 -6.699 \n",
"1 0.710 0.0822 0.683 0.000169 0.1010 -5.640 \n",
"2 0.836 0.2720 0.564 0.000537 0.1100 -7.127 \n",
"3 0.894 0.7980 0.611 0.000187 0.0964 -4.961 \n",
"4 0.702 0.1160 0.833 0.910000 0.3480 -6.044 \n",
"\n",
" speechiness tempo time_signature \n",
"0 0.0829 133.015 5 \n",
"1 0.3600 129.993 3 \n",
"2 0.0424 130.005 4 \n",
"3 0.1130 111.087 4 \n",
"4 0.0447 105.115 4 "
]
3 years ago
},
"execution_count": 4,
3 years ago
"metadata": {},
"output_type": "execute_result"
3 years ago
}
],
"source": [
"df = pd.read_csv(\"../../data/nigerian-songs.csv\")\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Get information about the dataframe"
]
},
{
3 years ago
"cell_type": "code",
"execution_count": 5,
3 years ago
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
3 years ago
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 530 entries, 0 to 529\n",
"Data columns (total 16 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 name 530 non-null object \n",
" 1 album 530 non-null object \n",
" 2 artist 530 non-null object \n",
" 3 artist_top_genre 530 non-null object \n",
" 4 release_date 530 non-null int64 \n",
" 5 length 530 non-null int64 \n",
" 6 popularity 530 non-null int64 \n",
" 7 danceability 530 non-null float64\n",
" 8 acousticness 530 non-null float64\n",
" 9 energy 530 non-null float64\n",
" 10 instrumentalness 530 non-null float64\n",
" 11 liveness 530 non-null float64\n",
" 12 loudness 530 non-null float64\n",
" 13 speechiness 530 non-null float64\n",
" 14 tempo 530 non-null float64\n",
" 15 time_signature 530 non-null int64 \n",
"dtypes: float64(8), int64(4), object(4)\n",
"memory usage: 66.4+ KB\n"
3 years ago
]
}
],
"source": [
"df.info()"
3 years ago
]
},
{
"cell_type": "markdown",
"metadata": {},
3 years ago
"source": [
"Double-check for null values."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"name 0\n",
"album 0\n",
"artist 0\n",
"artist_top_genre 0\n",
"release_date 0\n",
"length 0\n",
"popularity 0\n",
"danceability 0\n",
"acousticness 0\n",
"energy 0\n",
"instrumentalness 0\n",
"liveness 0\n",
"loudness 0\n",
"speechiness 0\n",
"tempo 0\n",
"time_signature 0\n",
"dtype: int64"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.isnull().sum()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Look at the general values of the data. Note that popularity can be '0' - and there are many rows with that value"
]
3 years ago
},
{
"cell_type": "code",
"execution_count": 7,
3 years ago
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>release_date</th>\n",
" <th>length</th>\n",
" <th>popularity</th>\n",
" <th>danceability</th>\n",
" <th>acousticness</th>\n",
" <th>energy</th>\n",
" <th>instrumentalness</th>\n",
" <th>liveness</th>\n",
" <th>loudness</th>\n",
" <th>speechiness</th>\n",
" <th>tempo</th>\n",
" <th>time_signature</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>530.000000</td>\n",
" <td>530.000000</td>\n",
" <td>530.000000</td>\n",
" <td>530.000000</td>\n",
" <td>530.000000</td>\n",
" <td>530.000000</td>\n",
" <td>530.000000</td>\n",
" <td>530.000000</td>\n",
" <td>530.000000</td>\n",
" <td>530.000000</td>\n",
" <td>530.000000</td>\n",
" <td>530.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>2015.390566</td>\n",
" <td>222298.169811</td>\n",
" <td>17.507547</td>\n",
" <td>0.741619</td>\n",
" <td>0.265412</td>\n",
" <td>0.760623</td>\n",
" <td>0.016305</td>\n",
" <td>0.147308</td>\n",
" <td>-4.953011</td>\n",
" <td>0.130748</td>\n",
" <td>116.487864</td>\n",
" <td>3.986792</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>3.131688</td>\n",
" <td>39696.822259</td>\n",
" <td>18.992212</td>\n",
" <td>0.117522</td>\n",
" <td>0.208342</td>\n",
" <td>0.148533</td>\n",
" <td>0.090321</td>\n",
" <td>0.123588</td>\n",
" <td>2.464186</td>\n",
" <td>0.092939</td>\n",
" <td>23.518601</td>\n",
" <td>0.333701</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>1998.000000</td>\n",
" <td>89488.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.255000</td>\n",
" <td>0.000665</td>\n",
" <td>0.111000</td>\n",
" <td>0.000000</td>\n",
" <td>0.028300</td>\n",
" <td>-19.362000</td>\n",
" <td>0.027800</td>\n",
" <td>61.695000</td>\n",
" <td>3.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>2014.000000</td>\n",
" <td>199305.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.681000</td>\n",
" <td>0.089525</td>\n",
" <td>0.669000</td>\n",
" <td>0.000000</td>\n",
" <td>0.075650</td>\n",
" <td>-6.298750</td>\n",
" <td>0.059100</td>\n",
" <td>102.961250</td>\n",
" <td>4.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>2016.000000</td>\n",
" <td>218509.000000</td>\n",
" <td>13.000000</td>\n",
" <td>0.761000</td>\n",
" <td>0.220500</td>\n",
" <td>0.784500</td>\n",
" <td>0.000004</td>\n",
" <td>0.103500</td>\n",
" <td>-4.558500</td>\n",
" <td>0.097950</td>\n",
" <td>112.714500</td>\n",
" <td>4.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>2017.000000</td>\n",
" <td>242098.500000</td>\n",
" <td>31.000000</td>\n",
" <td>0.829500</td>\n",
" <td>0.403000</td>\n",
" <td>0.875750</td>\n",
" <td>0.000234</td>\n",
" <td>0.164000</td>\n",
" <td>-3.331000</td>\n",
" <td>0.177000</td>\n",
" <td>125.039250</td>\n",
" <td>4.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>2020.000000</td>\n",
" <td>511738.000000</td>\n",
" <td>73.000000</td>\n",
" <td>0.966000</td>\n",
" <td>0.954000</td>\n",
" <td>0.995000</td>\n",
" <td>0.910000</td>\n",
" <td>0.811000</td>\n",
" <td>0.582000</td>\n",
" <td>0.514000</td>\n",
" <td>206.007000</td>\n",
" <td>5.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
3 years ago
"text/plain": [
" release_date length popularity danceability acousticness \\\n",
"count 530.000000 530.000000 530.000000 530.000000 530.000000 \n",
"mean 2015.390566 222298.169811 17.507547 0.741619 0.265412 \n",
"std 3.131688 39696.822259 18.992212 0.117522 0.208342 \n",
"min 1998.000000 89488.000000 0.000000 0.255000 0.000665 \n",
"25% 2014.000000 199305.000000 0.000000 0.681000 0.089525 \n",
"50% 2016.000000 218509.000000 13.000000 0.761000 0.220500 \n",
"75% 2017.000000 242098.500000 31.000000 0.829500 0.403000 \n",
"max 2020.000000 511738.000000 73.000000 0.966000 0.954000 \n",
"\n",
" energy instrumentalness liveness loudness speechiness \\\n",
"count 530.000000 530.000000 530.000000 530.000000 530.000000 \n",
"mean 0.760623 0.016305 0.147308 -4.953011 0.130748 \n",
"std 0.148533 0.090321 0.123588 2.464186 0.092939 \n",
"min 0.111000 0.000000 0.028300 -19.362000 0.027800 \n",
"25% 0.669000 0.000000 0.075650 -6.298750 0.059100 \n",
"50% 0.784500 0.000004 0.103500 -4.558500 0.097950 \n",
"75% 0.875750 0.000234 0.164000 -3.331000 0.177000 \n",
"max 0.995000 0.910000 0.811000 0.582000 0.514000 \n",
"\n",
" tempo time_signature \n",
"count 530.000000 530.000000 \n",
"mean 116.487864 3.986792 \n",
"std 23.518601 0.333701 \n",
"min 61.695000 3.000000 \n",
"25% 102.961250 4.000000 \n",
"50% 112.714500 4.000000 \n",
"75% 125.039250 4.000000 \n",
"max 206.007000 5.000000 "
]
3 years ago
},
"execution_count": 7,
3 years ago
"metadata": {},
"output_type": "execute_result"
3 years ago
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's examine the genres. Quite a few are listed as 'Missing' which means they aren't categorized in the dataset with a genre "
]
},
3 years ago
{
"cell_type": "code",
"execution_count": 8,
3 years ago
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Top genres')"
]
},
"execution_count": 8,
3 years ago
"metadata": {},
"output_type": "execute_result"
3 years ago
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 720x504 with 1 Axes>"
]
3 years ago
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
3 years ago
}
],
"source": [
"import seaborn as sns\n",
"\n",
3 years ago
"top = df['artist_top_genre'].value_counts()\n",
"plt.figure(figsize=(10,7))\n",
"sns.barplot(x=top[:5].index,y=top[:5].values)\n",
"plt.xticks(rotation=45)\n",
"plt.title('Top genres',color = 'blue')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Remove 'Missing' genres, as it's not classified in Spotify\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Top genres')"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 720x504 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df = df[df['artist_top_genre'] != 'Missing']\n",
"top = df['artist_top_genre'].value_counts()\n",
"plt.figure(figsize=(10,7))\n",
"sns.barplot(x=top.index,y=top.values)\n",
"plt.xticks(rotation=45)\n",
"plt.title('Top genres',color = 'blue')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The top three genres comprise the greatest part of the dataset, so let's focus on those"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
3 years ago
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Top genres')"
]
},
"execution_count": 10,
3 years ago
"metadata": {},
"output_type": "execute_result"
3 years ago
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 720x504 with 1 Axes>"
]
3 years ago
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]\n",
3 years ago
"df = df[(df['popularity'] > 0)]\n",
"top = df['artist_top_genre'].value_counts()\n",
"plt.figure(figsize=(10,7))\n",
"sns.barplot(x=top.index,y=top.values)\n",
"plt.xticks(rotation=45)\n",
"plt.title('Top genres',color = 'blue')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The data is not strongly correlated except between energy and loudness, which makes sense. Popularity has a correspondence to release data, which also makes sense, as more recent songs are probably more popular. Length and energy seem to have a correlation - perhaps shorter songs are more energetic?"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 864x648 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"corrmat = df.corr()\n",
"f, ax = plt.subplots(figsize=(12, 9))\n",
"sns.heatmap(corrmat, vmax=.8, square=True);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Are the genres significantly different in the perception of their danceability, based on their popularity? Examine our top three genres data distribution for popularity and danceability along a given x and y axis "
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x432 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.set_theme(style=\"ticks\")\n",
"\n",
"# Show the joint distribution using kernel density estimation\n",
"g = sns.jointplot(\n",
" data=df,\n",
3 years ago
" x=\"popularity\", y=\"danceability\", hue=\"artist_top_genre\",\n",
" kind=\"kde\",\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In general, the three genres align in terms of their popularity and danceability. A scatterplot of the same axes shows a similar pattern of convergence. Try a scatterplot to check the distribution of data per genre"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages/seaborn/axisgrid.py:337: UserWarning: The `size` parameter has been renamed to `height`; please update your code.\n",
" warnings.warn(msg, UserWarning)\n"
]
},
{
"data": {
"text/plain": [
"<seaborn.axisgrid.FacetGrid at 0x1350b1a90>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 468.975x360 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.FacetGrid(df, hue=\"artist_top_genre\", size=5) \\\n",
3 years ago
" .map(plt.scatter, \"popularity\", \"danceability\") \\\n",
" .add_legend()"
]
3 years ago
}
],
"metadata": {
"interpreter": {
"hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6"
},
"kernelspec": {
"display_name": "Python 3.7.0 64-bit ('3.7')",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.9"
},
"metadata": {
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"orig_nbformat": 2
},
"nbformat": 4,
"nbformat_minor": 2
}