listening-analysis/album.ipynb

529 lines
646 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
2021-05-06 16:19:44 +01:00
"cell_type": "markdown",
"metadata": {},
"source": [
"# Album Investigations"
2021-05-06 16:19:44 +01:00
]
},
{
"cell_type": "code",
2021-05-06 16:19:44 +01:00
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
2021-05-06 16:19:44 +01:00
"output_type": "stream",
"text": [
2021-05-06 16:19:44 +01:00
"437 scrobbles\n",
"1 days spent listening since Nov. 2017\n",
"1.32 minutes/day\n"
]
},
{
"data": {
2021-05-06 16:19:44 +01:00
"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>acousticness</th>\n",
" <th>danceability</th>\n",
" <th>duration_ms</th>\n",
" <th>energy</th>\n",
" <th>instrumentalness</th>\n",
" <th>key</th>\n",
" <th>liveness</th>\n",
" <th>loudness</th>\n",
" <th>mode</th>\n",
" <th>speechiness</th>\n",
" <th>tempo</th>\n",
" <th>time_signature</th>\n",
" <th>valence</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>0.235808</td>\n",
" <td>0.514851</td>\n",
" <td>209165.501144</td>\n",
" <td>0.700108</td>\n",
" <td>0.000498</td>\n",
" <td>5.306636</td>\n",
" <td>0.400828</td>\n",
" <td>-8.853126</td>\n",
" <td>0.560641</td>\n",
" <td>0.318519</td>\n",
" <td>109.820730</td>\n",
" <td>3.981693</td>\n",
" <td>0.499444</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>0.210592</td>\n",
" <td>0.085053</td>\n",
" <td>68305.827980</td>\n",
" <td>0.090924</td>\n",
" <td>0.001615</td>\n",
" <td>4.180808</td>\n",
" <td>0.196045</td>\n",
" <td>1.101856</td>\n",
" <td>0.496878</td>\n",
" <td>0.126598</td>\n",
" <td>34.338501</td>\n",
" <td>0.134211</td>\n",
" <td>0.188996</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>0.010700</td>\n",
" <td>0.388000</td>\n",
" <td>48507.000000</td>\n",
" <td>0.494000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.123000</td>\n",
" <td>-11.561000</td>\n",
" <td>0.000000</td>\n",
" <td>0.089200</td>\n",
" <td>81.302000</td>\n",
" <td>3.000000</td>\n",
" <td>0.167000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.049700</td>\n",
" <td>0.427000</td>\n",
" <td>183320.000000</td>\n",
" <td>0.604000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.161000</td>\n",
" <td>-9.636000</td>\n",
" <td>0.000000</td>\n",
" <td>0.203000</td>\n",
" <td>89.060000</td>\n",
" <td>4.000000</td>\n",
" <td>0.391000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>0.180000</td>\n",
" <td>0.528000</td>\n",
" <td>211187.000000</td>\n",
" <td>0.715000</td>\n",
" <td>0.000000</td>\n",
" <td>4.000000</td>\n",
" <td>0.389000</td>\n",
" <td>-8.561000</td>\n",
" <td>1.000000</td>\n",
" <td>0.321000</td>\n",
" <td>91.546000</td>\n",
" <td>4.000000</td>\n",
" <td>0.494000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>0.261000</td>\n",
" <td>0.588000</td>\n",
" <td>226520.000000</td>\n",
" <td>0.790000</td>\n",
" <td>0.000277</td>\n",
" <td>11.000000</td>\n",
" <td>0.624000</td>\n",
" <td>-8.336000</td>\n",
" <td>1.000000</td>\n",
" <td>0.420000</td>\n",
" <td>118.965000</td>\n",
" <td>4.000000</td>\n",
" <td>0.628000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>0.904000</td>\n",
" <td>0.676000</td>\n",
" <td>513707.000000</td>\n",
" <td>0.821000</td>\n",
" <td>0.008230</td>\n",
" <td>11.000000</td>\n",
" <td>0.796000</td>\n",
" <td>-5.834000</td>\n",
" <td>1.000000</td>\n",
" <td>0.549000</td>\n",
" <td>180.392000</td>\n",
" <td>4.000000</td>\n",
" <td>0.879000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" acousticness danceability duration_ms energy instrumentalness \\\n",
2021-05-06 16:19:44 +01:00
"mean 0.235808 0.514851 209165.501144 0.700108 0.000498 \n",
"std 0.210592 0.085053 68305.827980 0.090924 0.001615 \n",
"min 0.010700 0.388000 48507.000000 0.494000 0.000000 \n",
"25% 0.049700 0.427000 183320.000000 0.604000 0.000000 \n",
"50% 0.180000 0.528000 211187.000000 0.715000 0.000000 \n",
"75% 0.261000 0.588000 226520.000000 0.790000 0.000277 \n",
"max 0.904000 0.676000 513707.000000 0.821000 0.008230 \n",
"\n",
2021-02-04 13:34:25 +00:00
" key liveness loudness mode speechiness tempo \\\n",
2021-05-06 16:19:44 +01:00
"mean 5.306636 0.400828 -8.853126 0.560641 0.318519 109.820730 \n",
"std 4.180808 0.196045 1.101856 0.496878 0.126598 34.338501 \n",
"min 0.000000 0.123000 -11.561000 0.000000 0.089200 81.302000 \n",
"25% 1.000000 0.161000 -9.636000 0.000000 0.203000 89.060000 \n",
"50% 4.000000 0.389000 -8.561000 1.000000 0.321000 91.546000 \n",
"75% 11.000000 0.624000 -8.336000 1.000000 0.420000 118.965000 \n",
"max 11.000000 0.796000 -5.834000 1.000000 0.549000 180.392000 \n",
"\n",
" time_signature valence \n",
2021-05-06 16:19:44 +01:00
"mean 3.981693 0.499444 \n",
"std 0.134211 0.188996 \n",
"min 3.000000 0.167000 \n",
"25% 4.000000 0.391000 \n",
"50% 4.000000 0.494000 \n",
"75% 4.000000 0.628000 \n",
"max 4.000000 0.879000 "
]
},
2021-05-06 16:19:44 +01:00
"execution_count": 5,
"metadata": {},
2021-05-06 16:19:44 +01:00
"output_type": "execute_result"
}
],
"source": [
2021-05-06 16:19:44 +01:00
"album_name = \"piñata\".lower()\n",
"album_frame = scrobbles[scrobbles[\"album\"].str.lower() == album_name]# FILTER SCROBBLES\n",
"album_frame = album_frame.sort_index(ascending=False) # SORT\n",
"# album_frame = album_frame.loc[:, descriptor_headers] # DESCRIPTORS\n",
"\n",
"total_time = album_frame[\"duration_ms\"].sum() / (1000 * 60) # minutes\n",
"total_days = total_time / (60 * 24) # days\n",
"print(f'{album_frame.count()[0]:,d} scrobbles')\n",
"print(f'{total_days:.0f} days spent listening since Nov. 2017')\n",
"print(f'{total_time / days_since(first_day).days:.2f} minutes/day')\n",
"\n",
"album_frame.describe()[1:]"
]
},
{
"cell_type": "code",
2021-05-06 16:19:44 +01:00
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
2021-05-06 16:19:44 +01:00
"image/png": "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
"text/plain": [
"<Figure size 720x480 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
2021-05-06 16:19:44 +01:00
},
"output_type": "display_data"
}
],
"source": [
"filtered_album = scrobbles[scrobbles[\"album\"].str.lower() == album_name]\n",
"# resample by day and mean\n",
"filtered_album = filtered_album.resample(\"3W\").count()\n",
"\n",
"filtered_album[\"energy\"].plot()\n",
"\n",
"plt.title(f\"{album_name} Scrobbles\")\n",
"plt.grid()\n",
"plt.show()"
]
},
2021-02-04 13:34:25 +00:00
{
2021-05-06 16:19:44 +01:00
"cell_type": "markdown",
"metadata": {},
2021-02-04 13:34:25 +00:00
"source": [
"## Average Descriptor\n",
"\n",
"Below presents the average descriptor for the album. \"*All Listened Tracks*\" describes the descriptor based on the listening activity for this album. This takes into account how many times a track is listened to. \"*Distinct Tracks*\" takes only the distinct set of tracks that have been listened to and takes that average.\n",
"\n",
"The difference between them could be described as which features are preferred for an album. If the blue bar is higher than the red, it would indicate that tracks from this album which have a higher value for this are listened to more. "
2021-05-06 16:19:44 +01:00
]
2021-02-04 13:34:25 +00:00
},
{
"cell_type": "code",
2021-05-06 16:19:44 +01:00
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
2021-05-06 16:19:44 +01:00
"image/png": "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
"text/plain": [
"<Figure size 720x480 with 1 Axes>"
]
2021-02-04 13:34:25 +00:00
},
"metadata": {
"needs_background": "light"
2021-05-06 16:19:44 +01:00
},
"output_type": "display_data"
2021-02-04 13:34:25 +00:00
}
],
"source": [
"filtered_album = scrobbles[scrobbles[\"album\"].str.lower() == album_name]\n",
"filtered_album_no_dup = filtered_album.drop_duplicates(['uri'])\n",
"\n",
"filtered_album_no_dup = filtered_album_no_dup.loc[:, float_headers].mean()\n",
"filtered_album_dup = filtered_album.loc[:, float_headers].mean()\n",
"\n",
"x = np.arange(len(float_headers))\n",
"width = 0.35\n",
"plt.bar(x - width/2, filtered_album_no_dup, width, label='All Listened Tracks')\n",
"plt.bar(x + width/2, filtered_album_dup, width, label='Distinct Tracks', color=(1, 0, 0))\n",
"\n",
"plt.title(f\"{album_name} Average Descriptor\")\n",
"plt.legend(['All Listened Tracks', 'Distinct Tracks'])\n",
"plt.xticks(x, labels=[i[:6] for i in float_headers])\n",
"plt.ylim([0, 1])\n",
"plt.grid(axis='y')\n",
"plt.show()"
]
},
{
"cell_type": "code",
2021-05-06 16:19:44 +01:00
"execution_count": 8,
2021-02-04 13:34:25 +00:00
"metadata": {},
"outputs": [
{
"data": {
2021-05-06 16:19:44 +01:00
"image/png": "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
"text/plain": [
"<Figure size 720x480 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
2021-05-06 16:19:44 +01:00
},
"output_type": "display_data"
}
],
"source": [
"filtered_album = scrobbles[scrobbles[\"album\"].str.lower() == album_name]\n",
"# select only descriptor float columns\n",
"filtered_album = filtered_album.loc[:, float_headers]\n",
"# resample by day and mean\n",
"filtered_album = filtered_album.resample(\"1M\").mean()\n",
"\n",
"# filtered_album[\"energy\"].plot()\n",
2021-02-04 13:34:25 +00:00
"filtered_album.plot(lw=3)\n",
"\n",
"plt.title(f\"{album_name} Characteristics Over Time\")\n",
"plt.legend(loc = \"upper left\", fontsize = \"xx-small\")\n",
"plt.ylim([0, 1])\n",
"plt.grid()\n",
"plt.show()"
]
},
{
2021-05-06 16:19:44 +01:00
"cell_type": "markdown",
"metadata": {},
"source": [
"# Album Listening Time"
2021-05-06 16:19:44 +01:00
]
},
{
"cell_type": "code",
2021-05-06 16:19:44 +01:00
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"limit = 50\n",
"albums = fmnet.top_albums(period=fmnet.Range.OVERALL, limit=limit)\n",
"\n",
"filtered_albums = [scrobbles[scrobbles[\"album\"] == i.name] for i in albums]\n",
"\n",
"### STATS ###\n",
"# total time listening to artists \n",
"albums_time = [i[\"duration_ms\"].sum() for i in filtered_albums]\n",
"# total number of tracks\n",
"albums_track_count = np.array([i.drop_duplicates([\"uri\"]).count()[0] for i in filtered_albums])\n",
"# average length of artist's tracks (ms)\n",
"albums_average_track_length = np.array([i.drop_duplicates([\"uri\"])[\"duration_ms\"].mean() for i in filtered_albums])\n",
"\n",
"fig_size = (7,(5/20)*limit)"
]
},
{
"cell_type": "code",
2021-05-06 16:19:44 +01:00
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
2021-05-06 16:19:44 +01:00
"image/png": "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
"text/plain": [
"<Figure size 840x1500 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
2021-05-06 16:19:44 +01:00
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=fig_size)\n",
"plt.barh(np.arange(len(albums))[::-1], np.array(albums_time) / (1000 * 60 * 60) )\n",
"plt.yticks(np.arange(len(albums))[::-1], labels=[f'{i.name}, {i.artist[\"name\"]}' for i in albums])\n",
"plt.xlabel(\"Time (Hours)\")\n",
"plt.grid(axis=\"x\")\n",
"plt.title(\"Time Listened (Since Nov 17)\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
2021-05-06 16:19:44 +01:00
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
2021-05-06 16:19:44 +01:00
"image/png": "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
"text/plain": [
"<Figure size 840x1500 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
2021-05-06 16:19:44 +01:00
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=fig_size)\n",
"plt.barh(np.arange(len(albums))[::-1], np.array(albums_time) / (albums_track_count * albums_average_track_length) )\n",
"plt.yticks(np.arange(len(albums))[::-1], labels=[f'{i.name}, {i.artist[\"name\"]}' for i in albums])\n",
"plt.xlabel(\"Average plays per song\")\n",
"plt.grid(axis=\"x\")\n",
"plt.title(\"Normalised listening time\")\n",
"plt.show()"
]
},
{
2021-05-06 16:19:44 +01:00
"cell_type": "markdown",
"metadata": {},
"source": [
"# Imports & Setup"
2021-05-06 16:19:44 +01:00
]
},
{
"cell_type": "code",
2021-05-06 16:19:44 +01:00
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from datetime import datetime\n",
"\n",
"from google.cloud import bigquery\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib as mpl\n",
"mpl.rcParams['figure.dpi'] = 120\n",
"\n",
"from analysis.net import get_spotnet, get_fmnet, get_playlist, track_frame\n",
"from analysis.query import *\n",
"from analysis import float_headers, days_since\n",
"\n",
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"client = bigquery.Client()\n",
"spotnet = get_spotnet()\n",
"fmnet = get_fmnet()\n",
"cache = 'query.csv'\n",
"first_day = datetime(year=2017, month=11, day=3)"
]
},
{
2021-05-06 16:19:44 +01:00
"cell_type": "markdown",
"metadata": {},
"source": [
"## Read Scrobble Frame"
2021-05-06 16:19:44 +01:00
]
},
{
"cell_type": "code",
2021-02-04 13:34:25 +00:00
"execution_count": 3,
"metadata": {},
2021-05-06 16:19:44 +01:00
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"query.csv not found, pulling\n"
]
}
],
"source": [
"scrobbles = get_query(cache=cache)"
]
},
{
2021-05-06 16:19:44 +01:00
"cell_type": "markdown",
"metadata": {},
"source": [
"## Write Scrobble Frame"
2021-05-06 16:19:44 +01:00
]
},
{
"cell_type": "code",
2021-05-06 16:19:44 +01:00
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"scrobbles.reset_index().to_csv(cache, sep='\\t')"
]
2021-05-06 16:19:44 +01:00
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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"
}
2021-05-06 16:19:44 +01:00
},
"nbformat": 4,
"nbformat_minor": 4
}