--- /dev/null
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Sad songs<a name=\"top\"></a>\n",
+ "\n",
+ "This is a replication of the [fitteR happieR](http://rcharlie.com/2017-02-16-fitteR-happieR/) post which attempted to find the most depressing Radiohead song.\n",
+ "\n",
+ "I've redone it here, using tools available in TM351.\n",
+ "\n",
+ "I'm also on a bit of a Beatles jag, so I've also done the analysis for Beatles songs.\n",
+ "\n",
+ "http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0115255#s5\n",
+ "https://www.discogs.com/developers/#page:database,header:database-artist-releases\n",
+ "http://data.discogs.com/\n",
+ "\n",
+ "\n",
+ "## Contents\n",
+ "### Data gathering\n",
+ "\n",
+ "* [Getting data from Spotify](#getspotify)\n",
+ "* [Tag album with artist](#tagalbumwithartist)\n",
+ "* [Tag track with artist](#tagtrackwithartist)\n",
+ "* [Get full track data](#fulltrackdata)\n",
+ "* [Lyrics search](#lyricssearch)\n",
+ "\n",
+ "^^ Done\n",
+ "\n",
+ "vv Not done\n",
+ "\n",
+ "* [Matching datasets](#matchingdatasets)\n",
+ "* [Copy the lyrics over](#copylyrics)\n",
+ "* [Sentiment analysis](#sentimentanalysis)\n",
+ "\n",
+ "### Data analysis\n",
+ "* [Analysis](#analysis)\n",
+ "* [Sentiment](#sentiment)\n",
+ "* [Gloom index](#gloomindex)\n",
+ "* [Revised gloom index](#revisedgloomindex)\n",
+ "* [Contrasting songs](#valencenegcontrast)\n",
+ "* [Gloom per album](#gloomperalbum)\n",
+ "* [Complexity per album](#complexityovertime)\n",
+ "\n",
+ "### [Conclusion](#conclusion)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": true,
+ "run_control": {
+ "read_only": false
+ }
+ },
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import matplotlib\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline \n",
+ "import urllib.request\n",
+ "import urllib.parse\n",
+ "import urllib.error\n",
+ "import json\n",
+ "import base64\n",
+ "import configparser\n",
+ "from bs4 import BeautifulSoup\n",
+ "import re\n",
+ "import pymongo\n",
+ "from datetime import datetime\n",
+ "import time\n",
+ "import collections"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We'll use MongoDB to store the data, to save keeping it all in memory, and mean we don't have to recapture all the data to to a different analysis."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "# Open a connection to the Mongo server\n",
+ "client = pymongo.MongoClient('mongodb://localhost:27017/')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "try:\n",
+ " client.drop_database(songs_db)\n",
+ "except NameError:\n",
+ " print(\"DB doesn't exist yet.\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "# Create a database and a collections within it.\n",
+ "songs_db = client.songs\n",
+ "albums = songs_db.albums\n",
+ "tracks = songs_db.tracks\n",
+ "genius_tracks = songs_db.gtracks"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "API keys and the like are kept in a configuration file, which is read here.\n",
+ "\n",
+ "You'll need to create a web API key for Spotify and Genius. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['app_name', 'client_id', 'client_secret', 'redirect_uri', 'token']"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "config = configparser.ConfigParser()\n",
+ "config.read('secrets.ini')\n",
+ "[k for k in config['genius']]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "## How to write the config file. Fill in the details, and create a different config section for Spotify.\n",
+ "# config['genius'] = {}\n",
+ "# config['genius']['app_name'] = 'xxx'\n",
+ "# config['genius']['client_id'] = 'xxx'\n",
+ "# config['genius']['client_secret'] = 'xxx'\n",
+ "# config['genius']['token'] = 'xxx'\n",
+ "# with open('secrets.ini', 'w') as configfile:\n",
+ "# config.write(configfile)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Get album and track data from Spotify<a name='getspotify'></a>\n",
+ "We'll download the data on artists, albums, and tracks from Spotify.\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "def get_artists(artist_name):\n",
+ " query = urllib.parse.urlencode({'q': artist_name, 'type': 'artist'})\n",
+ " request = 'https://api.spotify.com/v1/search?{}'.format(query)\n",
+ " with urllib.request.urlopen(request) as f:\n",
+ " response = json.loads(f.read().decode('utf-8'))\n",
+ " artists = []\n",
+ " for artist in response['artists']['items']:\n",
+ " if artist['name'].lower() == artist_name.lower():\n",
+ " this_artist = {'name': artist['name'], 'id': artist['id']}\n",
+ " if artist['images']:\n",
+ " this_artist['image'] = artist['images'][0]['url']\n",
+ " artists += [this_artist]\n",
+ " return artists"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "('22bE4uQ6baNwSHPVcDxLCe',\n",
+ " [{'id': '22bE4uQ6baNwSHPVcDxLCe',\n",
+ " 'image': 'https://i.scdn.co/image/999fa985ec8beb68af356b1fc1bc3cd5ba3e0a68',\n",
+ " 'name': 'The Rolling Stones'}])"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "artists = get_artists('the rolling stones')\n",
+ "stones_id = artists[0]['id']\n",
+ "stones_id, artists"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "('3WrFJ7ztbogyGnTHbHJFl2',\n",
+ " [{'id': '3WrFJ7ztbogyGnTHbHJFl2',\n",
+ " 'image': 'https://i.scdn.co/image/934c57df9fbdbbaa5e93b55994a4cb9571fd2085',\n",
+ " 'name': 'The Beatles'}])"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "artists = get_artists('the beatles')\n",
+ "beatles_id = artists[0]['id']\n",
+ "beatles_id, artists"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Find all the albums for an artist."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "def get_albums(artist_id):\n",
+ " request = 'https://api.spotify.com/v1/artists/{id}/albums?market=GB&album_type=album'.format(id=artist_id)\n",
+ " with urllib.request.urlopen(request) as f:\n",
+ " response = json.loads(f.read().decode('utf-8'))\n",
+ " for a in response['items']:\n",
+ " album_request = a['href']\n",
+ " with urllib.request.urlopen(album_request) as af:\n",
+ " album = json.loads(af.read().decode('utf-8'))\n",
+ " album['_id'] = album['id']\n",
+ " albums.replace_one({'_id': album['_id']}, album, upsert=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "15"
+ ]
+ },
+ "execution_count": 41,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "get_albums(beatles_id)\n",
+ "albums.find().count()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "48"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "get_albums(stones_id)\n",
+ "albums.find().count()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>0</th>\n",
+ " <th>1</th>\n",
+ " <th>2</th>\n",
+ " <th>3</th>\n",
+ " <th>4</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>_id</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>2pCqZLeavM2BMovJXsJEIV</td>\n",
+ " <td>2Pqkn9Dq2DFtdfkKAeqgMd</td>\n",
+ " <td>47bcKzmKgmMPHXNVOWpLiu</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>album_type</th>\n",
+ " <td>album</td>\n",
+ " <td>album</td>\n",
+ " <td>album</td>\n",
+ " <td>album</td>\n",
+ " <td>album</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>artists</th>\n",
+ " <td>[{'href': 'https://api.spotify.com/v1/artists/...</td>\n",
+ " <td>[{'href': 'https://api.spotify.com/v1/artists/...</td>\n",
+ " <td>[{'href': 'https://api.spotify.com/v1/artists/...</td>\n",
+ " <td>[{'href': 'https://api.spotify.com/v1/artists/...</td>\n",
+ " <td>[{'href': 'https://api.spotify.com/v1/artists/...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>available_markets</th>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>copyrights</th>\n",
+ " <td>[{'text': '(C) 2016 Apple Corps Ltd.', 'type':...</td>\n",
+ " <td>[{'text': '(C) 2015 Apple Corps Ltd.', 'type':...</td>\n",
+ " <td>[{'text': '(C) 2015 Apple Corps Ltd', 'type': ...</td>\n",
+ " <td>[{'text': '(C) 2015 Apple Corps Ltd', 'type': ...</td>\n",
+ " <td>[{'text': '(C) 2015 Apple Corps Ltd', 'type': ...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>external_ids</th>\n",
+ " <td>{'upc': '00602557054989'}</td>\n",
+ " <td>{'upc': '00602547673503'}</td>\n",
+ " <td>{'upc': '00602547670069'}</td>\n",
+ " <td>{'upc': '00602547670342'}</td>\n",
+ " <td>{'upc': '00602547670328'}</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>external_urls</th>\n",
+ " <td>{'spotify': 'https://open.spotify.com/album/5X...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/album/5j...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/album/2p...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/album/2P...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/album/47...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>genres</th>\n",
+ " <td>[]</td>\n",
+ " <td>[]</td>\n",
+ " <td>[]</td>\n",
+ " <td>[]</td>\n",
+ " <td>[]</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>href</th>\n",
+ " <td>https://api.spotify.com/v1/albums/5XfJmldgWzrc...</td>\n",
+ " <td>https://api.spotify.com/v1/albums/5ju5Ouzan3Qw...</td>\n",
+ " <td>https://api.spotify.com/v1/albums/2pCqZLeavM2B...</td>\n",
+ " <td>https://api.spotify.com/v1/albums/2Pqkn9Dq2DFt...</td>\n",
+ " <td>https://api.spotify.com/v1/albums/47bcKzmKgmMP...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>id</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>2pCqZLeavM2BMovJXsJEIV</td>\n",
+ " <td>2Pqkn9Dq2DFtdfkKAeqgMd</td>\n",
+ " <td>47bcKzmKgmMPHXNVOWpLiu</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>images</th>\n",
+ " <td>[{'height': 640, 'url': 'https://i.scdn.co/ima...</td>\n",
+ " <td>[{'height': 640, 'url': 'https://i.scdn.co/ima...</td>\n",
+ " <td>[{'height': 640, 'url': 'https://i.scdn.co/ima...</td>\n",
+ " <td>[{'height': 640, 'url': 'https://i.scdn.co/ima...</td>\n",
+ " <td>[{'height': 640, 'url': 'https://i.scdn.co/ima...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>label</th>\n",
+ " <td>Digital Distribution Trinidad and Tobago</td>\n",
+ " <td>Digital Distribution Trinidad and Tobago</td>\n",
+ " <td>EMI Catalogue</td>\n",
+ " <td>EMI Catalogue</td>\n",
+ " <td>EMI Catalogue</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>name</th>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>Let It Be (Remastered)</td>\n",
+ " <td>Abbey Road (Remastered)</td>\n",
+ " <td>Yellow Submarine (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>popularity</th>\n",
+ " <td>63</td>\n",
+ " <td>77</td>\n",
+ " <td>68</td>\n",
+ " <td>75</td>\n",
+ " <td>58</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>release_date</th>\n",
+ " <td>2016-09-09</td>\n",
+ " <td>2000-11-13</td>\n",
+ " <td>1970-05-08</td>\n",
+ " <td>1969-09-26</td>\n",
+ " <td>1969-01-17</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>release_date_precision</th>\n",
+ " <td>day</td>\n",
+ " <td>day</td>\n",
+ " <td>day</td>\n",
+ " <td>day</td>\n",
+ " <td>day</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>tracks</th>\n",
+ " <td>{'limit': 50, 'previous': None, 'next': None, ...</td>\n",
+ " <td>{'limit': 50, 'previous': None, 'next': None, ...</td>\n",
+ " <td>{'limit': 50, 'previous': None, 'next': None, ...</td>\n",
+ " <td>{'limit': 50, 'previous': None, 'next': None, ...</td>\n",
+ " <td>{'limit': 50, 'previous': None, 'next': None, ...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>type</th>\n",
+ " <td>album</td>\n",
+ " <td>album</td>\n",
+ " <td>album</td>\n",
+ " <td>album</td>\n",
+ " <td>album</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>uri</th>\n",
+ " <td>spotify:album:5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>spotify:album:5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>spotify:album:2pCqZLeavM2BMovJXsJEIV</td>\n",
+ " <td>spotify:album:2Pqkn9Dq2DFtdfkKAeqgMd</td>\n",
+ " <td>spotify:album:47bcKzmKgmMPHXNVOWpLiu</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " 0 \\\n",
+ "_id 5XfJmldgWzrc1AIdbBaVZn \n",
+ "album_type album \n",
+ "artists [{'href': 'https://api.spotify.com/v1/artists/... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "copyrights [{'text': '(C) 2016 Apple Corps Ltd.', 'type':... \n",
+ "external_ids {'upc': '00602557054989'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/album/5X... \n",
+ "genres [] \n",
+ "href https://api.spotify.com/v1/albums/5XfJmldgWzrc... \n",
+ "id 5XfJmldgWzrc1AIdbBaVZn \n",
+ "images [{'height': 640, 'url': 'https://i.scdn.co/ima... \n",
+ "label Digital Distribution Trinidad and Tobago \n",
+ "name Live At The Hollywood Bowl \n",
+ "popularity 63 \n",
+ "release_date 2016-09-09 \n",
+ "release_date_precision day \n",
+ "tracks {'limit': 50, 'previous': None, 'next': None, ... \n",
+ "type album \n",
+ "uri spotify:album:5XfJmldgWzrc1AIdbBaVZn \n",
+ "\n",
+ " 1 \\\n",
+ "_id 5ju5Ouzan3QwXqQt1Tihbh \n",
+ "album_type album \n",
+ "artists [{'href': 'https://api.spotify.com/v1/artists/... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "copyrights [{'text': '(C) 2015 Apple Corps Ltd.', 'type':... \n",
+ "external_ids {'upc': '00602547673503'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/album/5j... \n",
+ "genres [] \n",
+ "href https://api.spotify.com/v1/albums/5ju5Ouzan3Qw... \n",
+ "id 5ju5Ouzan3QwXqQt1Tihbh \n",
+ "images [{'height': 640, 'url': 'https://i.scdn.co/ima... \n",
+ "label Digital Distribution Trinidad and Tobago \n",
+ "name 1 (Remastered) \n",
+ "popularity 77 \n",
+ "release_date 2000-11-13 \n",
+ "release_date_precision day \n",
+ "tracks {'limit': 50, 'previous': None, 'next': None, ... \n",
+ "type album \n",
+ "uri spotify:album:5ju5Ouzan3QwXqQt1Tihbh \n",
+ "\n",
+ " 2 \\\n",
+ "_id 2pCqZLeavM2BMovJXsJEIV \n",
+ "album_type album \n",
+ "artists [{'href': 'https://api.spotify.com/v1/artists/... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "copyrights [{'text': '(C) 2015 Apple Corps Ltd', 'type': ... \n",
+ "external_ids {'upc': '00602547670069'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/album/2p... \n",
+ "genres [] \n",
+ "href https://api.spotify.com/v1/albums/2pCqZLeavM2B... \n",
+ "id 2pCqZLeavM2BMovJXsJEIV \n",
+ "images [{'height': 640, 'url': 'https://i.scdn.co/ima... \n",
+ "label EMI Catalogue \n",
+ "name Let It Be (Remastered) \n",
+ "popularity 68 \n",
+ "release_date 1970-05-08 \n",
+ "release_date_precision day \n",
+ "tracks {'limit': 50, 'previous': None, 'next': None, ... \n",
+ "type album \n",
+ "uri spotify:album:2pCqZLeavM2BMovJXsJEIV \n",
+ "\n",
+ " 3 \\\n",
+ "_id 2Pqkn9Dq2DFtdfkKAeqgMd \n",
+ "album_type album \n",
+ "artists [{'href': 'https://api.spotify.com/v1/artists/... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "copyrights [{'text': '(C) 2015 Apple Corps Ltd', 'type': ... \n",
+ "external_ids {'upc': '00602547670342'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/album/2P... \n",
+ "genres [] \n",
+ "href https://api.spotify.com/v1/albums/2Pqkn9Dq2DFt... \n",
+ "id 2Pqkn9Dq2DFtdfkKAeqgMd \n",
+ "images [{'height': 640, 'url': 'https://i.scdn.co/ima... \n",
+ "label EMI Catalogue \n",
+ "name Abbey Road (Remastered) \n",
+ "popularity 75 \n",
+ "release_date 1969-09-26 \n",
+ "release_date_precision day \n",
+ "tracks {'limit': 50, 'previous': None, 'next': None, ... \n",
+ "type album \n",
+ "uri spotify:album:2Pqkn9Dq2DFtdfkKAeqgMd \n",
+ "\n",
+ " 4 \n",
+ "_id 47bcKzmKgmMPHXNVOWpLiu \n",
+ "album_type album \n",
+ "artists [{'href': 'https://api.spotify.com/v1/artists/... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "copyrights [{'text': '(C) 2015 Apple Corps Ltd', 'type': ... \n",
+ "external_ids {'upc': '00602547670328'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/album/47... \n",
+ "genres [] \n",
+ "href https://api.spotify.com/v1/albums/47bcKzmKgmMP... \n",
+ "id 47bcKzmKgmMPHXNVOWpLiu \n",
+ "images [{'height': 640, 'url': 'https://i.scdn.co/ima... \n",
+ "label EMI Catalogue \n",
+ "name Yellow Submarine (Remastered) \n",
+ "popularity 58 \n",
+ "release_date 1969-01-17 \n",
+ "release_date_precision day \n",
+ "tracks {'limit': 50, 'previous': None, 'next': None, ... \n",
+ "type album \n",
+ "uri spotify:album:47bcKzmKgmMPHXNVOWpLiu "
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pd.DataFrame(list(albums.find())).head().T"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Tag albums with artists<a name=\"tagalbumwithartist\"></a>\n",
+ "As we have tracks for two artists, let's keep the identification easy and insert the artist name and id into each track document.\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "for a in albums.find({}, ['artists']):\n",
+ " albums.update_one({'_id': a['_id']}, \n",
+ " {'$set': {'artist_name': a['artists'][0]['name'],\n",
+ " 'artist_id': a['artists'][0]['id']}})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>name</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>2pCqZLeavM2BMovJXsJEIV</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Let It Be (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>3</th>\n",
+ " <td>2Pqkn9Dq2DFtdfkKAeqgMd</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Abbey Road (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>47bcKzmKgmMPHXNVOWpLiu</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Yellow Submarine (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>5</th>\n",
+ " <td>03Qh833fEdVT30Pfs93ea6</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>6</th>\n",
+ " <td>6P9yO0ukhOx3dvmhGKeYoC</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Magical Mystery Tour (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>7</th>\n",
+ " <td>1PULmKbHeOqlkIwcDMNwD4</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Sgt. Pepper's Lonely Hearts Club Band (Remaste...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>8</th>\n",
+ " <td>0PYyrqs9NXtxPhf0CZkq2L</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Revolver (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>9</th>\n",
+ " <td>3OdI6e43crvyAHhaqpxSyz</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Rubber Soul (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>10</th>\n",
+ " <td>19K3IHYeVkUTjcBHGfbCOi</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Help! (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>11</th>\n",
+ " <td>7BgGBZndAvDlKOcwe5rscZ</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Beatles For Sale (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>12</th>\n",
+ " <td>71Mwd9tntFQYUk4k2DwA0D</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>A Hard Day's Night (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>13</th>\n",
+ " <td>1DBkJIEoeHrTX4WCBQGcCi</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>The King Of Limbs</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>14</th>\n",
+ " <td>3nkEsxmIX0zRNXGAexaHAn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>With The Beatles (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>15</th>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Please Please Me (Remastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>16</th>\n",
+ " <td>6vuykQgDLUCiZ7YggIpLM9</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>A Moon Shaped Pool</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>17</th>\n",
+ " <td>47xaqCsJcYFWqD1gwujl1T</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>TKOL RMX 1234567</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>18</th>\n",
+ " <td>7eyQXxuf2nGj9d2367Gi5f</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>In Rainbows</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>19</th>\n",
+ " <td>36lJLPoPPOKNFddTAcirnc</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>In Rainbows Disk 2</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>20</th>\n",
+ " <td>6Eo5EkmdLvZrONzi046iC2</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Com Lag: 2+2=5</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>21</th>\n",
+ " <td>1oW3v5Har9mvXnGk0x4fHm</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Hail To the Thief</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>22</th>\n",
+ " <td>6svTt5o2lUgIrgYDKVmdnD</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>I Might Be Wrong</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>23</th>\n",
+ " <td>6V9YnBmFjWmXCBaUVRCVXP</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Amnesiac</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>24</th>\n",
+ " <td>19RUXBFyM4PpmrLRdtqWbp</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Kid A</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>25</th>\n",
+ " <td>7dxKtc08dYeRVHt3p9CZJn</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>OK Computer</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>26</th>\n",
+ " <td>500FEaUzn8lN9zWFyZG5C2</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>The Bends</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>27</th>\n",
+ " <td>6400dnyeDyD2mIFHfkwHXN</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Pablo Honey</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>28</th>\n",
+ " <td>4g9Jfls8z2nbQxj5PiXkiy</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Blue & Lonesome</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>29</th>\n",
+ " <td>4fhWcu56Bbh5wALuTouFVW</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Havana Moon (Live)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>30</th>\n",
+ " <td>3PbRKFafwE7Of8e4dTee72</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Totally Stripped (Live)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>31</th>\n",
+ " <td>5eTqRwTGKPBUiUuN1rFaXD</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Live 1965: Music From Charlie Is My Darling (L...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>32</th>\n",
+ " <td>3CHu7qW160uqPZHW3TMZ1l</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Shine A Light</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>33</th>\n",
+ " <td>4FTHynKEtuP7eppERNfjyG</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>A Bigger Bang (2009 Re-Mastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>34</th>\n",
+ " <td>50UGtgNA5bq1c0BDjPfmbD</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Live Licks</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>35</th>\n",
+ " <td>0ZGddnvcVzHVHfE3WW1tV5</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Bridges To Babylon (2009 Re-Mastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>36</th>\n",
+ " <td>4M8Q1L9PZq0xK5tLUpO3jd</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Stripped</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>37</th>\n",
+ " <td>62ZT16LY1phGM0O8x5qW1z</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Voodoo Lounge (2009 Re-Mastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>38</th>\n",
+ " <td>1W1UJulgICjFDyYIMUwRs7</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Flashpoint</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>39</th>\n",
+ " <td>25mfHGJNQkluvIqedXHSx3</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Steel Wheels (2009 Re-Mastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>40</th>\n",
+ " <td>1TpcI1LEFVhBvDPSTMPGFG</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Dirty Work</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>41</th>\n",
+ " <td>1WSfNoPDPzgyKFN6OSYWUx</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Dirty Work (Remastered 2009)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>42</th>\n",
+ " <td>064eFGemsrDcMvgRZ0gqtw</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Undercover (2009 Re-Mastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>43</th>\n",
+ " <td>0hxrNynMDh5QeyALlf1CdS</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Still Life</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>44</th>\n",
+ " <td>1YvnuYGlblQ5vLnOhaZzpn</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Tattoo You (2009 Re-Mastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>45</th>\n",
+ " <td>2wZgoXS06wSdu9C0ZJOvlc</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Emotional Rescue (2009 Re-Mastered)</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>46</th>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Some Girls</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>47</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name \\\n",
+ "0 5XfJmldgWzrc1AIdbBaVZn The Beatles \n",
+ "1 5ju5Ouzan3QwXqQt1Tihbh The Beatles \n",
+ "2 2pCqZLeavM2BMovJXsJEIV The Beatles \n",
+ "3 2Pqkn9Dq2DFtdfkKAeqgMd The Beatles \n",
+ "4 47bcKzmKgmMPHXNVOWpLiu The Beatles \n",
+ "5 03Qh833fEdVT30Pfs93ea6 The Beatles \n",
+ "6 6P9yO0ukhOx3dvmhGKeYoC The Beatles \n",
+ "7 1PULmKbHeOqlkIwcDMNwD4 The Beatles \n",
+ "8 0PYyrqs9NXtxPhf0CZkq2L The Beatles \n",
+ "9 3OdI6e43crvyAHhaqpxSyz The Beatles \n",
+ "10 19K3IHYeVkUTjcBHGfbCOi The Beatles \n",
+ "11 7BgGBZndAvDlKOcwe5rscZ The Beatles \n",
+ "12 71Mwd9tntFQYUk4k2DwA0D The Beatles \n",
+ "13 1DBkJIEoeHrTX4WCBQGcCi Radiohead \n",
+ "14 3nkEsxmIX0zRNXGAexaHAn The Beatles \n",
+ "15 7gDXyW16byCQOgK965BRzn The Beatles \n",
+ "16 6vuykQgDLUCiZ7YggIpLM9 Radiohead \n",
+ "17 47xaqCsJcYFWqD1gwujl1T Radiohead \n",
+ "18 7eyQXxuf2nGj9d2367Gi5f Radiohead \n",
+ "19 36lJLPoPPOKNFddTAcirnc Radiohead \n",
+ "20 6Eo5EkmdLvZrONzi046iC2 Radiohead \n",
+ "21 1oW3v5Har9mvXnGk0x4fHm Radiohead \n",
+ "22 6svTt5o2lUgIrgYDKVmdnD Radiohead \n",
+ "23 6V9YnBmFjWmXCBaUVRCVXP Radiohead \n",
+ "24 19RUXBFyM4PpmrLRdtqWbp Radiohead \n",
+ "25 7dxKtc08dYeRVHt3p9CZJn Radiohead \n",
+ "26 500FEaUzn8lN9zWFyZG5C2 Radiohead \n",
+ "27 6400dnyeDyD2mIFHfkwHXN Radiohead \n",
+ "28 4g9Jfls8z2nbQxj5PiXkiy The Rolling Stones \n",
+ "29 4fhWcu56Bbh5wALuTouFVW The Rolling Stones \n",
+ "30 3PbRKFafwE7Of8e4dTee72 The Rolling Stones \n",
+ "31 5eTqRwTGKPBUiUuN1rFaXD The Rolling Stones \n",
+ "32 3CHu7qW160uqPZHW3TMZ1l The Rolling Stones \n",
+ "33 4FTHynKEtuP7eppERNfjyG The Rolling Stones \n",
+ "34 50UGtgNA5bq1c0BDjPfmbD The Rolling Stones \n",
+ "35 0ZGddnvcVzHVHfE3WW1tV5 The Rolling Stones \n",
+ "36 4M8Q1L9PZq0xK5tLUpO3jd The Rolling Stones \n",
+ "37 62ZT16LY1phGM0O8x5qW1z The Rolling Stones \n",
+ "38 1W1UJulgICjFDyYIMUwRs7 The Rolling Stones \n",
+ "39 25mfHGJNQkluvIqedXHSx3 The Rolling Stones \n",
+ "40 1TpcI1LEFVhBvDPSTMPGFG The Rolling Stones \n",
+ "41 1WSfNoPDPzgyKFN6OSYWUx The Rolling Stones \n",
+ "42 064eFGemsrDcMvgRZ0gqtw The Rolling Stones \n",
+ "43 0hxrNynMDh5QeyALlf1CdS The Rolling Stones \n",
+ "44 1YvnuYGlblQ5vLnOhaZzpn The Rolling Stones \n",
+ "45 2wZgoXS06wSdu9C0ZJOvlc The Rolling Stones \n",
+ "46 54sqbAXxR1jFfyXb1WvrHK The Rolling Stones \n",
+ "47 6FjXxl9VLURGuubdXUn2J3 The Rolling Stones \n",
+ "\n",
+ " name \n",
+ "0 Live At The Hollywood Bowl \n",
+ "1 1 (Remastered) \n",
+ "2 Let It Be (Remastered) \n",
+ "3 Abbey Road (Remastered) \n",
+ "4 Yellow Submarine (Remastered) \n",
+ "5 The Beatles (Remastered) \n",
+ "6 Magical Mystery Tour (Remastered) \n",
+ "7 Sgt. Pepper's Lonely Hearts Club Band (Remaste... \n",
+ "8 Revolver (Remastered) \n",
+ "9 Rubber Soul (Remastered) \n",
+ "10 Help! (Remastered) \n",
+ "11 Beatles For Sale (Remastered) \n",
+ "12 A Hard Day's Night (Remastered) \n",
+ "13 The King Of Limbs \n",
+ "14 With The Beatles (Remastered) \n",
+ "15 Please Please Me (Remastered) \n",
+ "16 A Moon Shaped Pool \n",
+ "17 TKOL RMX 1234567 \n",
+ "18 In Rainbows \n",
+ "19 In Rainbows Disk 2 \n",
+ "20 Com Lag: 2+2=5 \n",
+ "21 Hail To the Thief \n",
+ "22 I Might Be Wrong \n",
+ "23 Amnesiac \n",
+ "24 Kid A \n",
+ "25 OK Computer \n",
+ "26 The Bends \n",
+ "27 Pablo Honey \n",
+ "28 Blue & Lonesome \n",
+ "29 Havana Moon (Live) \n",
+ "30 Totally Stripped (Live) \n",
+ "31 Live 1965: Music From Charlie Is My Darling (L... \n",
+ "32 Shine A Light \n",
+ "33 A Bigger Bang (2009 Re-Mastered) \n",
+ "34 Live Licks \n",
+ "35 Bridges To Babylon (2009 Re-Mastered) \n",
+ "36 Stripped \n",
+ "37 Voodoo Lounge (2009 Re-Mastered) \n",
+ "38 Flashpoint \n",
+ "39 Steel Wheels (2009 Re-Mastered) \n",
+ "40 Dirty Work \n",
+ "41 Dirty Work (Remastered 2009) \n",
+ "42 Undercover (2009 Re-Mastered) \n",
+ "43 Still Life \n",
+ "44 Tattoo You (2009 Re-Mastered) \n",
+ "45 Emotional Rescue (2009 Re-Mastered) \n",
+ "46 Some Girls \n",
+ "47 Some Girls (Deluxe Version) "
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pd.DataFrame(list(albums.find({}, ['name', 'artist_name'])))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "According to the [Spotify documentation](https://developer.spotify.com/web-api/object-model/#track-object), some objects returned have only a bit of the data, and contain a `href` field for where to find the rest. The track details in the album documents fit that bill, so let's find the full track information.\n",
+ "\n",
+ "While doing this, not that Spotify will rate-limit the requests, so we have to include a loop to respect the timeout and retry the requests after the appropriate time."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "def get_tracks(album_id):\n",
+ " album = albums.find_one({'_id': album_id})\n",
+ " for t in album['tracks']['items']:\n",
+ " for _ in range(10):\n",
+ " try:\n",
+ " with urllib.request.urlopen(t['href']) as f:\n",
+ " track = json.loads(f.read().decode('utf-8'))\n",
+ " track['_id'] = track['id']\n",
+ " track['album_id'] = album_id\n",
+ " tracks.replace_one({'_id': track['_id']}, track, upsert=True)\n",
+ " break\n",
+ " except urllib.error.HTTPError as e:\n",
+ " print(\"Rate limited. Pausing for\", e.info()['Retry-After'])\n",
+ " time.sleep(int(e.info()['Retry-After']) + 0.5)\n",
+ " continue"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Rate limited. Pausing for 4\n",
+ "Rate limited. Pausing for 4\n",
+ "Rate limited. Pausing for 4\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "383"
+ ]
+ },
+ "execution_count": 45,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "for album in albums.find():\n",
+ " get_tracks(album['_id'])\n",
+ "tracks.find().count()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Rate limited. Pausing for 4\n",
+ "Rate limited. Pausing for 3\n",
+ "Rate limited. Pausing for 0\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "671"
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "for album in albums.find({'artist_id': stones_id}):\n",
+ " get_tracks(album['_id'])\n",
+ "tracks.find().count()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>0</th>\n",
+ " <th>1</th>\n",
+ " <th>2</th>\n",
+ " <th>3</th>\n",
+ " <th>4</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>_id</th>\n",
+ " <td>1lLK53LFXWvPzPYtlJIvt0</td>\n",
+ " <td>0TWa6TQFWHSG5QdSWuTMve</td>\n",
+ " <td>74tlMxJ8wF0sNp93GBEPdK</td>\n",
+ " <td>0Za26pWVLQpKfXmb9FX10S</td>\n",
+ " <td>6295nz7PVXm49Ihqwm39Ew</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>acousticness</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>album</th>\n",
+ " <td>{'name': 'Totally Stripped (Live)', 'type': 'a...</td>\n",
+ " <td>{'name': 'Totally Stripped (Live)', 'type': 'a...</td>\n",
+ " <td>{'name': 'Totally Stripped (Live)', 'type': 'a...</td>\n",
+ " <td>{'name': 'Some Girls', 'type': 'album', 'artis...</td>\n",
+ " <td>{'name': 'Some Girls', 'type': 'album', 'artis...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>album_id</th>\n",
+ " <td>3PbRKFafwE7Of8e4dTee72</td>\n",
+ " <td>3PbRKFafwE7Of8e4dTee72</td>\n",
+ " <td>3PbRKFafwE7Of8e4dTee72</td>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>analysis_url</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>artist_id</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>artist_name</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>artists</th>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>available_markets</th>\n",
+ " <td>[GB]</td>\n",
+ " <td>[GB]</td>\n",
+ " <td>[GB]</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>complexity</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>ctitle</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>danceability</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>disc_number</th>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>duration_ms</th>\n",
+ " <td>305280</td>\n",
+ " <td>240333</td>\n",
+ " <td>293773</td>\n",
+ " <td>187440</td>\n",
+ " <td>204960</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>energy</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>explicit</th>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>external_ids</th>\n",
+ " <td>{'isrc': 'GBCBR1500394'}</td>\n",
+ " <td>{'isrc': 'GBCBR1500393'}</td>\n",
+ " <td>{'isrc': 'GBCBR1500392'}</td>\n",
+ " <td>{'isrc': 'GBCJN7800007'}</td>\n",
+ " <td>{'isrc': 'GBCJN7800008'}</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>external_urls</th>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/1l...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/0T...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/74...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/0Z...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/62...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>gloom</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>href</th>\n",
+ " <td>https://api.spotify.com/v1/tracks/1lLK53LFXWvP...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/0TWa6TQFWHSG...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/74tlMxJ8wF0s...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/0Za26pWVLQpK...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6295nz7PVXm4...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>id</th>\n",
+ " <td>1lLK53LFXWvPzPYtlJIvt0</td>\n",
+ " <td>0TWa6TQFWHSG5QdSWuTMve</td>\n",
+ " <td>74tlMxJ8wF0sNp93GBEPdK</td>\n",
+ " <td>0Za26pWVLQpKfXmb9FX10S</td>\n",
+ " <td>6295nz7PVXm49Ihqwm39Ew</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>instrumentalness</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>key</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>liveness</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>loudness</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>lyrical_density</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>lyrics</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>mode</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>name</th>\n",
+ " <td>Faraway Eyes - Live</td>\n",
+ " <td>Dead Flowers - Live</td>\n",
+ " <td>Honky Tonk Women - Live</td>\n",
+ " <td>Respectable - Remastered</td>\n",
+ " <td>Before They Make Me Run - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>original_lyrics</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>popularity</th>\n",
+ " <td>15</td>\n",
+ " <td>17</td>\n",
+ " <td>18</td>\n",
+ " <td>30</td>\n",
+ " <td>25</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>preview_url</th>\n",
+ " <td>https://p.scdn.co/mp3-preview/5afdaabfa28e067f...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/e3900e8c4200974d...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/671f51874a70b3f7...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/f5e932d9acc6a359...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/ee5832b597975b27...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>sentiment</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>speechiness</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>tempo</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>time_signature</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>track_href</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>track_number</th>\n",
+ " <td>4</td>\n",
+ " <td>3</td>\n",
+ " <td>2</td>\n",
+ " <td>7</td>\n",
+ " <td>8</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>type</th>\n",
+ " <td>track</td>\n",
+ " <td>track</td>\n",
+ " <td>track</td>\n",
+ " <td>track</td>\n",
+ " <td>track</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>uri</th>\n",
+ " <td>spotify:track:1lLK53LFXWvPzPYtlJIvt0</td>\n",
+ " <td>spotify:track:0TWa6TQFWHSG5QdSWuTMve</td>\n",
+ " <td>spotify:track:74tlMxJ8wF0sNp93GBEPdK</td>\n",
+ " <td>spotify:track:0Za26pWVLQpKfXmb9FX10S</td>\n",
+ " <td>spotify:track:6295nz7PVXm49Ihqwm39Ew</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>valence</th>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " 0 \\\n",
+ "_id 1lLK53LFXWvPzPYtlJIvt0 \n",
+ "acousticness NaN \n",
+ "album {'name': 'Totally Stripped (Live)', 'type': 'a... \n",
+ "album_id 3PbRKFafwE7Of8e4dTee72 \n",
+ "analysis_url NaN \n",
+ "artist_id NaN \n",
+ "artist_name NaN \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [GB] \n",
+ "complexity NaN \n",
+ "ctitle NaN \n",
+ "danceability NaN \n",
+ "disc_number 1 \n",
+ "duration_ms 305280 \n",
+ "energy NaN \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBCBR1500394'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/1l... \n",
+ "gloom NaN \n",
+ "href https://api.spotify.com/v1/tracks/1lLK53LFXWvP... \n",
+ "id 1lLK53LFXWvPzPYtlJIvt0 \n",
+ "instrumentalness NaN \n",
+ "key NaN \n",
+ "liveness NaN \n",
+ "loudness NaN \n",
+ "lyrical_density NaN \n",
+ "lyrics NaN \n",
+ "mode NaN \n",
+ "name Faraway Eyes - Live \n",
+ "original_lyrics NaN \n",
+ "popularity 15 \n",
+ "preview_url https://p.scdn.co/mp3-preview/5afdaabfa28e067f... \n",
+ "sentiment NaN \n",
+ "speechiness NaN \n",
+ "tempo NaN \n",
+ "time_signature NaN \n",
+ "track_href NaN \n",
+ "track_number 4 \n",
+ "type track \n",
+ "uri spotify:track:1lLK53LFXWvPzPYtlJIvt0 \n",
+ "valence NaN \n",
+ "\n",
+ " 1 \\\n",
+ "_id 0TWa6TQFWHSG5QdSWuTMve \n",
+ "acousticness NaN \n",
+ "album {'name': 'Totally Stripped (Live)', 'type': 'a... \n",
+ "album_id 3PbRKFafwE7Of8e4dTee72 \n",
+ "analysis_url NaN \n",
+ "artist_id NaN \n",
+ "artist_name NaN \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [GB] \n",
+ "complexity NaN \n",
+ "ctitle NaN \n",
+ "danceability NaN \n",
+ "disc_number 1 \n",
+ "duration_ms 240333 \n",
+ "energy NaN \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBCBR1500393'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/0T... \n",
+ "gloom NaN \n",
+ "href https://api.spotify.com/v1/tracks/0TWa6TQFWHSG... \n",
+ "id 0TWa6TQFWHSG5QdSWuTMve \n",
+ "instrumentalness NaN \n",
+ "key NaN \n",
+ "liveness NaN \n",
+ "loudness NaN \n",
+ "lyrical_density NaN \n",
+ "lyrics NaN \n",
+ "mode NaN \n",
+ "name Dead Flowers - Live \n",
+ "original_lyrics NaN \n",
+ "popularity 17 \n",
+ "preview_url https://p.scdn.co/mp3-preview/e3900e8c4200974d... \n",
+ "sentiment NaN \n",
+ "speechiness NaN \n",
+ "tempo NaN \n",
+ "time_signature NaN \n",
+ "track_href NaN \n",
+ "track_number 3 \n",
+ "type track \n",
+ "uri spotify:track:0TWa6TQFWHSG5QdSWuTMve \n",
+ "valence NaN \n",
+ "\n",
+ " 2 \\\n",
+ "_id 74tlMxJ8wF0sNp93GBEPdK \n",
+ "acousticness NaN \n",
+ "album {'name': 'Totally Stripped (Live)', 'type': 'a... \n",
+ "album_id 3PbRKFafwE7Of8e4dTee72 \n",
+ "analysis_url NaN \n",
+ "artist_id NaN \n",
+ "artist_name NaN \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [GB] \n",
+ "complexity NaN \n",
+ "ctitle NaN \n",
+ "danceability NaN \n",
+ "disc_number 1 \n",
+ "duration_ms 293773 \n",
+ "energy NaN \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBCBR1500392'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/74... \n",
+ "gloom NaN \n",
+ "href https://api.spotify.com/v1/tracks/74tlMxJ8wF0s... \n",
+ "id 74tlMxJ8wF0sNp93GBEPdK \n",
+ "instrumentalness NaN \n",
+ "key NaN \n",
+ "liveness NaN \n",
+ "loudness NaN \n",
+ "lyrical_density NaN \n",
+ "lyrics NaN \n",
+ "mode NaN \n",
+ "name Honky Tonk Women - Live \n",
+ "original_lyrics NaN \n",
+ "popularity 18 \n",
+ "preview_url https://p.scdn.co/mp3-preview/671f51874a70b3f7... \n",
+ "sentiment NaN \n",
+ "speechiness NaN \n",
+ "tempo NaN \n",
+ "time_signature NaN \n",
+ "track_href NaN \n",
+ "track_number 2 \n",
+ "type track \n",
+ "uri spotify:track:74tlMxJ8wF0sNp93GBEPdK \n",
+ "valence NaN \n",
+ "\n",
+ " 3 \\\n",
+ "_id 0Za26pWVLQpKfXmb9FX10S \n",
+ "acousticness NaN \n",
+ "album {'name': 'Some Girls', 'type': 'album', 'artis... \n",
+ "album_id 54sqbAXxR1jFfyXb1WvrHK \n",
+ "analysis_url NaN \n",
+ "artist_id NaN \n",
+ "artist_name NaN \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity NaN \n",
+ "ctitle NaN \n",
+ "danceability NaN \n",
+ "disc_number 1 \n",
+ "duration_ms 187440 \n",
+ "energy NaN \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBCJN7800007'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/0Z... \n",
+ "gloom NaN \n",
+ "href https://api.spotify.com/v1/tracks/0Za26pWVLQpK... \n",
+ "id 0Za26pWVLQpKfXmb9FX10S \n",
+ "instrumentalness NaN \n",
+ "key NaN \n",
+ "liveness NaN \n",
+ "loudness NaN \n",
+ "lyrical_density NaN \n",
+ "lyrics NaN \n",
+ "mode NaN \n",
+ "name Respectable - Remastered \n",
+ "original_lyrics NaN \n",
+ "popularity 30 \n",
+ "preview_url https://p.scdn.co/mp3-preview/f5e932d9acc6a359... \n",
+ "sentiment NaN \n",
+ "speechiness NaN \n",
+ "tempo NaN \n",
+ "time_signature NaN \n",
+ "track_href NaN \n",
+ "track_number 7 \n",
+ "type track \n",
+ "uri spotify:track:0Za26pWVLQpKfXmb9FX10S \n",
+ "valence NaN \n",
+ "\n",
+ " 4 \n",
+ "_id 6295nz7PVXm49Ihqwm39Ew \n",
+ "acousticness NaN \n",
+ "album {'name': 'Some Girls', 'type': 'album', 'artis... \n",
+ "album_id 54sqbAXxR1jFfyXb1WvrHK \n",
+ "analysis_url NaN \n",
+ "artist_id NaN \n",
+ "artist_name NaN \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity NaN \n",
+ "ctitle NaN \n",
+ "danceability NaN \n",
+ "disc_number 1 \n",
+ "duration_ms 204960 \n",
+ "energy NaN \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBCJN7800008'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/62... \n",
+ "gloom NaN \n",
+ "href https://api.spotify.com/v1/tracks/6295nz7PVXm4... \n",
+ "id 6295nz7PVXm49Ihqwm39Ew \n",
+ "instrumentalness NaN \n",
+ "key NaN \n",
+ "liveness NaN \n",
+ "loudness NaN \n",
+ "lyrical_density NaN \n",
+ "lyrics NaN \n",
+ "mode NaN \n",
+ "name Before They Make Me Run - Remastered \n",
+ "original_lyrics NaN \n",
+ "popularity 25 \n",
+ "preview_url https://p.scdn.co/mp3-preview/ee5832b597975b27... \n",
+ "sentiment NaN \n",
+ "speechiness NaN \n",
+ "tempo NaN \n",
+ "time_signature NaN \n",
+ "track_href NaN \n",
+ "track_number 8 \n",
+ "type track \n",
+ "uri spotify:track:6295nz7PVXm49Ihqwm39Ew \n",
+ "valence NaN "
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pd.DataFrame(list(tracks.find())).head().T"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'_id': '4edArG2VehvJdwOZfYOxtK'}"
+ ]
+ },
+ "execution_count": 49,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tracks.find_one({}, 'album.id')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Tag tracks with artist<a name=\"tagtrackwithartist\"></a>\n",
+ "Again, make an easy tag for the artist of each track.\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "for t in tracks.find({}, ['artists']):\n",
+ " for a in t['artists']:\n",
+ " if a['id'] in [beatles_id, stones_id]:\n",
+ " tracks.update_one({'_id': t['_id']}, \n",
+ " {'$set': {'artist_name': a['name'],\n",
+ " 'artist_id': a['id']}})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'Duke Ellington',\n",
+ " 'George Martin',\n",
+ " 'Jimi Hendrix',\n",
+ " 'Radiohead',\n",
+ " 'The Beatles',\n",
+ " 'The Rolling Stones'}"
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "set(t['artist_name'] for t in tracks.find({}))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>album_id</th>\n",
+ " <th>album_name</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>track_id</th>\n",
+ " <th>track_name</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>4edArG2VehvJdwOZfYOxtK</td>\n",
+ " <td>Twist And Shout - Live / Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>150EAeMGWJRubuH8zyx7h8</td>\n",
+ " <td>She's A Woman - Live / Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1fVeHYkyMxrjbjRAD9uWsZ</td>\n",
+ " <td>Dizzy Miss Lizzy - Live / Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>3</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0GRplBEB2FWCKutwMmS6nY</td>\n",
+ " <td>Ticket To Ride - Live / Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1eVymk74iroqhsZxm0Vy3g</td>\n",
+ " <td>Can't Buy Me Love - Live / Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>5</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>2p5a9gu6NECVSvBtGSU1vm</td>\n",
+ " <td>Things We Said Today - Live / Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>6</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1HyLh5cctOnP186CBi8bhm</td>\n",
+ " <td>Roll Over Beethoven - Live / Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>7</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>7fZEWm7TAL2oZDyiYrrgnk</td>\n",
+ " <td>Boys - Live / Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>8</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>21nhooOxso7CCoHPE73w4L</td>\n",
+ " <td>A Hard Day's Night - Live / Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>9</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1alcPfZWUHh01l4Fnoo5Jt</td>\n",
+ " <td>Help! - Live / Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>10</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>24gUDXSQysdnTaRpbWtYlK</td>\n",
+ " <td>All My Loving - Live / Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>11</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>2VmFFbXSJzYxzEJSAeI0lM</td>\n",
+ " <td>She Loves You - Live / Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>12</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>6b8lhQ86u5MddlmXulslpD</td>\n",
+ " <td>Long Tall Sally - Live / Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>13</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1oKfZ5MTCSrv07hsHqJ0JS</td>\n",
+ " <td>You Can't Do That - Live / Bonus Track</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>14</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>04gBqA2mubcTgFqL9Domlj</td>\n",
+ " <td>I Want To Hold Your Hand - Live / Bonus Track</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>15</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>79QDgDoBbS7pCrOjIH7ByA</td>\n",
+ " <td>Everybody’s Trying To Be My Baby - Live / Bonu...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>16</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1yV2I5c6efVSqSiuv9H2AD</td>\n",
+ " <td>Baby's In Black - Live / Bonus Track</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>17</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>5JT7CoUSGNk7mMNkHMQjqr</td>\n",
+ " <td>Love Me Do - Mono / Remastered 2015</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>18</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>2Q2Gu7Bv8iLenuygtBgDUw</td>\n",
+ " <td>From Me To You - Mono / Remastered 2015</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>19</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>2Fk411Ix3qnMG8t8Qa74ZX</td>\n",
+ " <td>She Loves You - Mono / Remastered 2015</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>20</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>4DRBaZ760gyk7LWnaJFqsJ</td>\n",
+ " <td>I Want To Hold Your Hand - Remastered 2015</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>21</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>7pQAq14Z73YUFMtxCyt0bG</td>\n",
+ " <td>Can't Buy Me Love - Remastered 2015</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>22</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0mNQUZEATk2uItMUtiLWK5</td>\n",
+ " <td>A Hard Day's Night - Remastered 2015</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>23</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0Gm34HBxrXlaAf1jdJMjx2</td>\n",
+ " <td>I Feel Fine - Remastered 2015</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>24</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>3nhJDVdUrm6DnDW4iBfpKz</td>\n",
+ " <td>Eight Days A Week - Remastered 2015</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>25</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>6pkjW5srxjzRSKKMrl7et8</td>\n",
+ " <td>Ticket To Ride - Remastered 2015</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>26</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1dfuJYDSIc41cw5RPsaCF1</td>\n",
+ " <td>Help! - Remastered 2015</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>27</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>63uskN0xLezVg4281wzeQn</td>\n",
+ " <td>Yesterday - Remastered 2015</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>28</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0vXGSlE4ft3n5JHZMHHSIj</td>\n",
+ " <td>Day Tripper - Remastered 2015</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>29</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0Lckblu9CJUXOeMV0XY3b9</td>\n",
+ " <td>We Can Work It Out - Remastered 2015</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>...</th>\n",
+ " <td>...</td>\n",
+ " <td>...</td>\n",
+ " <td>...</td>\n",
+ " <td>...</td>\n",
+ " <td>...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>641</th>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>Some Girls</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>5ZesVHq9Nox8YjOR1kCpbN</td>\n",
+ " <td>Just My Imagination (Running Away With Me) - R...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>642</th>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>Some Girls</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>6hLpp90qMxG3TMvMzwJsiQ</td>\n",
+ " <td>Some Girls - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>643</th>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>Some Girls</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>3WqR7lRoHEvG0ExkAqBkPj</td>\n",
+ " <td>Lies - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>644</th>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>Some Girls</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>06PEXSCNl8Xwf2633TdNnx</td>\n",
+ " <td>Far Away Eyes - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>645</th>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>Some Girls</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>0Za26pWVLQpKfXmb9FX10S</td>\n",
+ " <td>Respectable - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>646</th>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>Some Girls</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>6295nz7PVXm49Ihqwm39Ew</td>\n",
+ " <td>Before They Make Me Run - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>647</th>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>Some Girls</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>0832Tptls5YicHPGgw7ssP</td>\n",
+ " <td>Beast Of Burden - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>648</th>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>Some Girls</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>6yq33zsqWCd8cYXQdtAFZ9</td>\n",
+ " <td>Shattered - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>649</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>5pTWpY8l7B1XcQnijEFGFj</td>\n",
+ " <td>Miss You - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>650</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>4E8qFhiuYAWEYYAsYIf4dW</td>\n",
+ " <td>When The Whip Comes Down - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>651</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>7sDQlyQACyT7mNHFwwEMI7</td>\n",
+ " <td>Just My Imagination (Running Away With Me) - R...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>652</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>48bJ1sWhJKdB8M43uqi924</td>\n",
+ " <td>Some Girls - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>653</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>6362zAWHGgbrQaoeCFZpuO</td>\n",
+ " <td>Lies - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>654</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>4RlD0KvoqPZy5n9Zi76X9l</td>\n",
+ " <td>Far Away Eyes - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>655</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>33PXyHrkIHxp6PBVPlQGx7</td>\n",
+ " <td>Respectable - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>656</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>7vsPbFinz35mfQO5d6oL0l</td>\n",
+ " <td>Before They Make Me Run - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>657</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>7pfVe0VrMK5QhTaAYzkuYn</td>\n",
+ " <td>Beast Of Burden - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>658</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>2giRM7RrP6utWLAb8jnFFk</td>\n",
+ " <td>Shattered - Remastered</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>659</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>1V25DJ3ghDJs8m58jbVMbf</td>\n",
+ " <td>Claudine</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>660</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>3rNTjyvxae83nJCLMxoVSW</td>\n",
+ " <td>So Young</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>661</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>5oAcuuY504M7eDCln5Xq89</td>\n",
+ " <td>Do You Think I Really Care</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>662</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>1ZBnd9Z80QPQ58BaL5OWlP</td>\n",
+ " <td>When You're Gone</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>663</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>624njB7Ny3mlA46QokEin9</td>\n",
+ " <td>No Spare Parts</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>664</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>0WpZfMNsNhiEJ8RSLyjElp</td>\n",
+ " <td>Don't Be A Stranger</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>665</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>0Baq94uZKy4pPvnc40xjPX</td>\n",
+ " <td>We Had It All</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>666</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>4oOU3GgiZblheOI9JUmM1f</td>\n",
+ " <td>Tallahassee Lassie</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>667</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>4LW3JaAze7gF8DpPBb2zzl</td>\n",
+ " <td>I Love You Too Much</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>668</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>4LSyTg4sm3N99Pcckw9zjf</td>\n",
+ " <td>Keep Up Blues</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>669</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>3u06WsJ1KtvEqmmmZqy76J</td>\n",
+ " <td>You Win Again</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>670</th>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>Some Girls (Deluxe Version)</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>7DgRvvPcJlxks2lNpudsuT</td>\n",
+ " <td>Petrol Blues</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "<p>671 rows × 5 columns</p>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " album_id album_name artist_name \\\n",
+ "0 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "1 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "2 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "3 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "4 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "5 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "6 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "7 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "8 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "9 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "10 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "11 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "12 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "13 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "14 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "15 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "16 5XfJmldgWzrc1AIdbBaVZn Live At The Hollywood Bowl The Beatles \n",
+ "17 5ju5Ouzan3QwXqQt1Tihbh 1 (Remastered) The Beatles \n",
+ "18 5ju5Ouzan3QwXqQt1Tihbh 1 (Remastered) The Beatles \n",
+ "19 5ju5Ouzan3QwXqQt1Tihbh 1 (Remastered) The Beatles \n",
+ "20 5ju5Ouzan3QwXqQt1Tihbh 1 (Remastered) The Beatles \n",
+ "21 5ju5Ouzan3QwXqQt1Tihbh 1 (Remastered) The Beatles \n",
+ "22 5ju5Ouzan3QwXqQt1Tihbh 1 (Remastered) The Beatles \n",
+ "23 5ju5Ouzan3QwXqQt1Tihbh 1 (Remastered) The Beatles \n",
+ "24 5ju5Ouzan3QwXqQt1Tihbh 1 (Remastered) The Beatles \n",
+ "25 5ju5Ouzan3QwXqQt1Tihbh 1 (Remastered) The Beatles \n",
+ "26 5ju5Ouzan3QwXqQt1Tihbh 1 (Remastered) The Beatles \n",
+ "27 5ju5Ouzan3QwXqQt1Tihbh 1 (Remastered) The Beatles \n",
+ "28 5ju5Ouzan3QwXqQt1Tihbh 1 (Remastered) The Beatles \n",
+ "29 5ju5Ouzan3QwXqQt1Tihbh 1 (Remastered) The Beatles \n",
+ ".. ... ... ... \n",
+ "641 54sqbAXxR1jFfyXb1WvrHK Some Girls The Rolling Stones \n",
+ "642 54sqbAXxR1jFfyXb1WvrHK Some Girls The Rolling Stones \n",
+ "643 54sqbAXxR1jFfyXb1WvrHK Some Girls The Rolling Stones \n",
+ "644 54sqbAXxR1jFfyXb1WvrHK Some Girls The Rolling Stones \n",
+ "645 54sqbAXxR1jFfyXb1WvrHK Some Girls The Rolling Stones \n",
+ "646 54sqbAXxR1jFfyXb1WvrHK Some Girls The Rolling Stones \n",
+ "647 54sqbAXxR1jFfyXb1WvrHK Some Girls The Rolling Stones \n",
+ "648 54sqbAXxR1jFfyXb1WvrHK Some Girls The Rolling Stones \n",
+ "649 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "650 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "651 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "652 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "653 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "654 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "655 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "656 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "657 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "658 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "659 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "660 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "661 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "662 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "663 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "664 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "665 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "666 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "667 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "668 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "669 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "670 6FjXxl9VLURGuubdXUn2J3 Some Girls (Deluxe Version) The Rolling Stones \n",
+ "\n",
+ " track_id track_name \n",
+ "0 4edArG2VehvJdwOZfYOxtK Twist And Shout - Live / Remastered \n",
+ "1 150EAeMGWJRubuH8zyx7h8 She's A Woman - Live / Remastered \n",
+ "2 1fVeHYkyMxrjbjRAD9uWsZ Dizzy Miss Lizzy - Live / Remastered \n",
+ "3 0GRplBEB2FWCKutwMmS6nY Ticket To Ride - Live / Remastered \n",
+ "4 1eVymk74iroqhsZxm0Vy3g Can't Buy Me Love - Live / Remastered \n",
+ "5 2p5a9gu6NECVSvBtGSU1vm Things We Said Today - Live / Remastered \n",
+ "6 1HyLh5cctOnP186CBi8bhm Roll Over Beethoven - Live / Remastered \n",
+ "7 7fZEWm7TAL2oZDyiYrrgnk Boys - Live / Remastered \n",
+ "8 21nhooOxso7CCoHPE73w4L A Hard Day's Night - Live / Remastered \n",
+ "9 1alcPfZWUHh01l4Fnoo5Jt Help! - Live / Remastered \n",
+ "10 24gUDXSQysdnTaRpbWtYlK All My Loving - Live / Remastered \n",
+ "11 2VmFFbXSJzYxzEJSAeI0lM She Loves You - Live / Remastered \n",
+ "12 6b8lhQ86u5MddlmXulslpD Long Tall Sally - Live / Remastered \n",
+ "13 1oKfZ5MTCSrv07hsHqJ0JS You Can't Do That - Live / Bonus Track \n",
+ "14 04gBqA2mubcTgFqL9Domlj I Want To Hold Your Hand - Live / Bonus Track \n",
+ "15 79QDgDoBbS7pCrOjIH7ByA Everybody’s Trying To Be My Baby - Live / Bonu... \n",
+ "16 1yV2I5c6efVSqSiuv9H2AD Baby's In Black - Live / Bonus Track \n",
+ "17 5JT7CoUSGNk7mMNkHMQjqr Love Me Do - Mono / Remastered 2015 \n",
+ "18 2Q2Gu7Bv8iLenuygtBgDUw From Me To You - Mono / Remastered 2015 \n",
+ "19 2Fk411Ix3qnMG8t8Qa74ZX She Loves You - Mono / Remastered 2015 \n",
+ "20 4DRBaZ760gyk7LWnaJFqsJ I Want To Hold Your Hand - Remastered 2015 \n",
+ "21 7pQAq14Z73YUFMtxCyt0bG Can't Buy Me Love - Remastered 2015 \n",
+ "22 0mNQUZEATk2uItMUtiLWK5 A Hard Day's Night - Remastered 2015 \n",
+ "23 0Gm34HBxrXlaAf1jdJMjx2 I Feel Fine - Remastered 2015 \n",
+ "24 3nhJDVdUrm6DnDW4iBfpKz Eight Days A Week - Remastered 2015 \n",
+ "25 6pkjW5srxjzRSKKMrl7et8 Ticket To Ride - Remastered 2015 \n",
+ "26 1dfuJYDSIc41cw5RPsaCF1 Help! - Remastered 2015 \n",
+ "27 63uskN0xLezVg4281wzeQn Yesterday - Remastered 2015 \n",
+ "28 0vXGSlE4ft3n5JHZMHHSIj Day Tripper - Remastered 2015 \n",
+ "29 0Lckblu9CJUXOeMV0XY3b9 We Can Work It Out - Remastered 2015 \n",
+ ".. ... ... \n",
+ "641 5ZesVHq9Nox8YjOR1kCpbN Just My Imagination (Running Away With Me) - R... \n",
+ "642 6hLpp90qMxG3TMvMzwJsiQ Some Girls - Remastered \n",
+ "643 3WqR7lRoHEvG0ExkAqBkPj Lies - Remastered \n",
+ "644 06PEXSCNl8Xwf2633TdNnx Far Away Eyes - Remastered \n",
+ "645 0Za26pWVLQpKfXmb9FX10S Respectable - Remastered \n",
+ "646 6295nz7PVXm49Ihqwm39Ew Before They Make Me Run - Remastered \n",
+ "647 0832Tptls5YicHPGgw7ssP Beast Of Burden - Remastered \n",
+ "648 6yq33zsqWCd8cYXQdtAFZ9 Shattered - Remastered \n",
+ "649 5pTWpY8l7B1XcQnijEFGFj Miss You - Remastered \n",
+ "650 4E8qFhiuYAWEYYAsYIf4dW When The Whip Comes Down - Remastered \n",
+ "651 7sDQlyQACyT7mNHFwwEMI7 Just My Imagination (Running Away With Me) - R... \n",
+ "652 48bJ1sWhJKdB8M43uqi924 Some Girls - Remastered \n",
+ "653 6362zAWHGgbrQaoeCFZpuO Lies - Remastered \n",
+ "654 4RlD0KvoqPZy5n9Zi76X9l Far Away Eyes - Remastered \n",
+ "655 33PXyHrkIHxp6PBVPlQGx7 Respectable - Remastered \n",
+ "656 7vsPbFinz35mfQO5d6oL0l Before They Make Me Run - Remastered \n",
+ "657 7pfVe0VrMK5QhTaAYzkuYn Beast Of Burden - Remastered \n",
+ "658 2giRM7RrP6utWLAb8jnFFk Shattered - Remastered \n",
+ "659 1V25DJ3ghDJs8m58jbVMbf Claudine \n",
+ "660 3rNTjyvxae83nJCLMxoVSW So Young \n",
+ "661 5oAcuuY504M7eDCln5Xq89 Do You Think I Really Care \n",
+ "662 1ZBnd9Z80QPQ58BaL5OWlP When You're Gone \n",
+ "663 624njB7Ny3mlA46QokEin9 No Spare Parts \n",
+ "664 0WpZfMNsNhiEJ8RSLyjElp Don't Be A Stranger \n",
+ "665 0Baq94uZKy4pPvnc40xjPX We Had It All \n",
+ "666 4oOU3GgiZblheOI9JUmM1f Tallahassee Lassie \n",
+ "667 4LW3JaAze7gF8DpPBb2zzl I Love You Too Much \n",
+ "668 4LSyTg4sm3N99Pcckw9zjf Keep Up Blues \n",
+ "669 3u06WsJ1KtvEqmmmZqy76J You Win Again \n",
+ "670 7DgRvvPcJlxks2lNpudsuT Petrol Blues \n",
+ "\n",
+ "[671 rows x 5 columns]"
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pd.DataFrame([{'album_id': a['id'], \n",
+ " 'album_name': a['name'],\n",
+ " 'track_id': t['id'],\n",
+ " 'track_name': t['name'],\n",
+ " 'artist_name': t['artist_name']}\n",
+ " for a in albums.find()\n",
+ " for tid in a['tracks']['items']\n",
+ " for t in tracks.find({'_id': tid['id']})])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Get full track data<a name=\"fulltrackdata\"></a>\n",
+ "The full audio analysis requires an API token to get the data. We use the client token to retreive an authorisation token, which will last for about ten minutes.\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def get_spotify_auth_token():\n",
+ " auth_url = 'https://accounts.spotify.com/api/token'\n",
+ " auth_data = urllib.parse.urlencode({'grant_type': 'client_credentials'}).encode('utf-8')\n",
+ " auth_id = base64.standard_b64encode((config['spotify']['client_id'] + \\\n",
+ " ':' + config['spotify']['client_secret']).encode('utf-8')).decode('utf-8)')\n",
+ " auth_headers = {'Authorization': 'Basic ' + auth_id}\n",
+ " auth_request = urllib.request.Request(auth_url, data=auth_data, headers=auth_headers)\n",
+ " with urllib.request.urlopen(auth_request) as f:\n",
+ " response = json.loads(f.read().decode('utf-8'))\n",
+ " return response['token_type'], response['access_token']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def get_audio_features(track_ids, auth_type, auth_token):\n",
+ " url = 'https://api.spotify.com/v1/audio-features?ids={ids}'.format(ids=','.join(track_ids))\n",
+ " headers = {'Authorization': auth_type + ' ' + auth_token}\n",
+ " request = urllib.request.Request(url, headers=headers, method='GET')\n",
+ " with urllib.request.urlopen(request) as f:\n",
+ " response = json.loads(f.read().decode('utf-8'))\n",
+ " for track in response['audio_features']:\n",
+ " tracks.update_one({'_id': track['id']}, {'$set': track})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "a_type, a_token = get_spotify_auth_token()\n",
+ "for a in albums.find({}, []):\n",
+ " track_ids = [t['_id'] for t in tracks.find({'album.id': a['_id']}, [])]\n",
+ " get_audio_features(track_ids, a_type, a_token)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>0</th>\n",
+ " <th>1</th>\n",
+ " <th>2</th>\n",
+ " <th>3</th>\n",
+ " <th>4</th>\n",
+ " <th>5</th>\n",
+ " <th>6</th>\n",
+ " <th>7</th>\n",
+ " <th>8</th>\n",
+ " <th>9</th>\n",
+ " <th>...</th>\n",
+ " <th>220</th>\n",
+ " <th>221</th>\n",
+ " <th>222</th>\n",
+ " <th>223</th>\n",
+ " <th>224</th>\n",
+ " <th>225</th>\n",
+ " <th>226</th>\n",
+ " <th>227</th>\n",
+ " <th>228</th>\n",
+ " <th>229</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>_id</th>\n",
+ " <td>2ucFulEWapRAmTn7l6f5Q7</td>\n",
+ " <td>2z1p43SNSbeowzy8WdYHNk</td>\n",
+ " <td>3ckvsHnEffhhS5c0Cs6Gv5</td>\n",
+ " <td>4edArG2VehvJdwOZfYOxtK</td>\n",
+ " <td>150EAeMGWJRubuH8zyx7h8</td>\n",
+ " <td>1fVeHYkyMxrjbjRAD9uWsZ</td>\n",
+ " <td>0GRplBEB2FWCKutwMmS6nY</td>\n",
+ " <td>1eVymk74iroqhsZxm0Vy3g</td>\n",
+ " <td>2p5a9gu6NECVSvBtGSU1vm</td>\n",
+ " <td>1HyLh5cctOnP186CBi8bhm</td>\n",
+ " <td>...</td>\n",
+ " <td>43feVCF6QfqIt9LnLs9BAH</td>\n",
+ " <td>3NwEPV9MDr1z3KcHiAuz9d</td>\n",
+ " <td>2Iccm3cKBQHWt5yk0yX9nh</td>\n",
+ " <td>2OLMjGIhCNI6j34ysPscbp</td>\n",
+ " <td>01n20rdBC5czKAhxmGREkr</td>\n",
+ " <td>5gnrZoSS7nbDYtHp32RFiI</td>\n",
+ " <td>5FBxWhG0nbBAF6lWgJFklM</td>\n",
+ " <td>6tEwCsVtZ5tI8uHNJSHQ3b</td>\n",
+ " <td>50jq8RgbDfmNNd0NiRnl4L</td>\n",
+ " <td>4Z1fbYp0HuxLBje4MOZcSD</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>acousticness</th>\n",
+ " <td>0.425</td>\n",
+ " <td>0.368</td>\n",
+ " <td>0.614</td>\n",
+ " <td>7.67e-05</td>\n",
+ " <td>0.00675</td>\n",
+ " <td>0.0131</td>\n",
+ " <td>0.00327</td>\n",
+ " <td>0.00865</td>\n",
+ " <td>0.0836</td>\n",
+ " <td>0.00242</td>\n",
+ " <td>...</td>\n",
+ " <td>0.607</td>\n",
+ " <td>0.767</td>\n",
+ " <td>0.334</td>\n",
+ " <td>0.386</td>\n",
+ " <td>0.389</td>\n",
+ " <td>0.778</td>\n",
+ " <td>0.608</td>\n",
+ " <td>0.698</td>\n",
+ " <td>0.629</td>\n",
+ " <td>0.641</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>album</th>\n",
+ " <td>{'type': 'album', 'name': 'The Beatles (Remast...</td>\n",
+ " <td>{'type': 'album', 'name': 'Magical Mystery Tou...</td>\n",
+ " <td>{'type': 'album', 'name': 'Beatles For Sale (R...</td>\n",
+ " <td>{'type': 'album', 'name': 'Live At The Hollywo...</td>\n",
+ " <td>{'type': 'album', 'name': 'Live At The Hollywo...</td>\n",
+ " <td>{'type': 'album', 'name': 'Live At The Hollywo...</td>\n",
+ " <td>{'type': 'album', 'name': 'Live At The Hollywo...</td>\n",
+ " <td>{'type': 'album', 'name': 'Live At The Hollywo...</td>\n",
+ " <td>{'type': 'album', 'name': 'Live At The Hollywo...</td>\n",
+ " <td>{'type': 'album', 'name': 'Live At The Hollywo...</td>\n",
+ " <td>...</td>\n",
+ " <td>{'type': 'album', 'name': 'Please Please Me (R...</td>\n",
+ " <td>{'type': 'album', 'name': 'Please Please Me (R...</td>\n",
+ " <td>{'type': 'album', 'name': 'Please Please Me (R...</td>\n",
+ " <td>{'type': 'album', 'name': 'Please Please Me (R...</td>\n",
+ " <td>{'type': 'album', 'name': 'Please Please Me (R...</td>\n",
+ " <td>{'type': 'album', 'name': 'Please Please Me (R...</td>\n",
+ " <td>{'type': 'album', 'name': 'Please Please Me (R...</td>\n",
+ " <td>{'type': 'album', 'name': 'Please Please Me (R...</td>\n",
+ " <td>{'type': 'album', 'name': 'Please Please Me (R...</td>\n",
+ " <td>{'type': 'album', 'name': 'Please Please Me (R...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>album_id</th>\n",
+ " <td>03Qh833fEdVT30Pfs93ea6</td>\n",
+ " <td>6P9yO0ukhOx3dvmhGKeYoC</td>\n",
+ " <td>7BgGBZndAvDlKOcwe5rscZ</td>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>...</td>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>analysis_url</th>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/2ucF...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/2z1p...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/3ckv...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/4edA...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/150E...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/1fVe...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/0GRp...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/1eVy...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/2p5a...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/1HyL...</td>\n",
+ " <td>...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/43fe...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/3NwE...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/2Icc...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/2OLM...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/01n2...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/5gnr...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/5FBx...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/6tEw...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/50jq...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/4Z1f...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>artist_id</th>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>...</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " <td>3WrFJ7ztbogyGnTHbHJFl2</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>artist_name</th>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>...</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>artists</th>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " <td>[{'name': 'The Beatles', 'type': 'artist', 'hr...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>available_markets</th>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>complexity</th>\n",
+ " <td>0.0598502</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>0.293946</td>\n",
+ " <td>0.316303</td>\n",
+ " <td>0.445783</td>\n",
+ " <td>0.334303</td>\n",
+ " <td>0.493981</td>\n",
+ " <td>0.24995</td>\n",
+ " <td>0.48621</td>\n",
+ " <td>...</td>\n",
+ " <td>0.445887</td>\n",
+ " <td>0.482092</td>\n",
+ " <td>0.589812</td>\n",
+ " <td>0.377007</td>\n",
+ " <td>0.266738</td>\n",
+ " <td>0.603643</td>\n",
+ " <td>0.355868</td>\n",
+ " <td>0.132842</td>\n",
+ " <td>0.604396</td>\n",
+ " <td>0.470913</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>ctitle</th>\n",
+ " <td>wild honey pie</td>\n",
+ " <td>flying</td>\n",
+ " <td>kansas city heyheyheyhey</td>\n",
+ " <td>twist and shout</td>\n",
+ " <td>shes a woman</td>\n",
+ " <td>dizzy miss lizzy</td>\n",
+ " <td>ticket to ride</td>\n",
+ " <td>cant buy me love</td>\n",
+ " <td>things we said today</td>\n",
+ " <td>roll over beethoven</td>\n",
+ " <td>...</td>\n",
+ " <td>boys</td>\n",
+ " <td>ask me why</td>\n",
+ " <td>please please me</td>\n",
+ " <td>love me do</td>\n",
+ " <td>ps i love you</td>\n",
+ " <td>baby its you</td>\n",
+ " <td>do you want to know a secret</td>\n",
+ " <td>a taste of honey</td>\n",
+ " <td>theres a place</td>\n",
+ " <td>twist and shout</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>danceability</th>\n",
+ " <td>0.792</td>\n",
+ " <td>0.551</td>\n",
+ " <td>0.588</td>\n",
+ " <td>0.311</td>\n",
+ " <td>0.188</td>\n",
+ " <td>0.406</td>\n",
+ " <td>0.39</td>\n",
+ " <td>0.2</td>\n",
+ " <td>0.307</td>\n",
+ " <td>0.204</td>\n",
+ " <td>...</td>\n",
+ " <td>0.402</td>\n",
+ " <td>0.605</td>\n",
+ " <td>0.527</td>\n",
+ " <td>0.52</td>\n",
+ " <td>0.635</td>\n",
+ " <td>0.608</td>\n",
+ " <td>0.673</td>\n",
+ " <td>0.42</td>\n",
+ " <td>0.455</td>\n",
+ " <td>0.482</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>disc_number</th>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>duration_ms</th>\n",
+ " <td>52973</td>\n",
+ " <td>135520</td>\n",
+ " <td>158147</td>\n",
+ " <td>93507</td>\n",
+ " <td>192053</td>\n",
+ " <td>219733</td>\n",
+ " <td>146240</td>\n",
+ " <td>134867</td>\n",
+ " <td>138733</td>\n",
+ " <td>134013</td>\n",
+ " <td>...</td>\n",
+ " <td>146440</td>\n",
+ " <td>146533</td>\n",
+ " <td>120853</td>\n",
+ " <td>141693</td>\n",
+ " <td>124360</td>\n",
+ " <td>160520</td>\n",
+ " <td>117013</td>\n",
+ " <td>123480</td>\n",
+ " <td>110493</td>\n",
+ " <td>155227</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>energy</th>\n",
+ " <td>0.763</td>\n",
+ " <td>0.395</td>\n",
+ " <td>0.724</td>\n",
+ " <td>0.822</td>\n",
+ " <td>0.885</td>\n",
+ " <td>0.867</td>\n",
+ " <td>0.779</td>\n",
+ " <td>0.849</td>\n",
+ " <td>0.637</td>\n",
+ " <td>0.808</td>\n",
+ " <td>...</td>\n",
+ " <td>0.86</td>\n",
+ " <td>0.394</td>\n",
+ " <td>0.48</td>\n",
+ " <td>0.829</td>\n",
+ " <td>0.656</td>\n",
+ " <td>0.494</td>\n",
+ " <td>0.349</td>\n",
+ " <td>0.372</td>\n",
+ " <td>0.582</td>\n",
+ " <td>0.849</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>explicit</th>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>...</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>external_ids</th>\n",
+ " <td>{'isrc': 'GBAYE0601648'}</td>\n",
+ " <td>{'isrc': 'GBAYE0601635'}</td>\n",
+ " <td>{'isrc': 'GBAYE0601457'}</td>\n",
+ " <td>{'isrc': 'GBUM71603960'}</td>\n",
+ " <td>{'isrc': 'GBUM71603957'}</td>\n",
+ " <td>{'isrc': 'GBUM71603952'}</td>\n",
+ " <td>{'isrc': 'GBUM71603959'}</td>\n",
+ " <td>{'isrc': 'GBUM71603951'}</td>\n",
+ " <td>{'isrc': 'GBUM71603958'}</td>\n",
+ " <td>{'isrc': 'GBUM71603955'}</td>\n",
+ " <td>...</td>\n",
+ " <td>{'isrc': 'GBAYE0601414'}</td>\n",
+ " <td>{'isrc': 'GBAYE0601415'}</td>\n",
+ " <td>{'isrc': 'GBAYE0601416'}</td>\n",
+ " <td>{'isrc': 'GBAYE0601417'}</td>\n",
+ " <td>{'isrc': 'GBAYE0601418'}</td>\n",
+ " <td>{'isrc': 'GBAYE0601419'}</td>\n",
+ " <td>{'isrc': 'GBAYE0601420'}</td>\n",
+ " <td>{'isrc': 'GBAYE0601421'}</td>\n",
+ " <td>{'isrc': 'GBAYE0601422'}</td>\n",
+ " <td>{'isrc': 'GBAYE0601423'}</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>external_urls</th>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/2u...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/2z...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/3c...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/4e...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/15...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/1f...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/0G...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/1e...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/2p...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/1H...</td>\n",
+ " <td>...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/43...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/3N...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/2I...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/2O...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/01...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/5g...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/5F...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/6t...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/50...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/4Z...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>gloom</th>\n",
+ " <td>0.417113</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>0.249954</td>\n",
+ " <td>0.230078</td>\n",
+ " <td>0.165566</td>\n",
+ " <td>0.371771</td>\n",
+ " <td>0.268628</td>\n",
+ " <td>0.308627</td>\n",
+ " <td>0.26165</td>\n",
+ " <td>...</td>\n",
+ " <td>0.141586</td>\n",
+ " <td>0.264411</td>\n",
+ " <td>0.288445</td>\n",
+ " <td>0.150082</td>\n",
+ " <td>0.135398</td>\n",
+ " <td>0.183832</td>\n",
+ " <td>0.221199</td>\n",
+ " <td>0.278706</td>\n",
+ " <td>0.121155</td>\n",
+ " <td>0.159095</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>href</th>\n",
+ " <td>https://api.spotify.com/v1/tracks/2ucFulEWapRA...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/2z1p43SNSbeo...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/3ckvsHnEffhh...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/4edArG2VehvJ...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/150EAeMGWJRu...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/1fVeHYkyMxrj...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/0GRplBEB2FWC...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/1eVymk74iroq...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/2p5a9gu6NECV...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/1HyLh5cctOnP...</td>\n",
+ " <td>...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/43feVCF6QfqI...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/3NwEPV9MDr1z...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/2Iccm3cKBQHW...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/2OLMjGIhCNI6...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/01n20rdBC5cz...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/5gnrZoSS7nbD...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/5FBxWhG0nbBA...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6tEwCsVtZ5tI...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/50jq8RgbDfmN...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/4Z1fbYp0HuxL...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>id</th>\n",
+ " <td>2ucFulEWapRAmTn7l6f5Q7</td>\n",
+ " <td>2z1p43SNSbeowzy8WdYHNk</td>\n",
+ " <td>3ckvsHnEffhhS5c0Cs6Gv5</td>\n",
+ " <td>4edArG2VehvJdwOZfYOxtK</td>\n",
+ " <td>150EAeMGWJRubuH8zyx7h8</td>\n",
+ " <td>1fVeHYkyMxrjbjRAD9uWsZ</td>\n",
+ " <td>0GRplBEB2FWCKutwMmS6nY</td>\n",
+ " <td>1eVymk74iroqhsZxm0Vy3g</td>\n",
+ " <td>2p5a9gu6NECVSvBtGSU1vm</td>\n",
+ " <td>1HyLh5cctOnP186CBi8bhm</td>\n",
+ " <td>...</td>\n",
+ " <td>43feVCF6QfqIt9LnLs9BAH</td>\n",
+ " <td>3NwEPV9MDr1z3KcHiAuz9d</td>\n",
+ " <td>2Iccm3cKBQHWt5yk0yX9nh</td>\n",
+ " <td>2OLMjGIhCNI6j34ysPscbp</td>\n",
+ " <td>01n20rdBC5czKAhxmGREkr</td>\n",
+ " <td>5gnrZoSS7nbDYtHp32RFiI</td>\n",
+ " <td>5FBxWhG0nbBAF6lWgJFklM</td>\n",
+ " <td>6tEwCsVtZ5tI8uHNJSHQ3b</td>\n",
+ " <td>50jq8RgbDfmNNd0NiRnl4L</td>\n",
+ " <td>4Z1fbYp0HuxLBje4MOZcSD</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>instrumentalness</th>\n",
+ " <td>0.627</td>\n",
+ " <td>0.88</td>\n",
+ " <td>8.92e-05</td>\n",
+ " <td>2.04e-06</td>\n",
+ " <td>2.42e-05</td>\n",
+ " <td>0.000141</td>\n",
+ " <td>0</td>\n",
+ " <td>0</td>\n",
+ " <td>0</td>\n",
+ " <td>0</td>\n",
+ " <td>...</td>\n",
+ " <td>0</td>\n",
+ " <td>0</td>\n",
+ " <td>0</td>\n",
+ " <td>6.2e-05</td>\n",
+ " <td>0.00127</td>\n",
+ " <td>0</td>\n",
+ " <td>0</td>\n",
+ " <td>0</td>\n",
+ " <td>4.22e-06</td>\n",
+ " <td>7.74e-06</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>key</th>\n",
+ " <td>2</td>\n",
+ " <td>0</td>\n",
+ " <td>7</td>\n",
+ " <td>2</td>\n",
+ " <td>9</td>\n",
+ " <td>11</td>\n",
+ " <td>9</td>\n",
+ " <td>5</td>\n",
+ " <td>5</td>\n",
+ " <td>2</td>\n",
+ " <td>...</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>0</td>\n",
+ " <td>2</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>1</td>\n",
+ " <td>4</td>\n",
+ " <td>2</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>liveness</th>\n",
+ " <td>0.789</td>\n",
+ " <td>0.0932</td>\n",
+ " <td>0.877</td>\n",
+ " <td>0.508</td>\n",
+ " <td>0.85</td>\n",
+ " <td>0.496</td>\n",
+ " <td>0.366</td>\n",
+ " <td>0.894</td>\n",
+ " <td>0.756</td>\n",
+ " <td>0.634</td>\n",
+ " <td>...</td>\n",
+ " <td>0.736</td>\n",
+ " <td>0.0967</td>\n",
+ " <td>0.0702</td>\n",
+ " <td>0.227</td>\n",
+ " <td>0.0828</td>\n",
+ " <td>0.0926</td>\n",
+ " <td>0.38</td>\n",
+ " <td>0.104</td>\n",
+ " <td>0.172</td>\n",
+ " <td>0.0414</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>loudness</th>\n",
+ " <td>-11.185</td>\n",
+ " <td>-14.755</td>\n",
+ " <td>-6.63</td>\n",
+ " <td>-8.696</td>\n",
+ " <td>-8.189</td>\n",
+ " <td>-6.879</td>\n",
+ " <td>-8.007</td>\n",
+ " <td>-7.606</td>\n",
+ " <td>-8.35</td>\n",
+ " <td>-7.948</td>\n",
+ " <td>...</td>\n",
+ " <td>-10.31</td>\n",
+ " <td>-11.33</td>\n",
+ " <td>-9.61</td>\n",
+ " <td>-6.228</td>\n",
+ " <td>-8.5</td>\n",
+ " <td>-12.211</td>\n",
+ " <td>-12.414</td>\n",
+ " <td>-11.416</td>\n",
+ " <td>-10.009</td>\n",
+ " <td>-9.198</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>lyrical_density</th>\n",
+ " <td>0.169898</td>\n",
+ " <td>0</td>\n",
+ " <td>NaN</td>\n",
+ " <td>2.82332</td>\n",
+ " <td>0.577965</td>\n",
+ " <td>0.796421</td>\n",
+ " <td>1.85312</td>\n",
+ " <td>1.47553</td>\n",
+ " <td>1.29746</td>\n",
+ " <td>1.81326</td>\n",
+ " <td>...</td>\n",
+ " <td>0.901393</td>\n",
+ " <td>1.01001</td>\n",
+ " <td>1.53079</td>\n",
+ " <td>0.783384</td>\n",
+ " <td>1.2303</td>\n",
+ " <td>1.32694</td>\n",
+ " <td>1.1879</td>\n",
+ " <td>0.74506</td>\n",
+ " <td>0.895984</td>\n",
+ " <td>1.70074</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>lyrics</th>\n",
+ " <td>honey pie honey pie i love you, honey pie</td>\n",
+ " <td></td>\n",
+ " <td>NaN</td>\n",
+ " <td>well shake it up baby now (shake it up baby) t...</td>\n",
+ " <td>my love don't give me presents i know that she...</td>\n",
+ " <td>{intro} you make me dizzy, miss lizzy the way ...</td>\n",
+ " <td>i think i'm going to be sad i think it's today...</td>\n",
+ " <td>can't buy me love, love can't buy me love i'll...</td>\n",
+ " <td>you say you will love me if i have to go you'l...</td>\n",
+ " <td>well going to write a little letter going to m...</td>\n",
+ " <td>...</td>\n",
+ " <td>i been told when a boy kiss a girl take a trip...</td>\n",
+ " <td>i love you, because you tell me things i want ...</td>\n",
+ " <td>last night i said these words to my girl i kno...</td>\n",
+ " <td>love, love me do you know i love you i'll alwa...</td>\n",
+ " <td>as i write this letter send my love to you rem...</td>\n",
+ " <td>sha la la la la la la la sha la la la la la la...</td>\n",
+ " <td>you'll never know how much i really love you y...</td>\n",
+ " <td>a taste of honey! tasting much sweeter than wi...</td>\n",
+ " <td>there is a place where i can go when i feel lo...</td>\n",
+ " <td>well shake it up baby now (shake it up baby) t...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>mode</th>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>0</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>0</td>\n",
+ " <td>1</td>\n",
+ " <td>0</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>name</th>\n",
+ " <td>Wild Honey Pie - Remastered 2009</td>\n",
+ " <td>Flying - Remastered 2009</td>\n",
+ " <td>Kansas City / Hey-Hey-Hey-Hey - Remastered 2009</td>\n",
+ " <td>Twist And Shout - Live / Remastered</td>\n",
+ " <td>She's A Woman - Live / Remastered</td>\n",
+ " <td>Dizzy Miss Lizzy - Live / Remastered</td>\n",
+ " <td>Ticket To Ride - Live / Remastered</td>\n",
+ " <td>Can't Buy Me Love - Live / Remastered</td>\n",
+ " <td>Things We Said Today - Live / Remastered</td>\n",
+ " <td>Roll Over Beethoven - Live / Remastered</td>\n",
+ " <td>...</td>\n",
+ " <td>Boys - Remastered 2009</td>\n",
+ " <td>Ask Me Why - Remastered 2009</td>\n",
+ " <td>Please Please Me - Remastered 2009</td>\n",
+ " <td>Love Me Do - Remastered 2009</td>\n",
+ " <td>P.S. I Love You - Remastered 2009</td>\n",
+ " <td>Baby It's You - Remastered 2009</td>\n",
+ " <td>Do You Want To Know A Secret - Remastered 2009</td>\n",
+ " <td>A Taste Of Honey - Remastered 2009</td>\n",
+ " <td>There's A Place - Remastered 2009</td>\n",
+ " <td>Twist And Shout - Remastered 2009</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>original_lyrics</th>\n",
+ " <td>\\n\\nHoney Pie\\nHoney Pie\\nI love you, Honey Pi...</td>\n",
+ " <td>\\n\\n[Instrumental]\\n\\n</td>\n",
+ " <td>NaN</td>\n",
+ " <td>\\n\\n[Verse 1]\\nWell shake it up baby now (shak...</td>\n",
+ " <td>\\n\\n[Chorus]\\nMy love don't give me presents\\n...</td>\n",
+ " <td>\\n\\n{Intro}\\n\\nYou make me dizzy, Miss Lizzy\\n...</td>\n",
+ " <td>\\n\\n[Verse 1]\\nI think I'm going to be sad\\nI ...</td>\n",
+ " <td>\\n\\n[Chorus 1]\\nCan't buy me love, love\\nCan't...</td>\n",
+ " <td>\\n\\n[Verse 1]\\nYou say you will love me\\nIf I ...</td>\n",
+ " <td>\\n\\n[Verse 1]\\nWell going to write a little le...</td>\n",
+ " <td>...</td>\n",
+ " <td>\\n\\n[Verse 1]\\nI been told when a boy kiss a g...</td>\n",
+ " <td>\\n\\n[Verse 1]\\nI love you, because you tell me...</td>\n",
+ " <td>\\n\\n[Verse 1]\\nLast night I said these words t...</td>\n",
+ " <td>\\n\\nLove, love me do\\nYou know I love you\\nI'l...</td>\n",
+ " <td>\\n\\nAs I write this letter\\nSend my love to yo...</td>\n",
+ " <td>\\n\\n[Intro-The Beatles]\\nSha la la la la la la...</td>\n",
+ " <td>\\n\\n[Intro]\\nYou'll never know how much I real...</td>\n",
+ " <td>\\n\\n[Intro]\\nA taste of honey! Tasting much sw...</td>\n",
+ " <td>\\n\\n[Verse 1]\\nThere is a place\\nWhere I can g...</td>\n",
+ " <td>\\n\\n[Verse 1]\\nWell shake it up baby now (shak...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>popularity</th>\n",
+ " <td>41</td>\n",
+ " <td>43</td>\n",
+ " <td>37</td>\n",
+ " <td>47</td>\n",
+ " <td>43</td>\n",
+ " <td>42</td>\n",
+ " <td>43</td>\n",
+ " <td>43</td>\n",
+ " <td>42</td>\n",
+ " <td>41</td>\n",
+ " <td>...</td>\n",
+ " <td>41</td>\n",
+ " <td>40</td>\n",
+ " <td>46</td>\n",
+ " <td>53</td>\n",
+ " <td>41</td>\n",
+ " <td>42</td>\n",
+ " <td>47</td>\n",
+ " <td>39</td>\n",
+ " <td>41</td>\n",
+ " <td>63</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>preview_url</th>\n",
+ " <td>https://p.scdn.co/mp3-preview/ddebab4d5e87d46a...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/15f07b753cb7e50c...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/bd13930c7706bdd4...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/cd82d2f8f92a7222...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/37806a7d82c5d2a8...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/5ee6d20e1808908e...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/558bb39228550744...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/c6b9c820e62868db...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/7b71156485b9e3e1...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/318950f70347c556...</td>\n",
+ " <td>...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/c84bcc2dd65c3d9b...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/f42256fa5367c68f...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/c7974d03d8cd26de...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/c0c7944dcb9d2457...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/5ef1f2ba07489648...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/d7eeb1f68c39066d...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/5bd705943290818c...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/dd94439cdf6e7668...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/5260a1d4f12c23ac...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/b7e3bc96b46e4dcc...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>sentiment</th>\n",
+ " <td>{'label': 'pos', 'probability': {'neutral': 0....</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>{'label': 'pos', 'probability': {'neutral': 0....</td>\n",
+ " <td>{'label': 'neutral', 'probability': {'neutral'...</td>\n",
+ " <td>{'label': 'neg', 'probability': {'neutral': 0....</td>\n",
+ " <td>{'label': 'neg', 'probability': {'neutral': 0....</td>\n",
+ " <td>{'label': 'neg', 'probability': {'neutral': 0....</td>\n",
+ " <td>{'label': 'neg', 'probability': {'neutral': 0....</td>\n",
+ " <td>{'label': 'neg', 'probability': {'neutral': 0....</td>\n",
+ " <td>...</td>\n",
+ " <td>{'label': 'neg', 'probability': {'neutral': 0....</td>\n",
+ " <td>{'label': 'neg', 'probability': {'neutral': 0....</td>\n",
+ " <td>{'label': 'neg', 'probability': {'neutral': 0....</td>\n",
+ " <td>{'label': 'pos', 'probability': {'neutral': 0....</td>\n",
+ " <td>{'label': 'pos', 'probability': {'neutral': 0....</td>\n",
+ " <td>{'label': 'neg', 'probability': {'neutral': 0....</td>\n",
+ " <td>{'label': 'neg', 'probability': {'neutral': 0....</td>\n",
+ " <td>{'label': 'pos', 'probability': {'neutral': 0....</td>\n",
+ " <td>{'label': 'neg', 'probability': {'neutral': 0....</td>\n",
+ " <td>{'label': 'pos', 'probability': {'neutral': 0....</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>speechiness</th>\n",
+ " <td>0.0506</td>\n",
+ " <td>0.0501</td>\n",
+ " <td>0.0335</td>\n",
+ " <td>0.0395</td>\n",
+ " <td>0.0662</td>\n",
+ " <td>0.0461</td>\n",
+ " <td>0.0423</td>\n",
+ " <td>0.0571</td>\n",
+ " <td>0.0392</td>\n",
+ " <td>0.0398</td>\n",
+ " <td>...</td>\n",
+ " <td>0.0504</td>\n",
+ " <td>0.0378</td>\n",
+ " <td>0.028</td>\n",
+ " <td>0.0806</td>\n",
+ " <td>0.0291</td>\n",
+ " <td>0.0345</td>\n",
+ " <td>0.0368</td>\n",
+ " <td>0.0327</td>\n",
+ " <td>0.0292</td>\n",
+ " <td>0.0452</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>tempo</th>\n",
+ " <td>89.9</td>\n",
+ " <td>92.929</td>\n",
+ " <td>131.36</td>\n",
+ " <td>126.441</td>\n",
+ " <td>175.86</td>\n",
+ " <td>129.417</td>\n",
+ " <td>121.216</td>\n",
+ " <td>173.283</td>\n",
+ " <td>146.636</td>\n",
+ " <td>179.24</td>\n",
+ " <td>...</td>\n",
+ " <td>142.445</td>\n",
+ " <td>133.942</td>\n",
+ " <td>139.388</td>\n",
+ " <td>147.997</td>\n",
+ " <td>134.435</td>\n",
+ " <td>112.421</td>\n",
+ " <td>124.451</td>\n",
+ " <td>101.408</td>\n",
+ " <td>140.928</td>\n",
+ " <td>124.631</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>time_signature</th>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>3</td>\n",
+ " <td>...</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>3</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>track_href</th>\n",
+ " <td>https://api.spotify.com/v1/tracks/2ucFulEWapRA...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/2z1p43SNSbeo...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/3ckvsHnEffhh...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/4edArG2VehvJ...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/150EAeMGWJRu...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/1fVeHYkyMxrj...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/0GRplBEB2FWC...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/1eVymk74iroq...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/2p5a9gu6NECV...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/1HyLh5cctOnP...</td>\n",
+ " <td>...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/43feVCF6QfqI...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/3NwEPV9MDr1z...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/2Iccm3cKBQHW...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/2OLMjGIhCNI6...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/01n20rdBC5cz...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/5gnrZoSS7nbD...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/5FBxWhG0nbBA...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6tEwCsVtZ5tI...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/50jq8RgbDfmN...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/4Z1fbYp0HuxL...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>track_number</th>\n",
+ " <td>5</td>\n",
+ " <td>3</td>\n",
+ " <td>7</td>\n",
+ " <td>1</td>\n",
+ " <td>2</td>\n",
+ " <td>3</td>\n",
+ " <td>4</td>\n",
+ " <td>5</td>\n",
+ " <td>6</td>\n",
+ " <td>7</td>\n",
+ " <td>...</td>\n",
+ " <td>5</td>\n",
+ " <td>6</td>\n",
+ " <td>7</td>\n",
+ " <td>8</td>\n",
+ " <td>9</td>\n",
+ " <td>10</td>\n",
+ " <td>11</td>\n",
+ " <td>12</td>\n",
+ " <td>13</td>\n",
+ " <td>14</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>type</th>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>...</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>uri</th>\n",
+ " <td>spotify:track:2ucFulEWapRAmTn7l6f5Q7</td>\n",
+ " <td>spotify:track:2z1p43SNSbeowzy8WdYHNk</td>\n",
+ " <td>spotify:track:3ckvsHnEffhhS5c0Cs6Gv5</td>\n",
+ " <td>spotify:track:4edArG2VehvJdwOZfYOxtK</td>\n",
+ " <td>spotify:track:150EAeMGWJRubuH8zyx7h8</td>\n",
+ " <td>spotify:track:1fVeHYkyMxrjbjRAD9uWsZ</td>\n",
+ " <td>spotify:track:0GRplBEB2FWCKutwMmS6nY</td>\n",
+ " <td>spotify:track:1eVymk74iroqhsZxm0Vy3g</td>\n",
+ " <td>spotify:track:2p5a9gu6NECVSvBtGSU1vm</td>\n",
+ " <td>spotify:track:1HyLh5cctOnP186CBi8bhm</td>\n",
+ " <td>...</td>\n",
+ " <td>spotify:track:43feVCF6QfqIt9LnLs9BAH</td>\n",
+ " <td>spotify:track:3NwEPV9MDr1z3KcHiAuz9d</td>\n",
+ " <td>spotify:track:2Iccm3cKBQHWt5yk0yX9nh</td>\n",
+ " <td>spotify:track:2OLMjGIhCNI6j34ysPscbp</td>\n",
+ " <td>spotify:track:01n20rdBC5czKAhxmGREkr</td>\n",
+ " <td>spotify:track:5gnrZoSS7nbDYtHp32RFiI</td>\n",
+ " <td>spotify:track:5FBxWhG0nbBAF6lWgJFklM</td>\n",
+ " <td>spotify:track:6tEwCsVtZ5tI8uHNJSHQ3b</td>\n",
+ " <td>spotify:track:50jq8RgbDfmNNd0NiRnl4L</td>\n",
+ " <td>spotify:track:4Z1fbYp0HuxLBje4MOZcSD</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>valence</th>\n",
+ " <td>0.153</td>\n",
+ " <td>0.246</td>\n",
+ " <td>0.929</td>\n",
+ " <td>0.588</td>\n",
+ " <td>0.562</td>\n",
+ " <td>0.758</td>\n",
+ " <td>0.405</td>\n",
+ " <td>0.669</td>\n",
+ " <td>0.395</td>\n",
+ " <td>0.726</td>\n",
+ " <td>...</td>\n",
+ " <td>0.825</td>\n",
+ " <td>0.606</td>\n",
+ " <td>0.708</td>\n",
+ " <td>0.765</td>\n",
+ " <td>0.78</td>\n",
+ " <td>0.889</td>\n",
+ " <td>0.636</td>\n",
+ " <td>0.378</td>\n",
+ " <td>0.928</td>\n",
+ " <td>0.942</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "<p>41 rows × 230 columns</p>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " 0 \\\n",
+ "_id 2ucFulEWapRAmTn7l6f5Q7 \n",
+ "acousticness 0.425 \n",
+ "album {'type': 'album', 'name': 'The Beatles (Remast... \n",
+ "album_id 03Qh833fEdVT30Pfs93ea6 \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/2ucF... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.0598502 \n",
+ "ctitle wild honey pie \n",
+ "danceability 0.792 \n",
+ "disc_number 1 \n",
+ "duration_ms 52973 \n",
+ "energy 0.763 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBAYE0601648'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/2u... \n",
+ "gloom 0.417113 \n",
+ "href https://api.spotify.com/v1/tracks/2ucFulEWapRA... \n",
+ "id 2ucFulEWapRAmTn7l6f5Q7 \n",
+ "instrumentalness 0.627 \n",
+ "key 2 \n",
+ "liveness 0.789 \n",
+ "loudness -11.185 \n",
+ "lyrical_density 0.169898 \n",
+ "lyrics honey pie honey pie i love you, honey pie \n",
+ "mode 1 \n",
+ "name Wild Honey Pie - Remastered 2009 \n",
+ "original_lyrics \\n\\nHoney Pie\\nHoney Pie\\nI love you, Honey Pi... \n",
+ "popularity 41 \n",
+ "preview_url https://p.scdn.co/mp3-preview/ddebab4d5e87d46a... \n",
+ "sentiment {'label': 'pos', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0506 \n",
+ "tempo 89.9 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/2ucFulEWapRA... \n",
+ "track_number 5 \n",
+ "type audio_features \n",
+ "uri spotify:track:2ucFulEWapRAmTn7l6f5Q7 \n",
+ "valence 0.153 \n",
+ "\n",
+ " 1 \\\n",
+ "_id 2z1p43SNSbeowzy8WdYHNk \n",
+ "acousticness 0.368 \n",
+ "album {'type': 'album', 'name': 'Magical Mystery Tou... \n",
+ "album_id 6P9yO0ukhOx3dvmhGKeYoC \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/2z1p... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity NaN \n",
+ "ctitle flying \n",
+ "danceability 0.551 \n",
+ "disc_number 1 \n",
+ "duration_ms 135520 \n",
+ "energy 0.395 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBAYE0601635'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/2z... \n",
+ "gloom NaN \n",
+ "href https://api.spotify.com/v1/tracks/2z1p43SNSbeo... \n",
+ "id 2z1p43SNSbeowzy8WdYHNk \n",
+ "instrumentalness 0.88 \n",
+ "key 0 \n",
+ "liveness 0.0932 \n",
+ "loudness -14.755 \n",
+ "lyrical_density 0 \n",
+ "lyrics \n",
+ "mode 1 \n",
+ "name Flying - Remastered 2009 \n",
+ "original_lyrics \\n\\n[Instrumental]\\n\\n \n",
+ "popularity 43 \n",
+ "preview_url https://p.scdn.co/mp3-preview/15f07b753cb7e50c... \n",
+ "sentiment NaN \n",
+ "speechiness 0.0501 \n",
+ "tempo 92.929 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/2z1p43SNSbeo... \n",
+ "track_number 3 \n",
+ "type audio_features \n",
+ "uri spotify:track:2z1p43SNSbeowzy8WdYHNk \n",
+ "valence 0.246 \n",
+ "\n",
+ " 2 \\\n",
+ "_id 3ckvsHnEffhhS5c0Cs6Gv5 \n",
+ "acousticness 0.614 \n",
+ "album {'type': 'album', 'name': 'Beatles For Sale (R... \n",
+ "album_id 7BgGBZndAvDlKOcwe5rscZ \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/3ckv... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity NaN \n",
+ "ctitle kansas city heyheyheyhey \n",
+ "danceability 0.588 \n",
+ "disc_number 1 \n",
+ "duration_ms 158147 \n",
+ "energy 0.724 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBAYE0601457'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/3c... \n",
+ "gloom NaN \n",
+ "href https://api.spotify.com/v1/tracks/3ckvsHnEffhh... \n",
+ "id 3ckvsHnEffhhS5c0Cs6Gv5 \n",
+ "instrumentalness 8.92e-05 \n",
+ "key 7 \n",
+ "liveness 0.877 \n",
+ "loudness -6.63 \n",
+ "lyrical_density NaN \n",
+ "lyrics NaN \n",
+ "mode 1 \n",
+ "name Kansas City / Hey-Hey-Hey-Hey - Remastered 2009 \n",
+ "original_lyrics NaN \n",
+ "popularity 37 \n",
+ "preview_url https://p.scdn.co/mp3-preview/bd13930c7706bdd4... \n",
+ "sentiment NaN \n",
+ "speechiness 0.0335 \n",
+ "tempo 131.36 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/3ckvsHnEffhh... \n",
+ "track_number 7 \n",
+ "type audio_features \n",
+ "uri spotify:track:3ckvsHnEffhhS5c0Cs6Gv5 \n",
+ "valence 0.929 \n",
+ "\n",
+ " 3 \\\n",
+ "_id 4edArG2VehvJdwOZfYOxtK \n",
+ "acousticness 7.67e-05 \n",
+ "album {'type': 'album', 'name': 'Live At The Hollywo... \n",
+ "album_id 5XfJmldgWzrc1AIdbBaVZn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/4edA... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.293946 \n",
+ "ctitle twist and shout \n",
+ "danceability 0.311 \n",
+ "disc_number 1 \n",
+ "duration_ms 93507 \n",
+ "energy 0.822 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBUM71603960'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/4e... \n",
+ "gloom 0.249954 \n",
+ "href https://api.spotify.com/v1/tracks/4edArG2VehvJ... \n",
+ "id 4edArG2VehvJdwOZfYOxtK \n",
+ "instrumentalness 2.04e-06 \n",
+ "key 2 \n",
+ "liveness 0.508 \n",
+ "loudness -8.696 \n",
+ "lyrical_density 2.82332 \n",
+ "lyrics well shake it up baby now (shake it up baby) t... \n",
+ "mode 1 \n",
+ "name Twist And Shout - Live / Remastered \n",
+ "original_lyrics \\n\\n[Verse 1]\\nWell shake it up baby now (shak... \n",
+ "popularity 47 \n",
+ "preview_url https://p.scdn.co/mp3-preview/cd82d2f8f92a7222... \n",
+ "sentiment {'label': 'pos', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0395 \n",
+ "tempo 126.441 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/4edArG2VehvJ... \n",
+ "track_number 1 \n",
+ "type audio_features \n",
+ "uri spotify:track:4edArG2VehvJdwOZfYOxtK \n",
+ "valence 0.588 \n",
+ "\n",
+ " 4 \\\n",
+ "_id 150EAeMGWJRubuH8zyx7h8 \n",
+ "acousticness 0.00675 \n",
+ "album {'type': 'album', 'name': 'Live At The Hollywo... \n",
+ "album_id 5XfJmldgWzrc1AIdbBaVZn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/150E... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.316303 \n",
+ "ctitle shes a woman \n",
+ "danceability 0.188 \n",
+ "disc_number 1 \n",
+ "duration_ms 192053 \n",
+ "energy 0.885 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBUM71603957'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/15... \n",
+ "gloom 0.230078 \n",
+ "href https://api.spotify.com/v1/tracks/150EAeMGWJRu... \n",
+ "id 150EAeMGWJRubuH8zyx7h8 \n",
+ "instrumentalness 2.42e-05 \n",
+ "key 9 \n",
+ "liveness 0.85 \n",
+ "loudness -8.189 \n",
+ "lyrical_density 0.577965 \n",
+ "lyrics my love don't give me presents i know that she... \n",
+ "mode 1 \n",
+ "name She's A Woman - Live / Remastered \n",
+ "original_lyrics \\n\\n[Chorus]\\nMy love don't give me presents\\n... \n",
+ "popularity 43 \n",
+ "preview_url https://p.scdn.co/mp3-preview/37806a7d82c5d2a8... \n",
+ "sentiment {'label': 'neutral', 'probability': {'neutral'... \n",
+ "speechiness 0.0662 \n",
+ "tempo 175.86 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/150EAeMGWJRu... \n",
+ "track_number 2 \n",
+ "type audio_features \n",
+ "uri spotify:track:150EAeMGWJRubuH8zyx7h8 \n",
+ "valence 0.562 \n",
+ "\n",
+ " 5 \\\n",
+ "_id 1fVeHYkyMxrjbjRAD9uWsZ \n",
+ "acousticness 0.0131 \n",
+ "album {'type': 'album', 'name': 'Live At The Hollywo... \n",
+ "album_id 5XfJmldgWzrc1AIdbBaVZn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/1fVe... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.445783 \n",
+ "ctitle dizzy miss lizzy \n",
+ "danceability 0.406 \n",
+ "disc_number 1 \n",
+ "duration_ms 219733 \n",
+ "energy 0.867 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBUM71603952'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/1f... \n",
+ "gloom 0.165566 \n",
+ "href https://api.spotify.com/v1/tracks/1fVeHYkyMxrj... \n",
+ "id 1fVeHYkyMxrjbjRAD9uWsZ \n",
+ "instrumentalness 0.000141 \n",
+ "key 11 \n",
+ "liveness 0.496 \n",
+ "loudness -6.879 \n",
+ "lyrical_density 0.796421 \n",
+ "lyrics {intro} you make me dizzy, miss lizzy the way ... \n",
+ "mode 0 \n",
+ "name Dizzy Miss Lizzy - Live / Remastered \n",
+ "original_lyrics \\n\\n{Intro}\\n\\nYou make me dizzy, Miss Lizzy\\n... \n",
+ "popularity 42 \n",
+ "preview_url https://p.scdn.co/mp3-preview/5ee6d20e1808908e... \n",
+ "sentiment {'label': 'neg', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0461 \n",
+ "tempo 129.417 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/1fVeHYkyMxrj... \n",
+ "track_number 3 \n",
+ "type audio_features \n",
+ "uri spotify:track:1fVeHYkyMxrjbjRAD9uWsZ \n",
+ "valence 0.758 \n",
+ "\n",
+ " 6 \\\n",
+ "_id 0GRplBEB2FWCKutwMmS6nY \n",
+ "acousticness 0.00327 \n",
+ "album {'type': 'album', 'name': 'Live At The Hollywo... \n",
+ "album_id 5XfJmldgWzrc1AIdbBaVZn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/0GRp... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.334303 \n",
+ "ctitle ticket to ride \n",
+ "danceability 0.39 \n",
+ "disc_number 1 \n",
+ "duration_ms 146240 \n",
+ "energy 0.779 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBUM71603959'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/0G... \n",
+ "gloom 0.371771 \n",
+ "href https://api.spotify.com/v1/tracks/0GRplBEB2FWC... \n",
+ "id 0GRplBEB2FWCKutwMmS6nY \n",
+ "instrumentalness 0 \n",
+ "key 9 \n",
+ "liveness 0.366 \n",
+ "loudness -8.007 \n",
+ "lyrical_density 1.85312 \n",
+ "lyrics i think i'm going to be sad i think it's today... \n",
+ "mode 1 \n",
+ "name Ticket To Ride - Live / Remastered \n",
+ "original_lyrics \\n\\n[Verse 1]\\nI think I'm going to be sad\\nI ... \n",
+ "popularity 43 \n",
+ "preview_url https://p.scdn.co/mp3-preview/558bb39228550744... \n",
+ "sentiment {'label': 'neg', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0423 \n",
+ "tempo 121.216 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/0GRplBEB2FWC... \n",
+ "track_number 4 \n",
+ "type audio_features \n",
+ "uri spotify:track:0GRplBEB2FWCKutwMmS6nY \n",
+ "valence 0.405 \n",
+ "\n",
+ " 7 \\\n",
+ "_id 1eVymk74iroqhsZxm0Vy3g \n",
+ "acousticness 0.00865 \n",
+ "album {'type': 'album', 'name': 'Live At The Hollywo... \n",
+ "album_id 5XfJmldgWzrc1AIdbBaVZn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/1eVy... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.493981 \n",
+ "ctitle cant buy me love \n",
+ "danceability 0.2 \n",
+ "disc_number 1 \n",
+ "duration_ms 134867 \n",
+ "energy 0.849 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBUM71603951'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/1e... \n",
+ "gloom 0.268628 \n",
+ "href https://api.spotify.com/v1/tracks/1eVymk74iroq... \n",
+ "id 1eVymk74iroqhsZxm0Vy3g \n",
+ "instrumentalness 0 \n",
+ "key 5 \n",
+ "liveness 0.894 \n",
+ "loudness -7.606 \n",
+ "lyrical_density 1.47553 \n",
+ "lyrics can't buy me love, love can't buy me love i'll... \n",
+ "mode 1 \n",
+ "name Can't Buy Me Love - Live / Remastered \n",
+ "original_lyrics \\n\\n[Chorus 1]\\nCan't buy me love, love\\nCan't... \n",
+ "popularity 43 \n",
+ "preview_url https://p.scdn.co/mp3-preview/c6b9c820e62868db... \n",
+ "sentiment {'label': 'neg', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0571 \n",
+ "tempo 173.283 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/1eVymk74iroq... \n",
+ "track_number 5 \n",
+ "type audio_features \n",
+ "uri spotify:track:1eVymk74iroqhsZxm0Vy3g \n",
+ "valence 0.669 \n",
+ "\n",
+ " 8 \\\n",
+ "_id 2p5a9gu6NECVSvBtGSU1vm \n",
+ "acousticness 0.0836 \n",
+ "album {'type': 'album', 'name': 'Live At The Hollywo... \n",
+ "album_id 5XfJmldgWzrc1AIdbBaVZn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/2p5a... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.24995 \n",
+ "ctitle things we said today \n",
+ "danceability 0.307 \n",
+ "disc_number 1 \n",
+ "duration_ms 138733 \n",
+ "energy 0.637 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBUM71603958'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/2p... \n",
+ "gloom 0.308627 \n",
+ "href https://api.spotify.com/v1/tracks/2p5a9gu6NECV... \n",
+ "id 2p5a9gu6NECVSvBtGSU1vm \n",
+ "instrumentalness 0 \n",
+ "key 5 \n",
+ "liveness 0.756 \n",
+ "loudness -8.35 \n",
+ "lyrical_density 1.29746 \n",
+ "lyrics you say you will love me if i have to go you'l... \n",
+ "mode 1 \n",
+ "name Things We Said Today - Live / Remastered \n",
+ "original_lyrics \\n\\n[Verse 1]\\nYou say you will love me\\nIf I ... \n",
+ "popularity 42 \n",
+ "preview_url https://p.scdn.co/mp3-preview/7b71156485b9e3e1... \n",
+ "sentiment {'label': 'neg', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0392 \n",
+ "tempo 146.636 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/2p5a9gu6NECV... \n",
+ "track_number 6 \n",
+ "type audio_features \n",
+ "uri spotify:track:2p5a9gu6NECVSvBtGSU1vm \n",
+ "valence 0.395 \n",
+ "\n",
+ " 9 \\\n",
+ "_id 1HyLh5cctOnP186CBi8bhm \n",
+ "acousticness 0.00242 \n",
+ "album {'type': 'album', 'name': 'Live At The Hollywo... \n",
+ "album_id 5XfJmldgWzrc1AIdbBaVZn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/1HyL... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.48621 \n",
+ "ctitle roll over beethoven \n",
+ "danceability 0.204 \n",
+ "disc_number 1 \n",
+ "duration_ms 134013 \n",
+ "energy 0.808 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBUM71603955'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/1H... \n",
+ "gloom 0.26165 \n",
+ "href https://api.spotify.com/v1/tracks/1HyLh5cctOnP... \n",
+ "id 1HyLh5cctOnP186CBi8bhm \n",
+ "instrumentalness 0 \n",
+ "key 2 \n",
+ "liveness 0.634 \n",
+ "loudness -7.948 \n",
+ "lyrical_density 1.81326 \n",
+ "lyrics well going to write a little letter going to m... \n",
+ "mode 1 \n",
+ "name Roll Over Beethoven - Live / Remastered \n",
+ "original_lyrics \\n\\n[Verse 1]\\nWell going to write a little le... \n",
+ "popularity 41 \n",
+ "preview_url https://p.scdn.co/mp3-preview/318950f70347c556... \n",
+ "sentiment {'label': 'neg', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0398 \n",
+ "tempo 179.24 \n",
+ "time_signature 3 \n",
+ "track_href https://api.spotify.com/v1/tracks/1HyLh5cctOnP... \n",
+ "track_number 7 \n",
+ "type audio_features \n",
+ "uri spotify:track:1HyLh5cctOnP186CBi8bhm \n",
+ "valence 0.726 \n",
+ "\n",
+ " ... \\\n",
+ "_id ... \n",
+ "acousticness ... \n",
+ "album ... \n",
+ "album_id ... \n",
+ "analysis_url ... \n",
+ "artist_id ... \n",
+ "artist_name ... \n",
+ "artists ... \n",
+ "available_markets ... \n",
+ "complexity ... \n",
+ "ctitle ... \n",
+ "danceability ... \n",
+ "disc_number ... \n",
+ "duration_ms ... \n",
+ "energy ... \n",
+ "explicit ... \n",
+ "external_ids ... \n",
+ "external_urls ... \n",
+ "gloom ... \n",
+ "href ... \n",
+ "id ... \n",
+ "instrumentalness ... \n",
+ "key ... \n",
+ "liveness ... \n",
+ "loudness ... \n",
+ "lyrical_density ... \n",
+ "lyrics ... \n",
+ "mode ... \n",
+ "name ... \n",
+ "original_lyrics ... \n",
+ "popularity ... \n",
+ "preview_url ... \n",
+ "sentiment ... \n",
+ "speechiness ... \n",
+ "tempo ... \n",
+ "time_signature ... \n",
+ "track_href ... \n",
+ "track_number ... \n",
+ "type ... \n",
+ "uri ... \n",
+ "valence ... \n",
+ "\n",
+ " 220 \\\n",
+ "_id 43feVCF6QfqIt9LnLs9BAH \n",
+ "acousticness 0.607 \n",
+ "album {'type': 'album', 'name': 'Please Please Me (R... \n",
+ "album_id 7gDXyW16byCQOgK965BRzn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/43fe... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.445887 \n",
+ "ctitle boys \n",
+ "danceability 0.402 \n",
+ "disc_number 1 \n",
+ "duration_ms 146440 \n",
+ "energy 0.86 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBAYE0601414'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/43... \n",
+ "gloom 0.141586 \n",
+ "href https://api.spotify.com/v1/tracks/43feVCF6QfqI... \n",
+ "id 43feVCF6QfqIt9LnLs9BAH \n",
+ "instrumentalness 0 \n",
+ "key 4 \n",
+ "liveness 0.736 \n",
+ "loudness -10.31 \n",
+ "lyrical_density 0.901393 \n",
+ "lyrics i been told when a boy kiss a girl take a trip... \n",
+ "mode 1 \n",
+ "name Boys - Remastered 2009 \n",
+ "original_lyrics \\n\\n[Verse 1]\\nI been told when a boy kiss a g... \n",
+ "popularity 41 \n",
+ "preview_url https://p.scdn.co/mp3-preview/c84bcc2dd65c3d9b... \n",
+ "sentiment {'label': 'neg', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0504 \n",
+ "tempo 142.445 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/43feVCF6QfqI... \n",
+ "track_number 5 \n",
+ "type audio_features \n",
+ "uri spotify:track:43feVCF6QfqIt9LnLs9BAH \n",
+ "valence 0.825 \n",
+ "\n",
+ " 221 \\\n",
+ "_id 3NwEPV9MDr1z3KcHiAuz9d \n",
+ "acousticness 0.767 \n",
+ "album {'type': 'album', 'name': 'Please Please Me (R... \n",
+ "album_id 7gDXyW16byCQOgK965BRzn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/3NwE... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.482092 \n",
+ "ctitle ask me why \n",
+ "danceability 0.605 \n",
+ "disc_number 1 \n",
+ "duration_ms 146533 \n",
+ "energy 0.394 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBAYE0601415'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/3N... \n",
+ "gloom 0.264411 \n",
+ "href https://api.spotify.com/v1/tracks/3NwEPV9MDr1z... \n",
+ "id 3NwEPV9MDr1z3KcHiAuz9d \n",
+ "instrumentalness 0 \n",
+ "key 4 \n",
+ "liveness 0.0967 \n",
+ "loudness -11.33 \n",
+ "lyrical_density 1.01001 \n",
+ "lyrics i love you, because you tell me things i want ... \n",
+ "mode 1 \n",
+ "name Ask Me Why - Remastered 2009 \n",
+ "original_lyrics \\n\\n[Verse 1]\\nI love you, because you tell me... \n",
+ "popularity 40 \n",
+ "preview_url https://p.scdn.co/mp3-preview/f42256fa5367c68f... \n",
+ "sentiment {'label': 'neg', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0378 \n",
+ "tempo 133.942 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/3NwEPV9MDr1z... \n",
+ "track_number 6 \n",
+ "type audio_features \n",
+ "uri spotify:track:3NwEPV9MDr1z3KcHiAuz9d \n",
+ "valence 0.606 \n",
+ "\n",
+ " 222 \\\n",
+ "_id 2Iccm3cKBQHWt5yk0yX9nh \n",
+ "acousticness 0.334 \n",
+ "album {'type': 'album', 'name': 'Please Please Me (R... \n",
+ "album_id 7gDXyW16byCQOgK965BRzn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/2Icc... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.589812 \n",
+ "ctitle please please me \n",
+ "danceability 0.527 \n",
+ "disc_number 1 \n",
+ "duration_ms 120853 \n",
+ "energy 0.48 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBAYE0601416'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/2I... \n",
+ "gloom 0.288445 \n",
+ "href https://api.spotify.com/v1/tracks/2Iccm3cKBQHW... \n",
+ "id 2Iccm3cKBQHWt5yk0yX9nh \n",
+ "instrumentalness 0 \n",
+ "key 4 \n",
+ "liveness 0.0702 \n",
+ "loudness -9.61 \n",
+ "lyrical_density 1.53079 \n",
+ "lyrics last night i said these words to my girl i kno... \n",
+ "mode 1 \n",
+ "name Please Please Me - Remastered 2009 \n",
+ "original_lyrics \\n\\n[Verse 1]\\nLast night I said these words t... \n",
+ "popularity 46 \n",
+ "preview_url https://p.scdn.co/mp3-preview/c7974d03d8cd26de... \n",
+ "sentiment {'label': 'neg', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.028 \n",
+ "tempo 139.388 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/2Iccm3cKBQHW... \n",
+ "track_number 7 \n",
+ "type audio_features \n",
+ "uri spotify:track:2Iccm3cKBQHWt5yk0yX9nh \n",
+ "valence 0.708 \n",
+ "\n",
+ " 223 \\\n",
+ "_id 2OLMjGIhCNI6j34ysPscbp \n",
+ "acousticness 0.386 \n",
+ "album {'type': 'album', 'name': 'Please Please Me (R... \n",
+ "album_id 7gDXyW16byCQOgK965BRzn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/2OLM... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.377007 \n",
+ "ctitle love me do \n",
+ "danceability 0.52 \n",
+ "disc_number 1 \n",
+ "duration_ms 141693 \n",
+ "energy 0.829 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBAYE0601417'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/2O... \n",
+ "gloom 0.150082 \n",
+ "href https://api.spotify.com/v1/tracks/2OLMjGIhCNI6... \n",
+ "id 2OLMjGIhCNI6j34ysPscbp \n",
+ "instrumentalness 6.2e-05 \n",
+ "key 0 \n",
+ "liveness 0.227 \n",
+ "loudness -6.228 \n",
+ "lyrical_density 0.783384 \n",
+ "lyrics love, love me do you know i love you i'll alwa... \n",
+ "mode 1 \n",
+ "name Love Me Do - Remastered 2009 \n",
+ "original_lyrics \\n\\nLove, love me do\\nYou know I love you\\nI'l... \n",
+ "popularity 53 \n",
+ "preview_url https://p.scdn.co/mp3-preview/c0c7944dcb9d2457... \n",
+ "sentiment {'label': 'pos', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0806 \n",
+ "tempo 147.997 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/2OLMjGIhCNI6... \n",
+ "track_number 8 \n",
+ "type audio_features \n",
+ "uri spotify:track:2OLMjGIhCNI6j34ysPscbp \n",
+ "valence 0.765 \n",
+ "\n",
+ " 224 \\\n",
+ "_id 01n20rdBC5czKAhxmGREkr \n",
+ "acousticness 0.389 \n",
+ "album {'type': 'album', 'name': 'Please Please Me (R... \n",
+ "album_id 7gDXyW16byCQOgK965BRzn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/01n2... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.266738 \n",
+ "ctitle ps i love you \n",
+ "danceability 0.635 \n",
+ "disc_number 1 \n",
+ "duration_ms 124360 \n",
+ "energy 0.656 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBAYE0601418'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/01... \n",
+ "gloom 0.135398 \n",
+ "href https://api.spotify.com/v1/tracks/01n20rdBC5cz... \n",
+ "id 01n20rdBC5czKAhxmGREkr \n",
+ "instrumentalness 0.00127 \n",
+ "key 2 \n",
+ "liveness 0.0828 \n",
+ "loudness -8.5 \n",
+ "lyrical_density 1.2303 \n",
+ "lyrics as i write this letter send my love to you rem... \n",
+ "mode 1 \n",
+ "name P.S. I Love You - Remastered 2009 \n",
+ "original_lyrics \\n\\nAs I write this letter\\nSend my love to yo... \n",
+ "popularity 41 \n",
+ "preview_url https://p.scdn.co/mp3-preview/5ef1f2ba07489648... \n",
+ "sentiment {'label': 'pos', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0291 \n",
+ "tempo 134.435 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/01n20rdBC5cz... \n",
+ "track_number 9 \n",
+ "type audio_features \n",
+ "uri spotify:track:01n20rdBC5czKAhxmGREkr \n",
+ "valence 0.78 \n",
+ "\n",
+ " 225 \\\n",
+ "_id 5gnrZoSS7nbDYtHp32RFiI \n",
+ "acousticness 0.778 \n",
+ "album {'type': 'album', 'name': 'Please Please Me (R... \n",
+ "album_id 7gDXyW16byCQOgK965BRzn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/5gnr... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.603643 \n",
+ "ctitle baby its you \n",
+ "danceability 0.608 \n",
+ "disc_number 1 \n",
+ "duration_ms 160520 \n",
+ "energy 0.494 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBAYE0601419'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/5g... \n",
+ "gloom 0.183832 \n",
+ "href https://api.spotify.com/v1/tracks/5gnrZoSS7nbD... \n",
+ "id 5gnrZoSS7nbDYtHp32RFiI \n",
+ "instrumentalness 0 \n",
+ "key 4 \n",
+ "liveness 0.0926 \n",
+ "loudness -12.211 \n",
+ "lyrical_density 1.32694 \n",
+ "lyrics sha la la la la la la la sha la la la la la la... \n",
+ "mode 0 \n",
+ "name Baby It's You - Remastered 2009 \n",
+ "original_lyrics \\n\\n[Intro-The Beatles]\\nSha la la la la la la... \n",
+ "popularity 42 \n",
+ "preview_url https://p.scdn.co/mp3-preview/d7eeb1f68c39066d... \n",
+ "sentiment {'label': 'neg', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0345 \n",
+ "tempo 112.421 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/5gnrZoSS7nbD... \n",
+ "track_number 10 \n",
+ "type audio_features \n",
+ "uri spotify:track:5gnrZoSS7nbDYtHp32RFiI \n",
+ "valence 0.889 \n",
+ "\n",
+ " 226 \\\n",
+ "_id 5FBxWhG0nbBAF6lWgJFklM \n",
+ "acousticness 0.608 \n",
+ "album {'type': 'album', 'name': 'Please Please Me (R... \n",
+ "album_id 7gDXyW16byCQOgK965BRzn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/5FBx... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.355868 \n",
+ "ctitle do you want to know a secret \n",
+ "danceability 0.673 \n",
+ "disc_number 1 \n",
+ "duration_ms 117013 \n",
+ "energy 0.349 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBAYE0601420'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/5F... \n",
+ "gloom 0.221199 \n",
+ "href https://api.spotify.com/v1/tracks/5FBxWhG0nbBA... \n",
+ "id 5FBxWhG0nbBAF6lWgJFklM \n",
+ "instrumentalness 0 \n",
+ "key 4 \n",
+ "liveness 0.38 \n",
+ "loudness -12.414 \n",
+ "lyrical_density 1.1879 \n",
+ "lyrics you'll never know how much i really love you y... \n",
+ "mode 1 \n",
+ "name Do You Want To Know A Secret - Remastered 2009 \n",
+ "original_lyrics \\n\\n[Intro]\\nYou'll never know how much I real... \n",
+ "popularity 47 \n",
+ "preview_url https://p.scdn.co/mp3-preview/5bd705943290818c... \n",
+ "sentiment {'label': 'neg', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0368 \n",
+ "tempo 124.451 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/5FBxWhG0nbBA... \n",
+ "track_number 11 \n",
+ "type audio_features \n",
+ "uri spotify:track:5FBxWhG0nbBAF6lWgJFklM \n",
+ "valence 0.636 \n",
+ "\n",
+ " 227 \\\n",
+ "_id 6tEwCsVtZ5tI8uHNJSHQ3b \n",
+ "acousticness 0.698 \n",
+ "album {'type': 'album', 'name': 'Please Please Me (R... \n",
+ "album_id 7gDXyW16byCQOgK965BRzn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/6tEw... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.132842 \n",
+ "ctitle a taste of honey \n",
+ "danceability 0.42 \n",
+ "disc_number 1 \n",
+ "duration_ms 123480 \n",
+ "energy 0.372 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBAYE0601421'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/6t... \n",
+ "gloom 0.278706 \n",
+ "href https://api.spotify.com/v1/tracks/6tEwCsVtZ5tI... \n",
+ "id 6tEwCsVtZ5tI8uHNJSHQ3b \n",
+ "instrumentalness 0 \n",
+ "key 1 \n",
+ "liveness 0.104 \n",
+ "loudness -11.416 \n",
+ "lyrical_density 0.74506 \n",
+ "lyrics a taste of honey! tasting much sweeter than wi... \n",
+ "mode 0 \n",
+ "name A Taste Of Honey - Remastered 2009 \n",
+ "original_lyrics \\n\\n[Intro]\\nA taste of honey! Tasting much sw... \n",
+ "popularity 39 \n",
+ "preview_url https://p.scdn.co/mp3-preview/dd94439cdf6e7668... \n",
+ "sentiment {'label': 'pos', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0327 \n",
+ "tempo 101.408 \n",
+ "time_signature 3 \n",
+ "track_href https://api.spotify.com/v1/tracks/6tEwCsVtZ5tI... \n",
+ "track_number 12 \n",
+ "type audio_features \n",
+ "uri spotify:track:6tEwCsVtZ5tI8uHNJSHQ3b \n",
+ "valence 0.378 \n",
+ "\n",
+ " 228 \\\n",
+ "_id 50jq8RgbDfmNNd0NiRnl4L \n",
+ "acousticness 0.629 \n",
+ "album {'type': 'album', 'name': 'Please Please Me (R... \n",
+ "album_id 7gDXyW16byCQOgK965BRzn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/50jq... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.604396 \n",
+ "ctitle theres a place \n",
+ "danceability 0.455 \n",
+ "disc_number 1 \n",
+ "duration_ms 110493 \n",
+ "energy 0.582 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBAYE0601422'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/50... \n",
+ "gloom 0.121155 \n",
+ "href https://api.spotify.com/v1/tracks/50jq8RgbDfmN... \n",
+ "id 50jq8RgbDfmNNd0NiRnl4L \n",
+ "instrumentalness 4.22e-06 \n",
+ "key 4 \n",
+ "liveness 0.172 \n",
+ "loudness -10.009 \n",
+ "lyrical_density 0.895984 \n",
+ "lyrics there is a place where i can go when i feel lo... \n",
+ "mode 1 \n",
+ "name There's A Place - Remastered 2009 \n",
+ "original_lyrics \\n\\n[Verse 1]\\nThere is a place\\nWhere I can g... \n",
+ "popularity 41 \n",
+ "preview_url https://p.scdn.co/mp3-preview/5260a1d4f12c23ac... \n",
+ "sentiment {'label': 'neg', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0292 \n",
+ "tempo 140.928 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/50jq8RgbDfmN... \n",
+ "track_number 13 \n",
+ "type audio_features \n",
+ "uri spotify:track:50jq8RgbDfmNNd0NiRnl4L \n",
+ "valence 0.928 \n",
+ "\n",
+ " 229 \n",
+ "_id 4Z1fbYp0HuxLBje4MOZcSD \n",
+ "acousticness 0.641 \n",
+ "album {'type': 'album', 'name': 'Please Please Me (R... \n",
+ "album_id 7gDXyW16byCQOgK965BRzn \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/4Z1f... \n",
+ "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n",
+ "artist_name The Beatles \n",
+ "artists [{'name': 'The Beatles', 'type': 'artist', 'hr... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "complexity 0.470913 \n",
+ "ctitle twist and shout \n",
+ "danceability 0.482 \n",
+ "disc_number 1 \n",
+ "duration_ms 155227 \n",
+ "energy 0.849 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBAYE0601423'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/4Z... \n",
+ "gloom 0.159095 \n",
+ "href https://api.spotify.com/v1/tracks/4Z1fbYp0HuxL... \n",
+ "id 4Z1fbYp0HuxLBje4MOZcSD \n",
+ "instrumentalness 7.74e-06 \n",
+ "key 2 \n",
+ "liveness 0.0414 \n",
+ "loudness -9.198 \n",
+ "lyrical_density 1.70074 \n",
+ "lyrics well shake it up baby now (shake it up baby) t... \n",
+ "mode 1 \n",
+ "name Twist And Shout - Remastered 2009 \n",
+ "original_lyrics \\n\\n[Verse 1]\\nWell shake it up baby now (shak... \n",
+ "popularity 63 \n",
+ "preview_url https://p.scdn.co/mp3-preview/b7e3bc96b46e4dcc... \n",
+ "sentiment {'label': 'pos', 'probability': {'neutral': 0.... \n",
+ "speechiness 0.0452 \n",
+ "tempo 124.631 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/4Z1fbYp0HuxL... \n",
+ "track_number 14 \n",
+ "type audio_features \n",
+ "uri spotify:track:4Z1fbYp0HuxLBje4MOZcSD \n",
+ "valence 0.942 \n",
+ "\n",
+ "[41 rows x 230 columns]"
+ ]
+ },
+ "execution_count": 31,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "beatles_tracks = pd.DataFrame(list(tracks.find({'artist_id': beatles_id})))\n",
+ "beatles_tracks.T"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>0</th>\n",
+ " <th>1</th>\n",
+ " <th>2</th>\n",
+ " <th>3</th>\n",
+ " <th>4</th>\n",
+ " <th>5</th>\n",
+ " <th>6</th>\n",
+ " <th>7</th>\n",
+ " <th>8</th>\n",
+ " <th>9</th>\n",
+ " <th>...</th>\n",
+ " <th>276</th>\n",
+ " <th>277</th>\n",
+ " <th>278</th>\n",
+ " <th>279</th>\n",
+ " <th>280</th>\n",
+ " <th>281</th>\n",
+ " <th>282</th>\n",
+ " <th>283</th>\n",
+ " <th>284</th>\n",
+ " <th>285</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>_id</th>\n",
+ " <td>0Za26pWVLQpKfXmb9FX10S</td>\n",
+ " <td>6295nz7PVXm49Ihqwm39Ew</td>\n",
+ " <td>0832Tptls5YicHPGgw7ssP</td>\n",
+ " <td>6yq33zsqWCd8cYXQdtAFZ9</td>\n",
+ " <td>5pTWpY8l7B1XcQnijEFGFj</td>\n",
+ " <td>4E8qFhiuYAWEYYAsYIf4dW</td>\n",
+ " <td>7sDQlyQACyT7mNHFwwEMI7</td>\n",
+ " <td>48bJ1sWhJKdB8M43uqi924</td>\n",
+ " <td>6362zAWHGgbrQaoeCFZpuO</td>\n",
+ " <td>4RlD0KvoqPZy5n9Zi76X9l</td>\n",
+ " <td>...</td>\n",
+ " <td>5pR8UH7jCUF9y3rJxDYX3i</td>\n",
+ " <td>6vZfVcild1NPkygdsudJfQ</td>\n",
+ " <td>6hxgHNJjadmCHAJPXw6AYL</td>\n",
+ " <td>2BxO4VLPjzrApKTHZjpz9G</td>\n",
+ " <td>6L7tmFIPKy98Js8ytCB1pT</td>\n",
+ " <td>1n2pCKUiJW7hxFUpbsjuUZ</td>\n",
+ " <td>2gB58ki3GMqyNsdsPpDECH</td>\n",
+ " <td>6C0au9ut1avz4zhryYHudG</td>\n",
+ " <td>1NvBOki5VmSSVelycoMo96</td>\n",
+ " <td>31KuT5lcyp6NlDBjp3EVTp</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>acousticness</th>\n",
+ " <td>0.129</td>\n",
+ " <td>0.424</td>\n",
+ " <td>0.413</td>\n",
+ " <td>0.46</td>\n",
+ " <td>0.426</td>\n",
+ " <td>0.425</td>\n",
+ " <td>0.533</td>\n",
+ " <td>0.565</td>\n",
+ " <td>0.467</td>\n",
+ " <td>0.572</td>\n",
+ " <td>...</td>\n",
+ " <td>0.214</td>\n",
+ " <td>0.437</td>\n",
+ " <td>0.0188</td>\n",
+ " <td>0.181</td>\n",
+ " <td>0.0207</td>\n",
+ " <td>0.828</td>\n",
+ " <td>0.00742</td>\n",
+ " <td>0.0184</td>\n",
+ " <td>0.002</td>\n",
+ " <td>0.000283</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>album</th>\n",
+ " <td>{'name': 'Some Girls', 'type': 'album', 'artis...</td>\n",
+ " <td>{'name': 'Some Girls', 'type': 'album', 'artis...</td>\n",
+ " <td>{'name': 'Some Girls', 'type': 'album', 'artis...</td>\n",
+ " <td>{'name': 'Some Girls', 'type': 'album', 'artis...</td>\n",
+ " <td>{'name': 'Some Girls (Deluxe Version)', 'type'...</td>\n",
+ " <td>{'name': 'Some Girls (Deluxe Version)', 'type'...</td>\n",
+ " <td>{'name': 'Some Girls (Deluxe Version)', 'type'...</td>\n",
+ " <td>{'name': 'Some Girls (Deluxe Version)', 'type'...</td>\n",
+ " <td>{'name': 'Some Girls (Deluxe Version)', 'type'...</td>\n",
+ " <td>{'name': 'Some Girls (Deluxe Version)', 'type'...</td>\n",
+ " <td>...</td>\n",
+ " <td>{'name': 'Live 1965: Music From Charlie Is My ...</td>\n",
+ " <td>{'name': 'Live 1965: Music From Charlie Is My ...</td>\n",
+ " <td>{'name': 'Live 1965: Music From Charlie Is My ...</td>\n",
+ " <td>{'name': 'Live 1965: Music From Charlie Is My ...</td>\n",
+ " <td>{'name': 'Live 1965: Music From Charlie Is My ...</td>\n",
+ " <td>{'name': 'Live 1965: Music From Charlie Is My ...</td>\n",
+ " <td>{'name': 'Live 1965: Music From Charlie Is My ...</td>\n",
+ " <td>{'name': 'Live 1965: Music From Charlie Is My ...</td>\n",
+ " <td>{'name': 'Live 1965: Music From Charlie Is My ...</td>\n",
+ " <td>{'name': 'Live 1965: Music From Charlie Is My ...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>album_id</th>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>54sqbAXxR1jFfyXb1WvrHK</td>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>6FjXxl9VLURGuubdXUn2J3</td>\n",
+ " <td>...</td>\n",
+ " <td>5eTqRwTGKPBUiUuN1rFaXD</td>\n",
+ " <td>5eTqRwTGKPBUiUuN1rFaXD</td>\n",
+ " <td>5eTqRwTGKPBUiUuN1rFaXD</td>\n",
+ " <td>5eTqRwTGKPBUiUuN1rFaXD</td>\n",
+ " <td>5eTqRwTGKPBUiUuN1rFaXD</td>\n",
+ " <td>5eTqRwTGKPBUiUuN1rFaXD</td>\n",
+ " <td>5eTqRwTGKPBUiUuN1rFaXD</td>\n",
+ " <td>5eTqRwTGKPBUiUuN1rFaXD</td>\n",
+ " <td>5eTqRwTGKPBUiUuN1rFaXD</td>\n",
+ " <td>5eTqRwTGKPBUiUuN1rFaXD</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>analysis_url</th>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/0Za2...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/6295...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/0832...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/6yq3...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/5pTW...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/4E8q...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/7sDQ...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/48bJ...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/6362...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/4RlD...</td>\n",
+ " <td>...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/5pR8...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/6vZf...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/6hxg...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/2BxO...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/6L7t...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/1n2p...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/2gB5...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/6C0a...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/1NvB...</td>\n",
+ " <td>https://api.spotify.com/v1/audio-analysis/31Ku...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>artist_id</th>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>...</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " <td>22bE4uQ6baNwSHPVcDxLCe</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>artist_name</th>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>...</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " <td>The Rolling Stones</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>artists</th>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " <td>[{'name': 'The Rolling Stones', 'type': 'artis...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>available_markets</th>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BG, BO, BR, CL, CO, CR, CY, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BG, BO, BR, CL, CO, CR, CY, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BG, BO, BR, CL, CO, CR, CY, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BG, BO, BR, CL, CO, CR, CY, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BG, BO, BR, CL, CO, CR, CY, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BG, BO, BR, CL, CO, CR, CY, C...</td>\n",
+ " <td>...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " <td>[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>danceability</th>\n",
+ " <td>0.456</td>\n",
+ " <td>0.598</td>\n",
+ " <td>0.786</td>\n",
+ " <td>0.737</td>\n",
+ " <td>0.796</td>\n",
+ " <td>0.502</td>\n",
+ " <td>0.449</td>\n",
+ " <td>0.48</td>\n",
+ " <td>0.393</td>\n",
+ " <td>0.66</td>\n",
+ " <td>...</td>\n",
+ " <td>0.183</td>\n",
+ " <td>0.391</td>\n",
+ " <td>0.407</td>\n",
+ " <td>0.46</td>\n",
+ " <td>0.44</td>\n",
+ " <td>0.336</td>\n",
+ " <td>0.438</td>\n",
+ " <td>0.245</td>\n",
+ " <td>0.124</td>\n",
+ " <td>0.213</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>disc_number</th>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>duration_ms</th>\n",
+ " <td>187440</td>\n",
+ " <td>204960</td>\n",
+ " <td>265173</td>\n",
+ " <td>226800</td>\n",
+ " <td>288667</td>\n",
+ " <td>260960</td>\n",
+ " <td>278173</td>\n",
+ " <td>276933</td>\n",
+ " <td>191267</td>\n",
+ " <td>263960</td>\n",
+ " <td>...</td>\n",
+ " <td>123507</td>\n",
+ " <td>103147</td>\n",
+ " <td>171267</td>\n",
+ " <td>135040</td>\n",
+ " <td>147040</td>\n",
+ " <td>32947</td>\n",
+ " <td>155600</td>\n",
+ " <td>164320</td>\n",
+ " <td>148560</td>\n",
+ " <td>189600</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>energy</th>\n",
+ " <td>0.992</td>\n",
+ " <td>0.943</td>\n",
+ " <td>0.87</td>\n",
+ " <td>0.943</td>\n",
+ " <td>0.711</td>\n",
+ " <td>0.983</td>\n",
+ " <td>0.91</td>\n",
+ " <td>0.933</td>\n",
+ " <td>0.997</td>\n",
+ " <td>0.611</td>\n",
+ " <td>...</td>\n",
+ " <td>0.913</td>\n",
+ " <td>0.967</td>\n",
+ " <td>0.796</td>\n",
+ " <td>0.976</td>\n",
+ " <td>0.932</td>\n",
+ " <td>0.97</td>\n",
+ " <td>0.912</td>\n",
+ " <td>0.964</td>\n",
+ " <td>0.92</td>\n",
+ " <td>0.929</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>explicit</th>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>True</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>...</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " <td>False</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>external_ids</th>\n",
+ " <td>{'isrc': 'GBCJN7800007'}</td>\n",
+ " <td>{'isrc': 'GBCJN7800008'}</td>\n",
+ " <td>{'isrc': 'GBCJN7800009'}</td>\n",
+ " <td>{'isrc': 'GBCJN7800010'}</td>\n",
+ " <td>{'isrc': 'GBCJN7800001'}</td>\n",
+ " <td>{'isrc': 'GBCJN7800002'}</td>\n",
+ " <td>{'isrc': 'GBCJN7800003'}</td>\n",
+ " <td>{'isrc': 'GBCJN7800004'}</td>\n",
+ " <td>{'isrc': 'GBCJN7800005'}</td>\n",
+ " <td>{'isrc': 'GBCJN7800006'}</td>\n",
+ " <td>...</td>\n",
+ " <td>{'isrc': 'USA171210002'}</td>\n",
+ " <td>{'isrc': 'USA171210003'}</td>\n",
+ " <td>{'isrc': 'USA171210004'}</td>\n",
+ " <td>{'isrc': 'USA171210005'}</td>\n",
+ " <td>{'isrc': 'USA171210006'}</td>\n",
+ " <td>{'isrc': 'USA171210007'}</td>\n",
+ " <td>{'isrc': 'USA171210008'}</td>\n",
+ " <td>{'isrc': 'USA171210009'}</td>\n",
+ " <td>{'isrc': 'USA171210010'}</td>\n",
+ " <td>{'isrc': 'USA171210011'}</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>external_urls</th>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/0Z...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/62...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/08...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/6y...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/5p...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/4E...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/7s...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/48...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/63...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/4R...</td>\n",
+ " <td>...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/5p...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/6v...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/6h...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/2B...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/6L...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/1n...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/2g...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/6C...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/1N...</td>\n",
+ " <td>{'spotify': 'https://open.spotify.com/track/31...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>href</th>\n",
+ " <td>https://api.spotify.com/v1/tracks/0Za26pWVLQpK...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6295nz7PVXm4...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/0832Tptls5Yi...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6yq33zsqWCd8...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/5pTWpY8l7B1X...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/4E8qFhiuYAWE...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/7sDQlyQACyT7...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/48bJ1sWhJKdB...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6362zAWHGgbr...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/4RlD0KvoqPZy...</td>\n",
+ " <td>...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/5pR8UH7jCUF9...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6vZfVcild1NP...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6hxgHNJjadmC...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/2BxO4VLPjzrA...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6L7tmFIPKy98...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/1n2pCKUiJW7h...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/2gB58ki3GMqy...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6C0au9ut1avz...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/1NvBOki5VmSS...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/31KuT5lcyp6N...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>id</th>\n",
+ " <td>0Za26pWVLQpKfXmb9FX10S</td>\n",
+ " <td>6295nz7PVXm49Ihqwm39Ew</td>\n",
+ " <td>0832Tptls5YicHPGgw7ssP</td>\n",
+ " <td>6yq33zsqWCd8cYXQdtAFZ9</td>\n",
+ " <td>5pTWpY8l7B1XcQnijEFGFj</td>\n",
+ " <td>4E8qFhiuYAWEYYAsYIf4dW</td>\n",
+ " <td>7sDQlyQACyT7mNHFwwEMI7</td>\n",
+ " <td>48bJ1sWhJKdB8M43uqi924</td>\n",
+ " <td>6362zAWHGgbrQaoeCFZpuO</td>\n",
+ " <td>4RlD0KvoqPZy5n9Zi76X9l</td>\n",
+ " <td>...</td>\n",
+ " <td>5pR8UH7jCUF9y3rJxDYX3i</td>\n",
+ " <td>6vZfVcild1NPkygdsudJfQ</td>\n",
+ " <td>6hxgHNJjadmCHAJPXw6AYL</td>\n",
+ " <td>2BxO4VLPjzrApKTHZjpz9G</td>\n",
+ " <td>6L7tmFIPKy98Js8ytCB1pT</td>\n",
+ " <td>1n2pCKUiJW7hxFUpbsjuUZ</td>\n",
+ " <td>2gB58ki3GMqyNsdsPpDECH</td>\n",
+ " <td>6C0au9ut1avz4zhryYHudG</td>\n",
+ " <td>1NvBOki5VmSSVelycoMo96</td>\n",
+ " <td>31KuT5lcyp6NlDBjp3EVTp</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>instrumentalness</th>\n",
+ " <td>0.902</td>\n",
+ " <td>0.0153</td>\n",
+ " <td>0.000494</td>\n",
+ " <td>1.35e-05</td>\n",
+ " <td>0.00381</td>\n",
+ " <td>0.895</td>\n",
+ " <td>0.233</td>\n",
+ " <td>0.51</td>\n",
+ " <td>0.937</td>\n",
+ " <td>0.00656</td>\n",
+ " <td>...</td>\n",
+ " <td>0.885</td>\n",
+ " <td>0.301</td>\n",
+ " <td>0.897</td>\n",
+ " <td>0.744</td>\n",
+ " <td>0.913</td>\n",
+ " <td>0.894</td>\n",
+ " <td>0.848</td>\n",
+ " <td>0.411</td>\n",
+ " <td>0.963</td>\n",
+ " <td>0.269</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>key</th>\n",
+ " <td>9</td>\n",
+ " <td>7</td>\n",
+ " <td>1</td>\n",
+ " <td>4</td>\n",
+ " <td>9</td>\n",
+ " <td>2</td>\n",
+ " <td>9</td>\n",
+ " <td>9</td>\n",
+ " <td>9</td>\n",
+ " <td>5</td>\n",
+ " <td>...</td>\n",
+ " <td>9</td>\n",
+ " <td>9</td>\n",
+ " <td>5</td>\n",
+ " <td>1</td>\n",
+ " <td>9</td>\n",
+ " <td>7</td>\n",
+ " <td>7</td>\n",
+ " <td>2</td>\n",
+ " <td>4</td>\n",
+ " <td>9</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>liveness</th>\n",
+ " <td>0.0677</td>\n",
+ " <td>0.0499</td>\n",
+ " <td>0.0389</td>\n",
+ " <td>0.124</td>\n",
+ " <td>0.364</td>\n",
+ " <td>0.242</td>\n",
+ " <td>0.411</td>\n",
+ " <td>0.409</td>\n",
+ " <td>0.524</td>\n",
+ " <td>0.258</td>\n",
+ " <td>...</td>\n",
+ " <td>0.634</td>\n",
+ " <td>0.734</td>\n",
+ " <td>0.618</td>\n",
+ " <td>0.824</td>\n",
+ " <td>0.891</td>\n",
+ " <td>0.903</td>\n",
+ " <td>0.702</td>\n",
+ " <td>0.93</td>\n",
+ " <td>0.616</td>\n",
+ " <td>0.932</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>loudness</th>\n",
+ " <td>-2.732</td>\n",
+ " <td>-2.256</td>\n",
+ " <td>-3.875</td>\n",
+ " <td>-2.63</td>\n",
+ " <td>-4.755</td>\n",
+ " <td>-1.839</td>\n",
+ " <td>-2.495</td>\n",
+ " <td>-2.65</td>\n",
+ " <td>-1.429</td>\n",
+ " <td>-5.643</td>\n",
+ " <td>...</td>\n",
+ " <td>-6.776</td>\n",
+ " <td>-5.087</td>\n",
+ " <td>-4.883</td>\n",
+ " <td>-6.162</td>\n",
+ " <td>-5.23</td>\n",
+ " <td>-11.863</td>\n",
+ " <td>-5.511</td>\n",
+ " <td>-5.626</td>\n",
+ " <td>-4.728</td>\n",
+ " <td>-4.779</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>mode</th>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>0</td>\n",
+ " <td>1</td>\n",
+ " <td>0</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>...</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>0</td>\n",
+ " <td>1</td>\n",
+ " <td>0</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>name</th>\n",
+ " <td>Respectable - Remastered</td>\n",
+ " <td>Before They Make Me Run - Remastered</td>\n",
+ " <td>Beast Of Burden - Remastered</td>\n",
+ " <td>Shattered - Remastered</td>\n",
+ " <td>Miss You - Remastered</td>\n",
+ " <td>When The Whip Comes Down - Remastered</td>\n",
+ " <td>Just My Imagination (Running Away With Me) - R...</td>\n",
+ " <td>Some Girls - Remastered</td>\n",
+ " <td>Lies - Remastered</td>\n",
+ " <td>Far Away Eyes - Remastered</td>\n",
+ " <td>...</td>\n",
+ " <td>Pain In My Heart - Live In Ireland / 1965</td>\n",
+ " <td>Down The Road Apiece - Live In Ireland / 1965</td>\n",
+ " <td>Time Is On My Side - Live In Ireland / 1965</td>\n",
+ " <td>I'm Alright - Live In Ireland / 1965</td>\n",
+ " <td>Off The Hook - Live In Ireland / 1965</td>\n",
+ " <td>Charlie's Intro To Little Red Rooster - Live I...</td>\n",
+ " <td>Little Red Rooster - Live In Ireland / 1965</td>\n",
+ " <td>Route 66 - Live In Ireland / 1965</td>\n",
+ " <td>I'm Moving On - Live In Ireland / 1965</td>\n",
+ " <td>The Last Time - Live In Ireland / 1965</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>popularity</th>\n",
+ " <td>30</td>\n",
+ " <td>25</td>\n",
+ " <td>59</td>\n",
+ " <td>29</td>\n",
+ " <td>48</td>\n",
+ " <td>20</td>\n",
+ " <td>20</td>\n",
+ " <td>21</td>\n",
+ " <td>18</td>\n",
+ " <td>22</td>\n",
+ " <td>...</td>\n",
+ " <td>26</td>\n",
+ " <td>25</td>\n",
+ " <td>27</td>\n",
+ " <td>25</td>\n",
+ " <td>25</td>\n",
+ " <td>24</td>\n",
+ " <td>26</td>\n",
+ " <td>27</td>\n",
+ " <td>24</td>\n",
+ " <td>25</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>preview_url</th>\n",
+ " <td>https://p.scdn.co/mp3-preview/f5e932d9acc6a359...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/ee5832b597975b27...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/6707390f6c75c161...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/bd736b977c5779dd...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/24d78633a528e097...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/04077ab8e65aa5bd...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/fdc2fc95a0570ab2...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/4f5b79e1aad39504...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/773b5d89ea8785ff...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/77dce854cf9bb957...</td>\n",
+ " <td>...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/f18e277f99716320...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/1b3f0b694fafd556...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/f05982fa4bd5604e...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/63e454d027fa6809...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/2b9e3ebd8aec9ab2...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/4a472a3dff8d8941...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/7fd37df80648f4d8...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/bb4461680e5ab01d...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/64c62c7e8f7eb6bf...</td>\n",
+ " <td>https://p.scdn.co/mp3-preview/4e412cd1b893a89b...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>speechiness</th>\n",
+ " <td>0.0639</td>\n",
+ " <td>0.123</td>\n",
+ " <td>0.0316</td>\n",
+ " <td>0.146</td>\n",
+ " <td>0.0427</td>\n",
+ " <td>0.0485</td>\n",
+ " <td>0.0678</td>\n",
+ " <td>0.0866</td>\n",
+ " <td>0.188</td>\n",
+ " <td>0.0286</td>\n",
+ " <td>...</td>\n",
+ " <td>0.078</td>\n",
+ " <td>0.117</td>\n",
+ " <td>0.039</td>\n",
+ " <td>0.12</td>\n",
+ " <td>0.0562</td>\n",
+ " <td>0.167</td>\n",
+ " <td>0.0757</td>\n",
+ " <td>0.152</td>\n",
+ " <td>0.103</td>\n",
+ " <td>0.059</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>tempo</th>\n",
+ " <td>152.204</td>\n",
+ " <td>132.596</td>\n",
+ " <td>100.66</td>\n",
+ " <td>140.398</td>\n",
+ " <td>109.673</td>\n",
+ " <td>130.538</td>\n",
+ " <td>112.957</td>\n",
+ " <td>72.078</td>\n",
+ " <td>162.285</td>\n",
+ " <td>94.295</td>\n",
+ " <td>...</td>\n",
+ " <td>183.775</td>\n",
+ " <td>93.172</td>\n",
+ " <td>98.415</td>\n",
+ " <td>117.236</td>\n",
+ " <td>76.844</td>\n",
+ " <td>109.424</td>\n",
+ " <td>115.7</td>\n",
+ " <td>166.196</td>\n",
+ " <td>162.889</td>\n",
+ " <td>180.024</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>time_signature</th>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>...</td>\n",
+ " <td>3</td>\n",
+ " <td>4</td>\n",
+ " <td>3</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>3</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " <td>4</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>track_href</th>\n",
+ " <td>https://api.spotify.com/v1/tracks/0Za26pWVLQpK...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6295nz7PVXm4...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/0832Tptls5Yi...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6yq33zsqWCd8...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/5pTWpY8l7B1X...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/4E8qFhiuYAWE...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/7sDQlyQACyT7...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/48bJ1sWhJKdB...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6362zAWHGgbr...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/4RlD0KvoqPZy...</td>\n",
+ " <td>...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/5pR8UH7jCUF9...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6vZfVcild1NP...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6hxgHNJjadmC...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/2BxO4VLPjzrA...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6L7tmFIPKy98...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/1n2pCKUiJW7h...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/2gB58ki3GMqy...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/6C0au9ut1avz...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/1NvBOki5VmSS...</td>\n",
+ " <td>https://api.spotify.com/v1/tracks/31KuT5lcyp6N...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>track_number</th>\n",
+ " <td>7</td>\n",
+ " <td>8</td>\n",
+ " <td>9</td>\n",
+ " <td>10</td>\n",
+ " <td>1</td>\n",
+ " <td>2</td>\n",
+ " <td>3</td>\n",
+ " <td>4</td>\n",
+ " <td>5</td>\n",
+ " <td>6</td>\n",
+ " <td>...</td>\n",
+ " <td>3</td>\n",
+ " <td>4</td>\n",
+ " <td>5</td>\n",
+ " <td>6</td>\n",
+ " <td>7</td>\n",
+ " <td>8</td>\n",
+ " <td>9</td>\n",
+ " <td>10</td>\n",
+ " <td>11</td>\n",
+ " <td>12</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>type</th>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>...</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " <td>audio_features</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>uri</th>\n",
+ " <td>spotify:track:0Za26pWVLQpKfXmb9FX10S</td>\n",
+ " <td>spotify:track:6295nz7PVXm49Ihqwm39Ew</td>\n",
+ " <td>spotify:track:0832Tptls5YicHPGgw7ssP</td>\n",
+ " <td>spotify:track:6yq33zsqWCd8cYXQdtAFZ9</td>\n",
+ " <td>spotify:track:5pTWpY8l7B1XcQnijEFGFj</td>\n",
+ " <td>spotify:track:4E8qFhiuYAWEYYAsYIf4dW</td>\n",
+ " <td>spotify:track:7sDQlyQACyT7mNHFwwEMI7</td>\n",
+ " <td>spotify:track:48bJ1sWhJKdB8M43uqi924</td>\n",
+ " <td>spotify:track:6362zAWHGgbrQaoeCFZpuO</td>\n",
+ " <td>spotify:track:4RlD0KvoqPZy5n9Zi76X9l</td>\n",
+ " <td>...</td>\n",
+ " <td>spotify:track:5pR8UH7jCUF9y3rJxDYX3i</td>\n",
+ " <td>spotify:track:6vZfVcild1NPkygdsudJfQ</td>\n",
+ " <td>spotify:track:6hxgHNJjadmCHAJPXw6AYL</td>\n",
+ " <td>spotify:track:2BxO4VLPjzrApKTHZjpz9G</td>\n",
+ " <td>spotify:track:6L7tmFIPKy98Js8ytCB1pT</td>\n",
+ " <td>spotify:track:1n2pCKUiJW7hxFUpbsjuUZ</td>\n",
+ " <td>spotify:track:2gB58ki3GMqyNsdsPpDECH</td>\n",
+ " <td>spotify:track:6C0au9ut1avz4zhryYHudG</td>\n",
+ " <td>spotify:track:1NvBOki5VmSSVelycoMo96</td>\n",
+ " <td>spotify:track:31KuT5lcyp6NlDBjp3EVTp</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>valence</th>\n",
+ " <td>0.899</td>\n",
+ " <td>0.687</td>\n",
+ " <td>0.865</td>\n",
+ " <td>0.747</td>\n",
+ " <td>0.825</td>\n",
+ " <td>0.812</td>\n",
+ " <td>0.848</td>\n",
+ " <td>0.558</td>\n",
+ " <td>0.582</td>\n",
+ " <td>0.694</td>\n",
+ " <td>...</td>\n",
+ " <td>0.266</td>\n",
+ " <td>0.358</td>\n",
+ " <td>0.257</td>\n",
+ " <td>0.284</td>\n",
+ " <td>0.549</td>\n",
+ " <td>0.0357</td>\n",
+ " <td>0.431</td>\n",
+ " <td>0.588</td>\n",
+ " <td>0.244</td>\n",
+ " <td>0.484</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "<p>34 rows × 286 columns</p>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " 0 \\\n",
+ "_id 0Za26pWVLQpKfXmb9FX10S \n",
+ "acousticness 0.129 \n",
+ "album {'name': 'Some Girls', 'type': 'album', 'artis... \n",
+ "album_id 54sqbAXxR1jFfyXb1WvrHK \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/0Za2... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "danceability 0.456 \n",
+ "disc_number 1 \n",
+ "duration_ms 187440 \n",
+ "energy 0.992 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBCJN7800007'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/0Z... \n",
+ "href https://api.spotify.com/v1/tracks/0Za26pWVLQpK... \n",
+ "id 0Za26pWVLQpKfXmb9FX10S \n",
+ "instrumentalness 0.902 \n",
+ "key 9 \n",
+ "liveness 0.0677 \n",
+ "loudness -2.732 \n",
+ "mode 1 \n",
+ "name Respectable - Remastered \n",
+ "popularity 30 \n",
+ "preview_url https://p.scdn.co/mp3-preview/f5e932d9acc6a359... \n",
+ "speechiness 0.0639 \n",
+ "tempo 152.204 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/0Za26pWVLQpK... \n",
+ "track_number 7 \n",
+ "type audio_features \n",
+ "uri spotify:track:0Za26pWVLQpKfXmb9FX10S \n",
+ "valence 0.899 \n",
+ "\n",
+ " 1 \\\n",
+ "_id 6295nz7PVXm49Ihqwm39Ew \n",
+ "acousticness 0.424 \n",
+ "album {'name': 'Some Girls', 'type': 'album', 'artis... \n",
+ "album_id 54sqbAXxR1jFfyXb1WvrHK \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/6295... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "danceability 0.598 \n",
+ "disc_number 1 \n",
+ "duration_ms 204960 \n",
+ "energy 0.943 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBCJN7800008'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/62... \n",
+ "href https://api.spotify.com/v1/tracks/6295nz7PVXm4... \n",
+ "id 6295nz7PVXm49Ihqwm39Ew \n",
+ "instrumentalness 0.0153 \n",
+ "key 7 \n",
+ "liveness 0.0499 \n",
+ "loudness -2.256 \n",
+ "mode 1 \n",
+ "name Before They Make Me Run - Remastered \n",
+ "popularity 25 \n",
+ "preview_url https://p.scdn.co/mp3-preview/ee5832b597975b27... \n",
+ "speechiness 0.123 \n",
+ "tempo 132.596 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/6295nz7PVXm4... \n",
+ "track_number 8 \n",
+ "type audio_features \n",
+ "uri spotify:track:6295nz7PVXm49Ihqwm39Ew \n",
+ "valence 0.687 \n",
+ "\n",
+ " 2 \\\n",
+ "_id 0832Tptls5YicHPGgw7ssP \n",
+ "acousticness 0.413 \n",
+ "album {'name': 'Some Girls', 'type': 'album', 'artis... \n",
+ "album_id 54sqbAXxR1jFfyXb1WvrHK \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/0832... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "danceability 0.786 \n",
+ "disc_number 1 \n",
+ "duration_ms 265173 \n",
+ "energy 0.87 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBCJN7800009'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/08... \n",
+ "href https://api.spotify.com/v1/tracks/0832Tptls5Yi... \n",
+ "id 0832Tptls5YicHPGgw7ssP \n",
+ "instrumentalness 0.000494 \n",
+ "key 1 \n",
+ "liveness 0.0389 \n",
+ "loudness -3.875 \n",
+ "mode 0 \n",
+ "name Beast Of Burden - Remastered \n",
+ "popularity 59 \n",
+ "preview_url https://p.scdn.co/mp3-preview/6707390f6c75c161... \n",
+ "speechiness 0.0316 \n",
+ "tempo 100.66 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/0832Tptls5Yi... \n",
+ "track_number 9 \n",
+ "type audio_features \n",
+ "uri spotify:track:0832Tptls5YicHPGgw7ssP \n",
+ "valence 0.865 \n",
+ "\n",
+ " 3 \\\n",
+ "_id 6yq33zsqWCd8cYXQdtAFZ9 \n",
+ "acousticness 0.46 \n",
+ "album {'name': 'Some Girls', 'type': 'album', 'artis... \n",
+ "album_id 54sqbAXxR1jFfyXb1WvrHK \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/6yq3... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "danceability 0.737 \n",
+ "disc_number 1 \n",
+ "duration_ms 226800 \n",
+ "energy 0.943 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBCJN7800010'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/6y... \n",
+ "href https://api.spotify.com/v1/tracks/6yq33zsqWCd8... \n",
+ "id 6yq33zsqWCd8cYXQdtAFZ9 \n",
+ "instrumentalness 1.35e-05 \n",
+ "key 4 \n",
+ "liveness 0.124 \n",
+ "loudness -2.63 \n",
+ "mode 1 \n",
+ "name Shattered - Remastered \n",
+ "popularity 29 \n",
+ "preview_url https://p.scdn.co/mp3-preview/bd736b977c5779dd... \n",
+ "speechiness 0.146 \n",
+ "tempo 140.398 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/6yq33zsqWCd8... \n",
+ "track_number 10 \n",
+ "type audio_features \n",
+ "uri spotify:track:6yq33zsqWCd8cYXQdtAFZ9 \n",
+ "valence 0.747 \n",
+ "\n",
+ " 4 \\\n",
+ "_id 5pTWpY8l7B1XcQnijEFGFj \n",
+ "acousticness 0.426 \n",
+ "album {'name': 'Some Girls (Deluxe Version)', 'type'... \n",
+ "album_id 6FjXxl9VLURGuubdXUn2J3 \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/5pTW... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BG, BO, BR, CL, CO, CR, CY, C... \n",
+ "danceability 0.796 \n",
+ "disc_number 1 \n",
+ "duration_ms 288667 \n",
+ "energy 0.711 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBCJN7800001'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/5p... \n",
+ "href https://api.spotify.com/v1/tracks/5pTWpY8l7B1X... \n",
+ "id 5pTWpY8l7B1XcQnijEFGFj \n",
+ "instrumentalness 0.00381 \n",
+ "key 9 \n",
+ "liveness 0.364 \n",
+ "loudness -4.755 \n",
+ "mode 0 \n",
+ "name Miss You - Remastered \n",
+ "popularity 48 \n",
+ "preview_url https://p.scdn.co/mp3-preview/24d78633a528e097... \n",
+ "speechiness 0.0427 \n",
+ "tempo 109.673 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/5pTWpY8l7B1X... \n",
+ "track_number 1 \n",
+ "type audio_features \n",
+ "uri spotify:track:5pTWpY8l7B1XcQnijEFGFj \n",
+ "valence 0.825 \n",
+ "\n",
+ " 5 \\\n",
+ "_id 4E8qFhiuYAWEYYAsYIf4dW \n",
+ "acousticness 0.425 \n",
+ "album {'name': 'Some Girls (Deluxe Version)', 'type'... \n",
+ "album_id 6FjXxl9VLURGuubdXUn2J3 \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/4E8q... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BG, BO, BR, CL, CO, CR, CY, C... \n",
+ "danceability 0.502 \n",
+ "disc_number 1 \n",
+ "duration_ms 260960 \n",
+ "energy 0.983 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBCJN7800002'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/4E... \n",
+ "href https://api.spotify.com/v1/tracks/4E8qFhiuYAWE... \n",
+ "id 4E8qFhiuYAWEYYAsYIf4dW \n",
+ "instrumentalness 0.895 \n",
+ "key 2 \n",
+ "liveness 0.242 \n",
+ "loudness -1.839 \n",
+ "mode 1 \n",
+ "name When The Whip Comes Down - Remastered \n",
+ "popularity 20 \n",
+ "preview_url https://p.scdn.co/mp3-preview/04077ab8e65aa5bd... \n",
+ "speechiness 0.0485 \n",
+ "tempo 130.538 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/4E8qFhiuYAWE... \n",
+ "track_number 2 \n",
+ "type audio_features \n",
+ "uri spotify:track:4E8qFhiuYAWEYYAsYIf4dW \n",
+ "valence 0.812 \n",
+ "\n",
+ " 6 \\\n",
+ "_id 7sDQlyQACyT7mNHFwwEMI7 \n",
+ "acousticness 0.533 \n",
+ "album {'name': 'Some Girls (Deluxe Version)', 'type'... \n",
+ "album_id 6FjXxl9VLURGuubdXUn2J3 \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/7sDQ... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BG, BO, BR, CL, CO, CR, CY, C... \n",
+ "danceability 0.449 \n",
+ "disc_number 1 \n",
+ "duration_ms 278173 \n",
+ "energy 0.91 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBCJN7800003'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/7s... \n",
+ "href https://api.spotify.com/v1/tracks/7sDQlyQACyT7... \n",
+ "id 7sDQlyQACyT7mNHFwwEMI7 \n",
+ "instrumentalness 0.233 \n",
+ "key 9 \n",
+ "liveness 0.411 \n",
+ "loudness -2.495 \n",
+ "mode 1 \n",
+ "name Just My Imagination (Running Away With Me) - R... \n",
+ "popularity 20 \n",
+ "preview_url https://p.scdn.co/mp3-preview/fdc2fc95a0570ab2... \n",
+ "speechiness 0.0678 \n",
+ "tempo 112.957 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/7sDQlyQACyT7... \n",
+ "track_number 3 \n",
+ "type audio_features \n",
+ "uri spotify:track:7sDQlyQACyT7mNHFwwEMI7 \n",
+ "valence 0.848 \n",
+ "\n",
+ " 7 \\\n",
+ "_id 48bJ1sWhJKdB8M43uqi924 \n",
+ "acousticness 0.565 \n",
+ "album {'name': 'Some Girls (Deluxe Version)', 'type'... \n",
+ "album_id 6FjXxl9VLURGuubdXUn2J3 \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/48bJ... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BG, BO, BR, CL, CO, CR, CY, C... \n",
+ "danceability 0.48 \n",
+ "disc_number 1 \n",
+ "duration_ms 276933 \n",
+ "energy 0.933 \n",
+ "explicit True \n",
+ "external_ids {'isrc': 'GBCJN7800004'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/48... \n",
+ "href https://api.spotify.com/v1/tracks/48bJ1sWhJKdB... \n",
+ "id 48bJ1sWhJKdB8M43uqi924 \n",
+ "instrumentalness 0.51 \n",
+ "key 9 \n",
+ "liveness 0.409 \n",
+ "loudness -2.65 \n",
+ "mode 1 \n",
+ "name Some Girls - Remastered \n",
+ "popularity 21 \n",
+ "preview_url https://p.scdn.co/mp3-preview/4f5b79e1aad39504... \n",
+ "speechiness 0.0866 \n",
+ "tempo 72.078 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/48bJ1sWhJKdB... \n",
+ "track_number 4 \n",
+ "type audio_features \n",
+ "uri spotify:track:48bJ1sWhJKdB8M43uqi924 \n",
+ "valence 0.558 \n",
+ "\n",
+ " 8 \\\n",
+ "_id 6362zAWHGgbrQaoeCFZpuO \n",
+ "acousticness 0.467 \n",
+ "album {'name': 'Some Girls (Deluxe Version)', 'type'... \n",
+ "album_id 6FjXxl9VLURGuubdXUn2J3 \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/6362... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BG, BO, BR, CL, CO, CR, CY, C... \n",
+ "danceability 0.393 \n",
+ "disc_number 1 \n",
+ "duration_ms 191267 \n",
+ "energy 0.997 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBCJN7800005'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/63... \n",
+ "href https://api.spotify.com/v1/tracks/6362zAWHGgbr... \n",
+ "id 6362zAWHGgbrQaoeCFZpuO \n",
+ "instrumentalness 0.937 \n",
+ "key 9 \n",
+ "liveness 0.524 \n",
+ "loudness -1.429 \n",
+ "mode 1 \n",
+ "name Lies - Remastered \n",
+ "popularity 18 \n",
+ "preview_url https://p.scdn.co/mp3-preview/773b5d89ea8785ff... \n",
+ "speechiness 0.188 \n",
+ "tempo 162.285 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/6362zAWHGgbr... \n",
+ "track_number 5 \n",
+ "type audio_features \n",
+ "uri spotify:track:6362zAWHGgbrQaoeCFZpuO \n",
+ "valence 0.582 \n",
+ "\n",
+ " 9 \\\n",
+ "_id 4RlD0KvoqPZy5n9Zi76X9l \n",
+ "acousticness 0.572 \n",
+ "album {'name': 'Some Girls (Deluxe Version)', 'type'... \n",
+ "album_id 6FjXxl9VLURGuubdXUn2J3 \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/4RlD... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BG, BO, BR, CL, CO, CR, CY, C... \n",
+ "danceability 0.66 \n",
+ "disc_number 1 \n",
+ "duration_ms 263960 \n",
+ "energy 0.611 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'GBCJN7800006'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/4R... \n",
+ "href https://api.spotify.com/v1/tracks/4RlD0KvoqPZy... \n",
+ "id 4RlD0KvoqPZy5n9Zi76X9l \n",
+ "instrumentalness 0.00656 \n",
+ "key 5 \n",
+ "liveness 0.258 \n",
+ "loudness -5.643 \n",
+ "mode 1 \n",
+ "name Far Away Eyes - Remastered \n",
+ "popularity 22 \n",
+ "preview_url https://p.scdn.co/mp3-preview/77dce854cf9bb957... \n",
+ "speechiness 0.0286 \n",
+ "tempo 94.295 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/4RlD0KvoqPZy... \n",
+ "track_number 6 \n",
+ "type audio_features \n",
+ "uri spotify:track:4RlD0KvoqPZy5n9Zi76X9l \n",
+ "valence 0.694 \n",
+ "\n",
+ " ... \\\n",
+ "_id ... \n",
+ "acousticness ... \n",
+ "album ... \n",
+ "album_id ... \n",
+ "analysis_url ... \n",
+ "artist_id ... \n",
+ "artist_name ... \n",
+ "artists ... \n",
+ "available_markets ... \n",
+ "danceability ... \n",
+ "disc_number ... \n",
+ "duration_ms ... \n",
+ "energy ... \n",
+ "explicit ... \n",
+ "external_ids ... \n",
+ "external_urls ... \n",
+ "href ... \n",
+ "id ... \n",
+ "instrumentalness ... \n",
+ "key ... \n",
+ "liveness ... \n",
+ "loudness ... \n",
+ "mode ... \n",
+ "name ... \n",
+ "popularity ... \n",
+ "preview_url ... \n",
+ "speechiness ... \n",
+ "tempo ... \n",
+ "time_signature ... \n",
+ "track_href ... \n",
+ "track_number ... \n",
+ "type ... \n",
+ "uri ... \n",
+ "valence ... \n",
+ "\n",
+ " 276 \\\n",
+ "_id 5pR8UH7jCUF9y3rJxDYX3i \n",
+ "acousticness 0.214 \n",
+ "album {'name': 'Live 1965: Music From Charlie Is My ... \n",
+ "album_id 5eTqRwTGKPBUiUuN1rFaXD \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/5pR8... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "danceability 0.183 \n",
+ "disc_number 1 \n",
+ "duration_ms 123507 \n",
+ "energy 0.913 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'USA171210002'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/5p... \n",
+ "href https://api.spotify.com/v1/tracks/5pR8UH7jCUF9... \n",
+ "id 5pR8UH7jCUF9y3rJxDYX3i \n",
+ "instrumentalness 0.885 \n",
+ "key 9 \n",
+ "liveness 0.634 \n",
+ "loudness -6.776 \n",
+ "mode 1 \n",
+ "name Pain In My Heart - Live In Ireland / 1965 \n",
+ "popularity 26 \n",
+ "preview_url https://p.scdn.co/mp3-preview/f18e277f99716320... \n",
+ "speechiness 0.078 \n",
+ "tempo 183.775 \n",
+ "time_signature 3 \n",
+ "track_href https://api.spotify.com/v1/tracks/5pR8UH7jCUF9... \n",
+ "track_number 3 \n",
+ "type audio_features \n",
+ "uri spotify:track:5pR8UH7jCUF9y3rJxDYX3i \n",
+ "valence 0.266 \n",
+ "\n",
+ " 277 \\\n",
+ "_id 6vZfVcild1NPkygdsudJfQ \n",
+ "acousticness 0.437 \n",
+ "album {'name': 'Live 1965: Music From Charlie Is My ... \n",
+ "album_id 5eTqRwTGKPBUiUuN1rFaXD \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/6vZf... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "danceability 0.391 \n",
+ "disc_number 1 \n",
+ "duration_ms 103147 \n",
+ "energy 0.967 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'USA171210003'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/6v... \n",
+ "href https://api.spotify.com/v1/tracks/6vZfVcild1NP... \n",
+ "id 6vZfVcild1NPkygdsudJfQ \n",
+ "instrumentalness 0.301 \n",
+ "key 9 \n",
+ "liveness 0.734 \n",
+ "loudness -5.087 \n",
+ "mode 1 \n",
+ "name Down The Road Apiece - Live In Ireland / 1965 \n",
+ "popularity 25 \n",
+ "preview_url https://p.scdn.co/mp3-preview/1b3f0b694fafd556... \n",
+ "speechiness 0.117 \n",
+ "tempo 93.172 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/6vZfVcild1NP... \n",
+ "track_number 4 \n",
+ "type audio_features \n",
+ "uri spotify:track:6vZfVcild1NPkygdsudJfQ \n",
+ "valence 0.358 \n",
+ "\n",
+ " 278 \\\n",
+ "_id 6hxgHNJjadmCHAJPXw6AYL \n",
+ "acousticness 0.0188 \n",
+ "album {'name': 'Live 1965: Music From Charlie Is My ... \n",
+ "album_id 5eTqRwTGKPBUiUuN1rFaXD \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/6hxg... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "danceability 0.407 \n",
+ "disc_number 1 \n",
+ "duration_ms 171267 \n",
+ "energy 0.796 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'USA171210004'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/6h... \n",
+ "href https://api.spotify.com/v1/tracks/6hxgHNJjadmC... \n",
+ "id 6hxgHNJjadmCHAJPXw6AYL \n",
+ "instrumentalness 0.897 \n",
+ "key 5 \n",
+ "liveness 0.618 \n",
+ "loudness -4.883 \n",
+ "mode 1 \n",
+ "name Time Is On My Side - Live In Ireland / 1965 \n",
+ "popularity 27 \n",
+ "preview_url https://p.scdn.co/mp3-preview/f05982fa4bd5604e... \n",
+ "speechiness 0.039 \n",
+ "tempo 98.415 \n",
+ "time_signature 3 \n",
+ "track_href https://api.spotify.com/v1/tracks/6hxgHNJjadmC... \n",
+ "track_number 5 \n",
+ "type audio_features \n",
+ "uri spotify:track:6hxgHNJjadmCHAJPXw6AYL \n",
+ "valence 0.257 \n",
+ "\n",
+ " 279 \\\n",
+ "_id 2BxO4VLPjzrApKTHZjpz9G \n",
+ "acousticness 0.181 \n",
+ "album {'name': 'Live 1965: Music From Charlie Is My ... \n",
+ "album_id 5eTqRwTGKPBUiUuN1rFaXD \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/2BxO... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "danceability 0.46 \n",
+ "disc_number 1 \n",
+ "duration_ms 135040 \n",
+ "energy 0.976 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'USA171210005'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/2B... \n",
+ "href https://api.spotify.com/v1/tracks/2BxO4VLPjzrA... \n",
+ "id 2BxO4VLPjzrApKTHZjpz9G \n",
+ "instrumentalness 0.744 \n",
+ "key 1 \n",
+ "liveness 0.824 \n",
+ "loudness -6.162 \n",
+ "mode 0 \n",
+ "name I'm Alright - Live In Ireland / 1965 \n",
+ "popularity 25 \n",
+ "preview_url https://p.scdn.co/mp3-preview/63e454d027fa6809... \n",
+ "speechiness 0.12 \n",
+ "tempo 117.236 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/2BxO4VLPjzrA... \n",
+ "track_number 6 \n",
+ "type audio_features \n",
+ "uri spotify:track:2BxO4VLPjzrApKTHZjpz9G \n",
+ "valence 0.284 \n",
+ "\n",
+ " 280 \\\n",
+ "_id 6L7tmFIPKy98Js8ytCB1pT \n",
+ "acousticness 0.0207 \n",
+ "album {'name': 'Live 1965: Music From Charlie Is My ... \n",
+ "album_id 5eTqRwTGKPBUiUuN1rFaXD \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/6L7t... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "danceability 0.44 \n",
+ "disc_number 1 \n",
+ "duration_ms 147040 \n",
+ "energy 0.932 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'USA171210006'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/6L... \n",
+ "href https://api.spotify.com/v1/tracks/6L7tmFIPKy98... \n",
+ "id 6L7tmFIPKy98Js8ytCB1pT \n",
+ "instrumentalness 0.913 \n",
+ "key 9 \n",
+ "liveness 0.891 \n",
+ "loudness -5.23 \n",
+ "mode 1 \n",
+ "name Off The Hook - Live In Ireland / 1965 \n",
+ "popularity 25 \n",
+ "preview_url https://p.scdn.co/mp3-preview/2b9e3ebd8aec9ab2... \n",
+ "speechiness 0.0562 \n",
+ "tempo 76.844 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/6L7tmFIPKy98... \n",
+ "track_number 7 \n",
+ "type audio_features \n",
+ "uri spotify:track:6L7tmFIPKy98Js8ytCB1pT \n",
+ "valence 0.549 \n",
+ "\n",
+ " 281 \\\n",
+ "_id 1n2pCKUiJW7hxFUpbsjuUZ \n",
+ "acousticness 0.828 \n",
+ "album {'name': 'Live 1965: Music From Charlie Is My ... \n",
+ "album_id 5eTqRwTGKPBUiUuN1rFaXD \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/1n2p... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "danceability 0.336 \n",
+ "disc_number 1 \n",
+ "duration_ms 32947 \n",
+ "energy 0.97 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'USA171210007'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/1n... \n",
+ "href https://api.spotify.com/v1/tracks/1n2pCKUiJW7h... \n",
+ "id 1n2pCKUiJW7hxFUpbsjuUZ \n",
+ "instrumentalness 0.894 \n",
+ "key 7 \n",
+ "liveness 0.903 \n",
+ "loudness -11.863 \n",
+ "mode 0 \n",
+ "name Charlie's Intro To Little Red Rooster - Live I... \n",
+ "popularity 24 \n",
+ "preview_url https://p.scdn.co/mp3-preview/4a472a3dff8d8941... \n",
+ "speechiness 0.167 \n",
+ "tempo 109.424 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/1n2pCKUiJW7h... \n",
+ "track_number 8 \n",
+ "type audio_features \n",
+ "uri spotify:track:1n2pCKUiJW7hxFUpbsjuUZ \n",
+ "valence 0.0357 \n",
+ "\n",
+ " 282 \\\n",
+ "_id 2gB58ki3GMqyNsdsPpDECH \n",
+ "acousticness 0.00742 \n",
+ "album {'name': 'Live 1965: Music From Charlie Is My ... \n",
+ "album_id 5eTqRwTGKPBUiUuN1rFaXD \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/2gB5... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "danceability 0.438 \n",
+ "disc_number 1 \n",
+ "duration_ms 155600 \n",
+ "energy 0.912 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'USA171210008'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/2g... \n",
+ "href https://api.spotify.com/v1/tracks/2gB58ki3GMqy... \n",
+ "id 2gB58ki3GMqyNsdsPpDECH \n",
+ "instrumentalness 0.848 \n",
+ "key 7 \n",
+ "liveness 0.702 \n",
+ "loudness -5.511 \n",
+ "mode 1 \n",
+ "name Little Red Rooster - Live In Ireland / 1965 \n",
+ "popularity 26 \n",
+ "preview_url https://p.scdn.co/mp3-preview/7fd37df80648f4d8... \n",
+ "speechiness 0.0757 \n",
+ "tempo 115.7 \n",
+ "time_signature 3 \n",
+ "track_href https://api.spotify.com/v1/tracks/2gB58ki3GMqy... \n",
+ "track_number 9 \n",
+ "type audio_features \n",
+ "uri spotify:track:2gB58ki3GMqyNsdsPpDECH \n",
+ "valence 0.431 \n",
+ "\n",
+ " 283 \\\n",
+ "_id 6C0au9ut1avz4zhryYHudG \n",
+ "acousticness 0.0184 \n",
+ "album {'name': 'Live 1965: Music From Charlie Is My ... \n",
+ "album_id 5eTqRwTGKPBUiUuN1rFaXD \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/6C0a... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "danceability 0.245 \n",
+ "disc_number 1 \n",
+ "duration_ms 164320 \n",
+ "energy 0.964 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'USA171210009'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/6C... \n",
+ "href https://api.spotify.com/v1/tracks/6C0au9ut1avz... \n",
+ "id 6C0au9ut1avz4zhryYHudG \n",
+ "instrumentalness 0.411 \n",
+ "key 2 \n",
+ "liveness 0.93 \n",
+ "loudness -5.626 \n",
+ "mode 1 \n",
+ "name Route 66 - Live In Ireland / 1965 \n",
+ "popularity 27 \n",
+ "preview_url https://p.scdn.co/mp3-preview/bb4461680e5ab01d... \n",
+ "speechiness 0.152 \n",
+ "tempo 166.196 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/6C0au9ut1avz... \n",
+ "track_number 10 \n",
+ "type audio_features \n",
+ "uri spotify:track:6C0au9ut1avz4zhryYHudG \n",
+ "valence 0.588 \n",
+ "\n",
+ " 284 \\\n",
+ "_id 1NvBOki5VmSSVelycoMo96 \n",
+ "acousticness 0.002 \n",
+ "album {'name': 'Live 1965: Music From Charlie Is My ... \n",
+ "album_id 5eTqRwTGKPBUiUuN1rFaXD \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/1NvB... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "danceability 0.124 \n",
+ "disc_number 1 \n",
+ "duration_ms 148560 \n",
+ "energy 0.92 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'USA171210010'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/1N... \n",
+ "href https://api.spotify.com/v1/tracks/1NvBOki5VmSS... \n",
+ "id 1NvBOki5VmSSVelycoMo96 \n",
+ "instrumentalness 0.963 \n",
+ "key 4 \n",
+ "liveness 0.616 \n",
+ "loudness -4.728 \n",
+ "mode 1 \n",
+ "name I'm Moving On - Live In Ireland / 1965 \n",
+ "popularity 24 \n",
+ "preview_url https://p.scdn.co/mp3-preview/64c62c7e8f7eb6bf... \n",
+ "speechiness 0.103 \n",
+ "tempo 162.889 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/1NvBOki5VmSS... \n",
+ "track_number 11 \n",
+ "type audio_features \n",
+ "uri spotify:track:1NvBOki5VmSSVelycoMo96 \n",
+ "valence 0.244 \n",
+ "\n",
+ " 285 \n",
+ "_id 31KuT5lcyp6NlDBjp3EVTp \n",
+ "acousticness 0.000283 \n",
+ "album {'name': 'Live 1965: Music From Charlie Is My ... \n",
+ "album_id 5eTqRwTGKPBUiUuN1rFaXD \n",
+ "analysis_url https://api.spotify.com/v1/audio-analysis/31Ku... \n",
+ "artist_id 22bE4uQ6baNwSHPVcDxLCe \n",
+ "artist_name The Rolling Stones \n",
+ "artists [{'name': 'The Rolling Stones', 'type': 'artis... \n",
+ "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n",
+ "danceability 0.213 \n",
+ "disc_number 1 \n",
+ "duration_ms 189600 \n",
+ "energy 0.929 \n",
+ "explicit False \n",
+ "external_ids {'isrc': 'USA171210011'} \n",
+ "external_urls {'spotify': 'https://open.spotify.com/track/31... \n",
+ "href https://api.spotify.com/v1/tracks/31KuT5lcyp6N... \n",
+ "id 31KuT5lcyp6NlDBjp3EVTp \n",
+ "instrumentalness 0.269 \n",
+ "key 9 \n",
+ "liveness 0.932 \n",
+ "loudness -4.779 \n",
+ "mode 1 \n",
+ "name The Last Time - Live In Ireland / 1965 \n",
+ "popularity 25 \n",
+ "preview_url https://p.scdn.co/mp3-preview/4e412cd1b893a89b... \n",
+ "speechiness 0.059 \n",
+ "tempo 180.024 \n",
+ "time_signature 4 \n",
+ "track_href https://api.spotify.com/v1/tracks/31KuT5lcyp6N... \n",
+ "track_number 12 \n",
+ "type audio_features \n",
+ "uri spotify:track:31KuT5lcyp6NlDBjp3EVTp \n",
+ "valence 0.484 \n",
+ "\n",
+ "[34 rows x 286 columns]"
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "stones_tracks = pd.DataFrame(list(tracks.find({'artist_id': stones_id})))\n",
+ "stones_tracks.T"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "How happy are the Beatles and Stones tracks?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "<matplotlib.axes._subplots.AxesSubplot at 0x7fa62265d438>"
+ ]
+ },
+ "execution_count": 33,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\nQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fa630ed8518>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "beatles_tracks['valence'].hist()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "<matplotlib.axes._subplots.AxesSubplot at 0x7fa62c0b19b0>"
+ ]
+ },
+ "execution_count": 34,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n81WxAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fa623051080>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "stones_tracks['valence'].hist()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Lyrics search<a name=\"lyricssearch\"></a>\n",
+ "Now to find the lyrics for each track. \n",
+ "\n",
+ "We start by searching for the Genius ID for the artists.\n",
+ "\n",
+ "Note that Genius doesn't like Python-generated requests to its API, so we set the header to pretend to be a command-line `curl` request.\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "def genius_artist_search(artist_name, per_page=20):\n",
+ " query = urllib.parse.urlencode({'q': artist_name,\n",
+ " 'per_page': str(per_page)\n",
+ " })\n",
+ " headers = {'Accept': 'application/json',\n",
+ " 'Authorization': 'Bearer ' + config['genius']['token'],\n",
+ " 'User-Agent': 'curl/7.9.8 (i686-pc-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.6b) (ipv6 enabled)'}\n",
+ " request = urllib.request.Request('https://api.genius.com/search?{}'.format(query), \n",
+ " headers=headers,\n",
+ " method='GET')\n",
+ " with urllib.request.urlopen(request) as f:\n",
+ " response = json.loads(f.read().decode('utf-8'))\n",
+ " return response"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "586"
+ ]
+ },
+ "execution_count": 36,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "response = genius_artist_search('the beatles')\n",
+ "beatles_genius_id = [hit['result']['primary_artist']['id'] for hit in response['response']['hits']][0]\n",
+ "beatles_genius_id"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "774"
+ ]
+ },
+ "execution_count": 38,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "response = genius_artist_search('rolling stones')\n",
+ "stones_genius_id = [hit['result']['primary_artist']['id'] for hit in response['response']['hits']][0]\n",
+ "stones_genius_id"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can now get the song information for each track for each artist. Note that Genius keeps lots of things to do with artists, including sleeve notes and the like. We're just after the lyrics."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "def genius_song_search(artist_id):\n",
+ " songs = pd.DataFrame()\n",
+ " page = 1\n",
+ " while page:\n",
+ " query = urllib.parse.urlencode({'page': page, 'per_page': 20})\n",
+ " headers = {'Accept': 'application/json',\n",
+ " 'Authorization': 'Bearer ' + config['genius']['token'],\n",
+ " 'User-Agent': 'curl/7.9.8 (i686-pc-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.6b) (ipv6 enabled)'}\n",
+ " request = urllib.request.Request('https://api.genius.com/artists/{id}/songs?{query}'.format(id=artist_id,\n",
+ " query=query), \n",
+ " headers=headers,\n",
+ " method='GET')\n",
+ " with urllib.request.urlopen(request) as f:\n",
+ " response = json.loads(f.read().decode('utf-8'))\n",
+ " page = response['response']['next_page']\n",
+ " for song in response['response']['songs']:\n",
+ " if song['path'].endswith('lyrics'):\n",
+ " song['_id'] = song['id']\n",
+ " genius_tracks.replace_one({'_id': song['id']}, song, upsert=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 65,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "402"
+ ]
+ },
+ "execution_count": 65,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "genius_song_search(beatles_genius_id)\n",
+ "genius_tracks.find().count()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1071"
+ ]
+ },
+ "execution_count": 41,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "genius_song_search(stones_genius_id)\n",
+ "genius_tracks.find().count()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 67,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'_id': 210353,\n",
+ " 'annotation_count': 1,\n",
+ " 'api_path': '/songs/210353',\n",
+ " 'full_title': '1822! by\\xa0The\\xa0Beatles',\n",
+ " 'header_image_thumbnail_url': 'https://s3.amazonaws.com/rapgenius/Live%20at%20the%20BBC%20disc%202%20BBC.png',\n",
+ " 'header_image_url': 'https://s3.amazonaws.com/rapgenius/Live%20at%20the%20BBC%20disc%202%20BBC.png',\n",
+ " 'id': 210353,\n",
+ " 'lyrics_owner_id': 225680,\n",
+ " 'path': '/The-beatles-1822-lyrics',\n",
+ " 'primary_artist': {'api_path': '/artists/586',\n",
+ " 'header_image_url': 'https://images.genius.com/b82dbb78926a812abfa10886ac84c1a8.1000x523x1.jpg',\n",
+ " 'id': 586,\n",
+ " 'image_url': 'https://images.genius.com/ad1f59e8a03be4eb521e88015d15d6e8.200x200x1.jpg',\n",
+ " 'is_meme_verified': False,\n",
+ " 'is_verified': False,\n",
+ " 'name': 'The Beatles',\n",
+ " 'url': 'https://genius.com/artists/The-beatles'},\n",
+ " 'pyongs_count': None,\n",
+ " 'song_art_image_thumbnail_url': 'https://s3.amazonaws.com/rapgenius/Live%20at%20the%20BBC%20disc%202%20BBC.png',\n",
+ " 'stats': {'hot': False, 'unreviewed_annotations': 0},\n",
+ " 'title': '1822!',\n",
+ " 'url': 'https://genius.com/The-beatles-1822-lyrics'}"
+ ]
+ },
+ "execution_count": 67,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "genius_tracks.find_one()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 68,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>0</th>\n",
+ " <th>1</th>\n",
+ " <th>2</th>\n",
+ " <th>3</th>\n",
+ " <th>4</th>\n",
+ " <th>5</th>\n",
+ " <th>6</th>\n",
+ " <th>7</th>\n",
+ " <th>8</th>\n",
+ " <th>9</th>\n",
+ " <th>...</th>\n",
+ " <th>601</th>\n",
+ " <th>602</th>\n",
+ " <th>603</th>\n",
+ " <th>604</th>\n",
+ " <th>605</th>\n",
+ " <th>606</th>\n",
+ " <th>607</th>\n",
+ " <th>608</th>\n",
+ " <th>609</th>\n",
+ " <th>610</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>_id</th>\n",
+ " <td>210353</td>\n",
+ " <td>123444</td>\n",
+ " <td>1679385</td>\n",
+ " <td>123816</td>\n",
+ " <td>1436</td>\n",
+ " <td>118166</td>\n",
+ " <td>210540</td>\n",
+ " <td>210315</td>\n",
+ " <td>123414</td>\n",
+ " <td>123415</td>\n",
+ " <td>...</td>\n",
+ " <td>2853637</td>\n",
+ " <td>115809</td>\n",
+ " <td>1205907</td>\n",
+ " <td>1383236</td>\n",
+ " <td>1081664</td>\n",
+ " <td>350065</td>\n",
+ " <td>1226422</td>\n",
+ " <td>98114</td>\n",
+ " <td>114477</td>\n",
+ " <td>642622</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>annotation_count</th>\n",
+ " <td>1</td>\n",
+ " <td>12</td>\n",
+ " <td>1</td>\n",
+ " <td>5</td>\n",
+ " <td>19</td>\n",
+ " <td>13</td>\n",
+ " <td>0</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>4</td>\n",
+ " <td>...</td>\n",
+ " <td>0</td>\n",
+ " <td>7</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>1</td>\n",
+ " <td>12</td>\n",
+ " <td>1</td>\n",
+ " <td>6</td>\n",
+ " <td>4</td>\n",
+ " <td>1</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>api_path</th>\n",
+ " <td>/songs/210353</td>\n",
+ " <td>/songs/123444</td>\n",
+ " <td>/songs/1679385</td>\n",
+ " <td>/songs/123816</td>\n",
+ " <td>/songs/1436</td>\n",
+ " <td>/songs/118166</td>\n",
+ " <td>/songs/210540</td>\n",
+ " <td>/songs/210315</td>\n",
+ " <td>/songs/123414</td>\n",
+ " <td>/songs/123415</td>\n",
+ " <td>...</td>\n",
+ " <td>/songs/2853637</td>\n",
+ " <td>/songs/115809</td>\n",
+ " <td>/songs/1205907</td>\n",
+ " <td>/songs/1383236</td>\n",
+ " <td>/songs/1081664</td>\n",
+ " <td>/songs/350065</td>\n",
+ " <td>/songs/1226422</td>\n",
+ " <td>/songs/98114</td>\n",
+ " <td>/songs/114477</td>\n",
+ " <td>/songs/642622</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>full_title</th>\n",
+ " <td>1822! by The Beatles</td>\n",
+ " <td>Across the Universe by The Beatles</td>\n",
+ " <td>Across the Universe (Wildlife Version) by The ...</td>\n",
+ " <td>Act Naturally by The Beatles</td>\n",
+ " <td>A Day In the Life by The Beatles</td>\n",
+ " <td>A Hard Day's Night by The Beatles</td>\n",
+ " <td>Ain't She Sweet by The Beatles</td>\n",
+ " <td>A Little Rhyme by The Beatles (Ft. John & Rodn...</td>\n",
+ " <td>All I've Got to Do by The Beatles</td>\n",
+ " <td>All My Loving by The Beatles</td>\n",
+ " <td>...</td>\n",
+ " <td>Where Bluebirds Fly by Radiohead</td>\n",
+ " <td>Where I End and You Begin by Radiohead</td>\n",
+ " <td>Wicked Child by Radiohead</td>\n",
+ " <td>Wish You Were Here by Radiohead</td>\n",
+ " <td>Wonderwall by Radiohead</td>\n",
+ " <td>Worrywort by Radiohead</td>\n",
+ " <td>Yes I Am by Radiohead</td>\n",
+ " <td>You by Radiohead</td>\n",
+ " <td>You and Whose Army? by Radiohead</td>\n",
+ " <td>You Never Wash Up After Yourself by Radiohead</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>header_image_thumbnail_url</th>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/Live%20at%2...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/the_beatles...</td>\n",
+ " <td>https://images.genius.com/a3463161b8063164d2e3...</td>\n",
+ " <td>https://images.genius.com/adbf27acc77a06acfa4a...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/The-Beatles...</td>\n",
+ " <td>https://images.genius.com/68c11c7f5b6b66194d77...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/view.jpg</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/110537_cda_...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/Beatles2.jpg</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/Beatles2.jpg</td>\n",
+ " <td>...</td>\n",
+ " <td>https://images.genius.com/8ae50c3392a15c9c558c...</td>\n",
+ " <td>https://images.genius.com/5ccb8a89b0f674962982...</td>\n",
+ " <td>https://images.genius.com/25efaa8c220fdcfec8a9...</td>\n",
+ " <td>https://images.genius.com/25efaa8c220fdcfec8a9...</td>\n",
+ " <td>https://images.genius.com/25efaa8c220fdcfec8a9...</td>\n",
+ " <td>https://images.genius.com/e4bdb3ab980f0f1b6ce4...</td>\n",
+ " <td>https://images.genius.com/6b45ffa7fd55970e6411...</td>\n",
+ " <td>https://images.genius.com/6c0cb1c55fc88c941dac...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/1359924238_...</td>\n",
+ " <td>https://images.rapgenius.com/0d14d86aec456da16...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>header_image_url</th>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/Live%20at%2...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/the_beatles...</td>\n",
+ " <td>https://images.genius.com/a3463161b8063164d2e3...</td>\n",
+ " <td>https://images.genius.com/adbf27acc77a06acfa4a...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/The-Beatles...</td>\n",
+ " <td>https://images.genius.com/68c11c7f5b6b66194d77...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/view.jpg</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/110537_cda_...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/Beatles2.jpg</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/Beatles2.jpg</td>\n",
+ " <td>...</td>\n",
+ " <td>https://images.genius.com/8ae50c3392a15c9c558c...</td>\n",
+ " <td>https://images.genius.com/5ccb8a89b0f674962982...</td>\n",
+ " <td>https://images.genius.com/25efaa8c220fdcfec8a9...</td>\n",
+ " <td>https://images.genius.com/25efaa8c220fdcfec8a9...</td>\n",
+ " <td>https://images.genius.com/25efaa8c220fdcfec8a9...</td>\n",
+ " <td>https://images.genius.com/e4bdb3ab980f0f1b6ce4...</td>\n",
+ " <td>https://images.genius.com/6b45ffa7fd55970e6411...</td>\n",
+ " <td>https://images.genius.com/6c0cb1c55fc88c941dac...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/1359924238_...</td>\n",
+ " <td>https://images.rapgenius.com/0d14d86aec456da16...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>id</th>\n",
+ " <td>210353</td>\n",
+ " <td>123444</td>\n",
+ " <td>1679385</td>\n",
+ " <td>123816</td>\n",
+ " <td>1436</td>\n",
+ " <td>118166</td>\n",
+ " <td>210540</td>\n",
+ " <td>210315</td>\n",
+ " <td>123414</td>\n",
+ " <td>123415</td>\n",
+ " <td>...</td>\n",
+ " <td>2853637</td>\n",
+ " <td>115809</td>\n",
+ " <td>1205907</td>\n",
+ " <td>1383236</td>\n",
+ " <td>1081664</td>\n",
+ " <td>350065</td>\n",
+ " <td>1226422</td>\n",
+ " <td>98114</td>\n",
+ " <td>114477</td>\n",
+ " <td>642622</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>lyrics_owner_id</th>\n",
+ " <td>225680</td>\n",
+ " <td>22533</td>\n",
+ " <td>1549345</td>\n",
+ " <td>22533</td>\n",
+ " <td>7</td>\n",
+ " <td>1553</td>\n",
+ " <td>250962</td>\n",
+ " <td>250962</td>\n",
+ " <td>22533</td>\n",
+ " <td>22533</td>\n",
+ " <td>...</td>\n",
+ " <td>2726776</td>\n",
+ " <td>2726776</td>\n",
+ " <td>1549345</td>\n",
+ " <td>1549345</td>\n",
+ " <td>1549345</td>\n",
+ " <td>428027</td>\n",
+ " <td>1549345</td>\n",
+ " <td>116170</td>\n",
+ " <td>116340</td>\n",
+ " <td>1158811</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>path</th>\n",
+ " <td>/The-beatles-1822-lyrics</td>\n",
+ " <td>/The-beatles-across-the-universe-lyrics</td>\n",
+ " <td>/The-beatles-across-the-universe-wildlife-vers...</td>\n",
+ " <td>/The-beatles-act-naturally-lyrics</td>\n",
+ " <td>/The-beatles-a-day-in-the-life-lyrics</td>\n",
+ " <td>/The-beatles-a-hard-days-night-lyrics</td>\n",
+ " <td>/The-beatles-aint-she-sweet-lyrics</td>\n",
+ " <td>/The-beatles-a-little-rhyme-lyrics</td>\n",
+ " <td>/The-beatles-all-ive-got-to-do-lyrics</td>\n",
+ " <td>/The-beatles-all-my-loving-lyrics</td>\n",
+ " <td>...</td>\n",
+ " <td>/Radiohead-where-bluebirds-fly-lyrics</td>\n",
+ " <td>/Radiohead-where-i-end-and-you-begin-lyrics</td>\n",
+ " <td>/Radiohead-wicked-child-lyrics</td>\n",
+ " <td>/Radiohead-wish-you-were-here-lyrics</td>\n",
+ " <td>/Radiohead-wonderwall-lyrics</td>\n",
+ " <td>/Radiohead-worrywort-lyrics</td>\n",
+ " <td>/Radiohead-yes-i-am-lyrics</td>\n",
+ " <td>/Radiohead-you-lyrics</td>\n",
+ " <td>/Radiohead-you-and-whose-army-lyrics</td>\n",
+ " <td>/Radiohead-you-never-wash-up-after-yourself-ly...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>primary_artist</th>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " <td>{'is_meme_verified': False, 'header_image_url'...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>pyongs_count</th>\n",
+ " <td>NaN</td>\n",
+ " <td>18</td>\n",
+ " <td>NaN</td>\n",
+ " <td>2</td>\n",
+ " <td>34</td>\n",
+ " <td>4</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>1</td>\n",
+ " <td>4</td>\n",
+ " <td>...</td>\n",
+ " <td>NaN</td>\n",
+ " <td>5</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>NaN</td>\n",
+ " <td>2</td>\n",
+ " <td>1</td>\n",
+ " <td>4</td>\n",
+ " <td>NaN</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>song_art_image_thumbnail_url</th>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/Live%20at%2...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/the_beatles...</td>\n",
+ " <td>https://images.genius.com/a3463161b8063164d2e3...</td>\n",
+ " <td>https://images.genius.com/adbf27acc77a06acfa4a...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/The-Beatles...</td>\n",
+ " <td>https://images.genius.com/68c11c7f5b6b66194d77...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/view.jpg</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/110537_cda_...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/Beatles2.jpg</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/Beatles2.jpg</td>\n",
+ " <td>...</td>\n",
+ " <td>https://images.genius.com/8ae50c3392a15c9c558c...</td>\n",
+ " <td>https://images.genius.com/5ccb8a89b0f674962982...</td>\n",
+ " <td>https://images.genius.com/25efaa8c220fdcfec8a9...</td>\n",
+ " <td>https://images.genius.com/25efaa8c220fdcfec8a9...</td>\n",
+ " <td>https://images.genius.com/25efaa8c220fdcfec8a9...</td>\n",
+ " <td>https://images.genius.com/e4bdb3ab980f0f1b6ce4...</td>\n",
+ " <td>https://images.genius.com/6b45ffa7fd55970e6411...</td>\n",
+ " <td>https://images.genius.com/6c0cb1c55fc88c941dac...</td>\n",
+ " <td>https://s3.amazonaws.com/rapgenius/1359924238_...</td>\n",
+ " <td>https://images.rapgenius.com/0d14d86aec456da16...</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>stats</th>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0}</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0, 'p...</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0}</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0}</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0, 'p...</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0, 'p...</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0}</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0}</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0}</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0, 'p...</td>\n",
+ " <td>...</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0}</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 2, 'p...</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0}</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0}</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0}</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 11}</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0}</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 1}</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0, 'p...</td>\n",
+ " <td>{'hot': False, 'unreviewed_annotations': 0}</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>title</th>\n",
+ " <td>1822!</td>\n",
+ " <td>Across the Universe</td>\n",
+ " <td>Across the Universe (Wildlife Version)</td>\n",
+ " <td>Act Naturally</td>\n",
+ " <td>A Day In the Life</td>\n",
+ " <td>A Hard Day's Night</td>\n",
+ " <td>Ain't She Sweet</td>\n",
+ " <td>A Little Rhyme</td>\n",
+ " <td>All I've Got to Do</td>\n",
+ " <td>All My Loving</td>\n",
+ " <td>...</td>\n",
+ " <td>Where Bluebirds Fly</td>\n",
+ " <td>Where I End and You Begin</td>\n",
+ " <td>Wicked Child</td>\n",
+ " <td>Wish You Were Here</td>\n",
+ " <td>Wonderwall</td>\n",
+ " <td>Worrywort</td>\n",
+ " <td>Yes I Am</td>\n",
+ " <td>You</td>\n",
+ " <td>You and Whose Army?</td>\n",
+ " <td>You Never Wash Up After Yourself</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>url</th>\n",
+ " <td>https://genius.com/The-beatles-1822-lyrics</td>\n",
+ " <td>https://genius.com/The-beatles-across-the-univ...</td>\n",
+ " <td>https://genius.com/The-beatles-across-the-univ...</td>\n",
+ " <td>https://genius.com/The-beatles-act-naturally-l...</td>\n",
+ " <td>https://genius.com/The-beatles-a-day-in-the-li...</td>\n",
+ " <td>https://genius.com/The-beatles-a-hard-days-nig...</td>\n",
+ " <td>https://genius.com/The-beatles-aint-she-sweet-...</td>\n",
+ " <td>https://genius.com/The-beatles-a-little-rhyme-...</td>\n",
+ " <td>https://genius.com/The-beatles-all-ive-got-to-...</td>\n",
+ " <td>https://genius.com/The-beatles-all-my-loving-l...</td>\n",
+ " <td>...</td>\n",
+ " <td>https://genius.com/Radiohead-where-bluebirds-f...</td>\n",
+ " <td>https://genius.com/Radiohead-where-i-end-and-y...</td>\n",
+ " <td>https://genius.com/Radiohead-wicked-child-lyrics</td>\n",
+ " <td>https://genius.com/Radiohead-wish-you-were-her...</td>\n",
+ " <td>https://genius.com/Radiohead-wonderwall-lyrics</td>\n",
+ " <td>https://genius.com/Radiohead-worrywort-lyrics</td>\n",
+ " <td>https://genius.com/Radiohead-yes-i-am-lyrics</td>\n",
+ " <td>https://genius.com/Radiohead-you-lyrics</td>\n",
+ " <td>https://genius.com/Radiohead-you-and-whose-arm...</td>\n",
+ " <td>https://genius.com/Radiohead-you-never-wash-up...</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "<p>15 rows × 611 columns</p>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " 0 \\\n",
+ "_id 210353 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/210353 \n",
+ "full_title 1822! by The Beatles \n",
+ "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/Live%20at%2... \n",
+ "header_image_url https://s3.amazonaws.com/rapgenius/Live%20at%2... \n",
+ "id 210353 \n",
+ "lyrics_owner_id 225680 \n",
+ "path /The-beatles-1822-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/Live%20at%2... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0} \n",
+ "title 1822! \n",
+ "url https://genius.com/The-beatles-1822-lyrics \n",
+ "\n",
+ " 1 \\\n",
+ "_id 123444 \n",
+ "annotation_count 12 \n",
+ "api_path /songs/123444 \n",
+ "full_title Across the Universe by The Beatles \n",
+ "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/the_beatles... \n",
+ "header_image_url https://s3.amazonaws.com/rapgenius/the_beatles... \n",
+ "id 123444 \n",
+ "lyrics_owner_id 22533 \n",
+ "path /The-beatles-across-the-universe-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count 18 \n",
+ "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/the_beatles... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0, 'p... \n",
+ "title Across the Universe \n",
+ "url https://genius.com/The-beatles-across-the-univ... \n",
+ "\n",
+ " 2 \\\n",
+ "_id 1679385 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/1679385 \n",
+ "full_title Across the Universe (Wildlife Version) by The ... \n",
+ "header_image_thumbnail_url https://images.genius.com/a3463161b8063164d2e3... \n",
+ "header_image_url https://images.genius.com/a3463161b8063164d2e3... \n",
+ "id 1679385 \n",
+ "lyrics_owner_id 1549345 \n",
+ "path /The-beatles-across-the-universe-wildlife-vers... \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/a3463161b8063164d2e3... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0} \n",
+ "title Across the Universe (Wildlife Version) \n",
+ "url https://genius.com/The-beatles-across-the-univ... \n",
+ "\n",
+ " 3 \\\n",
+ "_id 123816 \n",
+ "annotation_count 5 \n",
+ "api_path /songs/123816 \n",
+ "full_title Act Naturally by The Beatles \n",
+ "header_image_thumbnail_url https://images.genius.com/adbf27acc77a06acfa4a... \n",
+ "header_image_url https://images.genius.com/adbf27acc77a06acfa4a... \n",
+ "id 123816 \n",
+ "lyrics_owner_id 22533 \n",
+ "path /The-beatles-act-naturally-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count 2 \n",
+ "song_art_image_thumbnail_url https://images.genius.com/adbf27acc77a06acfa4a... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0} \n",
+ "title Act Naturally \n",
+ "url https://genius.com/The-beatles-act-naturally-l... \n",
+ "\n",
+ " 4 \\\n",
+ "_id 1436 \n",
+ "annotation_count 19 \n",
+ "api_path /songs/1436 \n",
+ "full_title A Day In the Life by The Beatles \n",
+ "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/The-Beatles... \n",
+ "header_image_url https://s3.amazonaws.com/rapgenius/The-Beatles... \n",
+ "id 1436 \n",
+ "lyrics_owner_id 7 \n",
+ "path /The-beatles-a-day-in-the-life-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count 34 \n",
+ "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/The-Beatles... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0, 'p... \n",
+ "title A Day In the Life \n",
+ "url https://genius.com/The-beatles-a-day-in-the-li... \n",
+ "\n",
+ " 5 \\\n",
+ "_id 118166 \n",
+ "annotation_count 13 \n",
+ "api_path /songs/118166 \n",
+ "full_title A Hard Day's Night by The Beatles \n",
+ "header_image_thumbnail_url https://images.genius.com/68c11c7f5b6b66194d77... \n",
+ "header_image_url https://images.genius.com/68c11c7f5b6b66194d77... \n",
+ "id 118166 \n",
+ "lyrics_owner_id 1553 \n",
+ "path /The-beatles-a-hard-days-night-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count 4 \n",
+ "song_art_image_thumbnail_url https://images.genius.com/68c11c7f5b6b66194d77... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0, 'p... \n",
+ "title A Hard Day's Night \n",
+ "url https://genius.com/The-beatles-a-hard-days-nig... \n",
+ "\n",
+ " 6 \\\n",
+ "_id 210540 \n",
+ "annotation_count 0 \n",
+ "api_path /songs/210540 \n",
+ "full_title Ain't She Sweet by The Beatles \n",
+ "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/view.jpg \n",
+ "header_image_url https://s3.amazonaws.com/rapgenius/view.jpg \n",
+ "id 210540 \n",
+ "lyrics_owner_id 250962 \n",
+ "path /The-beatles-aint-she-sweet-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/view.jpg \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0} \n",
+ "title Ain't She Sweet \n",
+ "url https://genius.com/The-beatles-aint-she-sweet-... \n",
+ "\n",
+ " 7 \\\n",
+ "_id 210315 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/210315 \n",
+ "full_title A Little Rhyme by The Beatles (Ft. John & Rodn... \n",
+ "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/110537_cda_... \n",
+ "header_image_url https://s3.amazonaws.com/rapgenius/110537_cda_... \n",
+ "id 210315 \n",
+ "lyrics_owner_id 250962 \n",
+ "path /The-beatles-a-little-rhyme-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/110537_cda_... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0} \n",
+ "title A Little Rhyme \n",
+ "url https://genius.com/The-beatles-a-little-rhyme-... \n",
+ "\n",
+ " 8 \\\n",
+ "_id 123414 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/123414 \n",
+ "full_title All I've Got to Do by The Beatles \n",
+ "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/Beatles2.jpg \n",
+ "header_image_url https://s3.amazonaws.com/rapgenius/Beatles2.jpg \n",
+ "id 123414 \n",
+ "lyrics_owner_id 22533 \n",
+ "path /The-beatles-all-ive-got-to-do-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count 1 \n",
+ "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/Beatles2.jpg \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0} \n",
+ "title All I've Got to Do \n",
+ "url https://genius.com/The-beatles-all-ive-got-to-... \n",
+ "\n",
+ " 9 \\\n",
+ "_id 123415 \n",
+ "annotation_count 4 \n",
+ "api_path /songs/123415 \n",
+ "full_title All My Loving by The Beatles \n",
+ "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/Beatles2.jpg \n",
+ "header_image_url https://s3.amazonaws.com/rapgenius/Beatles2.jpg \n",
+ "id 123415 \n",
+ "lyrics_owner_id 22533 \n",
+ "path /The-beatles-all-my-loving-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count 4 \n",
+ "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/Beatles2.jpg \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0, 'p... \n",
+ "title All My Loving \n",
+ "url https://genius.com/The-beatles-all-my-loving-l... \n",
+ "\n",
+ " ... \\\n",
+ "_id ... \n",
+ "annotation_count ... \n",
+ "api_path ... \n",
+ "full_title ... \n",
+ "header_image_thumbnail_url ... \n",
+ "header_image_url ... \n",
+ "id ... \n",
+ "lyrics_owner_id ... \n",
+ "path ... \n",
+ "primary_artist ... \n",
+ "pyongs_count ... \n",
+ "song_art_image_thumbnail_url ... \n",
+ "stats ... \n",
+ "title ... \n",
+ "url ... \n",
+ "\n",
+ " 601 \\\n",
+ "_id 2853637 \n",
+ "annotation_count 0 \n",
+ "api_path /songs/2853637 \n",
+ "full_title Where Bluebirds Fly by Radiohead \n",
+ "header_image_thumbnail_url https://images.genius.com/8ae50c3392a15c9c558c... \n",
+ "header_image_url https://images.genius.com/8ae50c3392a15c9c558c... \n",
+ "id 2853637 \n",
+ "lyrics_owner_id 2726776 \n",
+ "path /Radiohead-where-bluebirds-fly-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/8ae50c3392a15c9c558c... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0} \n",
+ "title Where Bluebirds Fly \n",
+ "url https://genius.com/Radiohead-where-bluebirds-f... \n",
+ "\n",
+ " 602 \\\n",
+ "_id 115809 \n",
+ "annotation_count 7 \n",
+ "api_path /songs/115809 \n",
+ "full_title Where I End and You Begin by Radiohead \n",
+ "header_image_thumbnail_url https://images.genius.com/5ccb8a89b0f674962982... \n",
+ "header_image_url https://images.genius.com/5ccb8a89b0f674962982... \n",
+ "id 115809 \n",
+ "lyrics_owner_id 2726776 \n",
+ "path /Radiohead-where-i-end-and-you-begin-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count 5 \n",
+ "song_art_image_thumbnail_url https://images.genius.com/5ccb8a89b0f674962982... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 2, 'p... \n",
+ "title Where I End and You Begin \n",
+ "url https://genius.com/Radiohead-where-i-end-and-y... \n",
+ "\n",
+ " 603 \\\n",
+ "_id 1205907 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/1205907 \n",
+ "full_title Wicked Child by Radiohead \n",
+ "header_image_thumbnail_url https://images.genius.com/25efaa8c220fdcfec8a9... \n",
+ "header_image_url https://images.genius.com/25efaa8c220fdcfec8a9... \n",
+ "id 1205907 \n",
+ "lyrics_owner_id 1549345 \n",
+ "path /Radiohead-wicked-child-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/25efaa8c220fdcfec8a9... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0} \n",
+ "title Wicked Child \n",
+ "url https://genius.com/Radiohead-wicked-child-lyrics \n",
+ "\n",
+ " 604 \\\n",
+ "_id 1383236 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/1383236 \n",
+ "full_title Wish You Were Here by Radiohead \n",
+ "header_image_thumbnail_url https://images.genius.com/25efaa8c220fdcfec8a9... \n",
+ "header_image_url https://images.genius.com/25efaa8c220fdcfec8a9... \n",
+ "id 1383236 \n",
+ "lyrics_owner_id 1549345 \n",
+ "path /Radiohead-wish-you-were-here-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/25efaa8c220fdcfec8a9... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0} \n",
+ "title Wish You Were Here \n",
+ "url https://genius.com/Radiohead-wish-you-were-her... \n",
+ "\n",
+ " 605 \\\n",
+ "_id 1081664 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/1081664 \n",
+ "full_title Wonderwall by Radiohead \n",
+ "header_image_thumbnail_url https://images.genius.com/25efaa8c220fdcfec8a9... \n",
+ "header_image_url https://images.genius.com/25efaa8c220fdcfec8a9... \n",
+ "id 1081664 \n",
+ "lyrics_owner_id 1549345 \n",
+ "path /Radiohead-wonderwall-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/25efaa8c220fdcfec8a9... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0} \n",
+ "title Wonderwall \n",
+ "url https://genius.com/Radiohead-wonderwall-lyrics \n",
+ "\n",
+ " 606 \\\n",
+ "_id 350065 \n",
+ "annotation_count 12 \n",
+ "api_path /songs/350065 \n",
+ "full_title Worrywort by Radiohead \n",
+ "header_image_thumbnail_url https://images.genius.com/e4bdb3ab980f0f1b6ce4... \n",
+ "header_image_url https://images.genius.com/e4bdb3ab980f0f1b6ce4... \n",
+ "id 350065 \n",
+ "lyrics_owner_id 428027 \n",
+ "path /Radiohead-worrywort-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.genius.com/e4bdb3ab980f0f1b6ce4... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 11} \n",
+ "title Worrywort \n",
+ "url https://genius.com/Radiohead-worrywort-lyrics \n",
+ "\n",
+ " 607 \\\n",
+ "_id 1226422 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/1226422 \n",
+ "full_title Yes I Am by Radiohead \n",
+ "header_image_thumbnail_url https://images.genius.com/6b45ffa7fd55970e6411... \n",
+ "header_image_url https://images.genius.com/6b45ffa7fd55970e6411... \n",
+ "id 1226422 \n",
+ "lyrics_owner_id 1549345 \n",
+ "path /Radiohead-yes-i-am-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count 2 \n",
+ "song_art_image_thumbnail_url https://images.genius.com/6b45ffa7fd55970e6411... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0} \n",
+ "title Yes I Am \n",
+ "url https://genius.com/Radiohead-yes-i-am-lyrics \n",
+ "\n",
+ " 608 \\\n",
+ "_id 98114 \n",
+ "annotation_count 6 \n",
+ "api_path /songs/98114 \n",
+ "full_title You by Radiohead \n",
+ "header_image_thumbnail_url https://images.genius.com/6c0cb1c55fc88c941dac... \n",
+ "header_image_url https://images.genius.com/6c0cb1c55fc88c941dac... \n",
+ "id 98114 \n",
+ "lyrics_owner_id 116170 \n",
+ "path /Radiohead-you-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count 1 \n",
+ "song_art_image_thumbnail_url https://images.genius.com/6c0cb1c55fc88c941dac... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 1} \n",
+ "title You \n",
+ "url https://genius.com/Radiohead-you-lyrics \n",
+ "\n",
+ " 609 \\\n",
+ "_id 114477 \n",
+ "annotation_count 4 \n",
+ "api_path /songs/114477 \n",
+ "full_title You and Whose Army? by Radiohead \n",
+ "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/1359924238_... \n",
+ "header_image_url https://s3.amazonaws.com/rapgenius/1359924238_... \n",
+ "id 114477 \n",
+ "lyrics_owner_id 116340 \n",
+ "path /Radiohead-you-and-whose-army-lyrics \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count 4 \n",
+ "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/1359924238_... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0, 'p... \n",
+ "title You and Whose Army? \n",
+ "url https://genius.com/Radiohead-you-and-whose-arm... \n",
+ "\n",
+ " 610 \n",
+ "_id 642622 \n",
+ "annotation_count 1 \n",
+ "api_path /songs/642622 \n",
+ "full_title You Never Wash Up After Yourself by Radiohead \n",
+ "header_image_thumbnail_url https://images.rapgenius.com/0d14d86aec456da16... \n",
+ "header_image_url https://images.rapgenius.com/0d14d86aec456da16... \n",
+ "id 642622 \n",
+ "lyrics_owner_id 1158811 \n",
+ "path /Radiohead-you-never-wash-up-after-yourself-ly... \n",
+ "primary_artist {'is_meme_verified': False, 'header_image_url'... \n",
+ "pyongs_count NaN \n",
+ "song_art_image_thumbnail_url https://images.rapgenius.com/0d14d86aec456da16... \n",
+ "stats {'hot': False, 'unreviewed_annotations': 0} \n",
+ "title You Never Wash Up After Yourself \n",
+ "url https://genius.com/Radiohead-you-never-wash-up... \n",
+ "\n",
+ "[15 rows x 611 columns]"
+ ]
+ },
+ "execution_count": 68,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "gsongs = pd.DataFrame(list(genius_tracks.find()))\n",
+ "gsongs.T"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now we can get the lyrics for each song. We tidy it up as we go, to strip out formatting and the like.\n",
+ "\n",
+ "Note the use of [Beautiful Soup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/) to strip out the HTML from the lyrics."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "def genius_lyrics(song_url):\n",
+ " headers = {'Accept': 'application/json',\n",
+ " 'Authorization': 'Bearer ' + config['genius']['token'],\n",
+ " 'User-Agent': 'curl/7.9.8 (i686-pc-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.6b) (ipv6 enabled)'}\n",
+ " request = urllib.request.Request(song_url, headers=headers, method='GET')\n",
+ " html_doc = urllib.request.urlopen(request)\n",
+ " soup = BeautifulSoup(html_doc, 'html.parser')\n",
+ " lyrics = soup.find('lyrics').get_text()\n",
+ " l2 = re.sub('\\[[^\\]]*\\]', '', lyrics)\n",
+ " l3 = re.sub('\\[|\\]', '', l2)\n",
+ " l4 = re.sub('(\\s)+', ' ', l3)\n",
+ " return l4.strip().lower(), lyrics"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 70,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(\"oh ain't she sweet well see her walking down that street yes i ask you very confidentially ain't she sweet? oh ain't she nice well look her over once or twice yes i ask you very confidentially ain't she nice? just cast an eye in her direction oh me oh my ain't that perfection? oh i repeat well don't you think that's kind of neat? yes i ask you very confidentially ain't she sweet? oh ain't she sweet well see her walking down that street well i ask you very confidentially ain't she sweet? well i ask you very confidentially ain't she sweet?\",\n",
+ " \"\\n\\n[Chorus 1]]\\nOh ain't she sweet\\nWell see her walking down that street\\nYes I ask you very confidentially\\nAin't she sweet?\\n\\n[Chorus 2]\\nOh ain't she nice\\nWell look her over once or twice\\nYes I ask you very confidentially\\nAin't she nice?\\n\\n[Chorus 3]\\nJust cast an eye\\nIn her direction\\nOh me oh my\\nAin't that perfection?\\n\\n[Chorus 4]\\nOh I repeat\\nWell don't you think that's kind of neat?\\nYes I ask you very confidentially\\nAin't she sweet?\\n\\n[Chorus 1]\\n\\n[Chorus 2]\\n\\n[Chorus 3]\\n\\n[Chorus 4]\\n\\n[Chorus 1]\\nOh ain't she sweet\\nWell see her walking down that street\\nWell I ask you very confidentially\\nAin't she sweet?\\nWell I ask you very confidentially\\nAin't she sweet?\\n\\n\")"
+ ]
+ },
+ "execution_count": 70,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "assl = genius_lyrics('https://genius.com/The-beatles-aint-she-sweet-lyrics')\n",
+ "assl"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'_id': 1497768,\n",
+ " 'lyrics': 'when i was sitting on my piano one day a magical thought came my way to write a number for the bbc kenny everett mccartney all together on the wireless machine kenny everett mccartney all together on the wireless machine kenny everett mccartney all together on the wireless machine',\n",
+ " 'original_lyrics': '\\n\\nWhen I was sitting on my piano one day\\nA magical thought came my way\\nTo write a number for the BBC\\nKenny Everett McCartney\\nAll together on the wireless machine\\nKenny Everett McCartney\\nAll together on the wireless machine\\nKenny Everett McCartney\\nAll together on the wireless machine\\n\\n',\n",
+ " 'title': 'All Together on the Wireless Machine'}"
+ ]
+ },
+ "execution_count": 45,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "for gsong in genius_tracks.find():\n",
+ " if 'lyrics' not in gsong:\n",
+ " lyrics, original_lyrics = genius_lyrics(gsong['url'])\n",
+ " genius_tracks.update_one({'_id': gsong['_id']}, \n",
+ " {'$set': {'lyrics': lyrics, 'original_lyrics': original_lyrics}})\n",
+ "genius_tracks.find_one({}, ['title', 'lyrics', 'original_lyrics'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'original_lyrics_text'"
+ ]
+ },
+ "execution_count": 56,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "genius_tracks.create_index([('original_lyrics', pymongo.TEXT)])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 59,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[\"\\n\\nClaudine's back in jail again\\nClaudine's back in jail (again)\\nClaudine's back in jail again\\nClaudine\\n\\nClaudine's back in jail again\\nClaudine's back in jail (again)\\nShe only does it at weekends\\nClaudine\\nOh, Claudine\\n\\nNow only Spider knows for sure\\nBut he ain't talkin' about it any more\\nIs he, Claudine?\\n\\nThere's blood in the chalet\\nAnd blood in the snow\\n(She)Washed her hands of the whole damn show\\nThe best thing you could do, Claudine\\n\\nShot him once right through the head\\nShot him twice right through the chest\\nThe judge says (ruled) it was an accident\\nClaudine\\nAccidents will happen\\n(In the best homes)\\n\\nAnd Claudine's back in jail again\\nClaudine's back in jail again\\nClaudine's back in jail again\\nClaudine\\n\\n(Claudine's back in jail again\\nClaudine's back in jail again\\nClaudine's back in jail again\\n\\nClaudine) (additional chorus)\\nI'll tell you something\\nNow Claudine's back in jail again\\nClaudine's back in jail again\\nClaudine's back in jail again\\nClaudine\\n\\nTell you one more\\n\\nClaudine's back in jail again\\nClaudine's back in jail again\\nClaudine's back in jail again\\nHuh Claudine?\\n\\nOh Claudine...\\n\\nOooo ...\\nWhat about the children, baby?\\nPoor, poor children\\n\\nNow I threaten my wife with a gun\\nI always leave the safety on\\nI recommend it\\nClaudine\\n\\nNow she pistol whipped me once or twice\\nBut she never tried to take my life\\n(What do you think about that)\\nClaudine\\n\\nThe prettiest girl I ever seen\\nI saw you on the movie screen\\nHope you don't try to make a sacrifice of me\\nClaudine\\n(Don't get trigger happy with me)\\nDon't wave a gun at me\\n(Claudine)\\n\\nI said Claudine's back in jail again\\nClaudine's back in jail again\\nClaudine's back in jail again\\nClaudine\\n\\nI said Claudine's back in jail again\\nClaudine's back in jail again\\nShe only does it at weekends\\nClaudine\\n\\nKeith, will you put that weapon down?\\n\\nOh Claudine\\n\\nOh Claudine\\n\\n\",\n",
+ " \"\\n\\n[Verse 1]\\nI'm not talking about the kind of clothes she wears\\nLook at that stupid girl\\nI'm not talking about the way she combs her hair\\nLook at that stupid girl\\n\\nThe way she powders her nose\\nHer vanity shows and it shows\\nShe's the worst thing in this world\\nWell, look at that stupid girl\\n\\n[Verse 2]\\nI'm not talking about the way she digs for gold\\nLook at that stupid girl\\nWell, I'm talking about the way she grabs and holds\\nLook at that stupid girl\\n\\nThe way she talks about someone else\\nThat she don't even know herself\\nShe's the sickest thing in this world\\nWell, look at that stupid girl\\n\\n[Chorus]\\nWell, I'm sick and tired and I really have my doubts\\nI've tried and tried, but it never really works out\\n\\n[Verse 3]\\nLike a lady-in-waiting to a virgin queen\\nLook at that stupid girl\\nShe bitches about things that she's never seen\\nLook at that stupid girl\\n\\nIt doesn't matter if she dyes her hair\\nOr the color of the shoes she wears\\nShe's the worst thing in this world\\nWell, look at that stupid girl\\n\\n[Guitar Break]\\n\\n[Verse 4]\\nLike a lady-in-waiting to a virgin queen\\nLook at that stupid girl\\nShe bitches about things that she's never seen\\nLook at that stupid girl\\n\\nAnd she purrs like a pussycat\\nThen she turns around and hisses back\\nShe's the sickest thing in this world\\nLook at that stupid girl\\n\\n\",\n",
+ " \"\\n\\n[Verse 1]\\nWent out walking through the wood the other day\\nAnd the world was a carpet laid before me\\nThe buds were bursting and the air smelled sweet and strange\\nAnd it seemed about a hundred years ago\\nMary and I, we would sit upon a gate\\nJust gazing at some dragon in the sky\\nWhat tender days, we had no secrets hid away\\nWell, it seemed about a hundred years ago\\nNow all my friends are wearing worried smiles\\nLiving out a dream of what they was\\nDon't you think it's sometimes wise not to grow up?\\nWend out walking through the wood the other day\\nCan't you see the furrows in my forehead?\\nWhat tender days, we had no secrets hid away\\nNow it seems about a hundred years ago\\nNow if you see me drinking bad red wine\\nDon't worry 'bout this man that you love\\nDon't you think it's sometimes wise not to grow up?\\n\\n[Chorus]\\nYou're going to kiss and say good-bye, yeah, I warn you[x2]\\nYou're going to kiss and say good-bye, oh Lord, I warn you\\n\\n[Verse 2]\\nAnd please excuse me while I hide away\\nCall me lazy bones\\nIsn’t got no time to waste away\\nLazy bones has not got no time to waste away\\nDon't you think it's just about time to hide away? Yeah, yeah!\\n\\n\",\n",
+ " \"\\n\\n[Instrument break]\\n[Verse 1]\\nI don't like you\\nBut I love you\\nSeems that I'm always\\nThinking of you\\nOh, oh, oh\\nYou treat me badly\\nI love you madly\\nYou've really got a hold on me\\nYou've really got a hold on me, baby\\n\\n[Verse 2]\\nI don't want you\\nBut I need you\\nDon't want to kiss you\\nBut I need to\\nOh, oh, oh\\nYou do me wrong now\\nMy love is strong now\\nYou've really got a hold on me\\nYou've really got a hold on me, baby\\n\\n[Chorus]\\nI love you and all I want you to do\\nIs just hold me, hold me, hold me, hold me\\nTied up\\nTied up\\n\\n[Verse 3]\\nI want to leave you\\nDon't want to stay here\\nDon't want to spend\\nAnother day here\\nOh, oh, oh, I want to split now\\nI just can quit now\\nYou've really got a hold on me\\nYou've really got a hold on me, baby\\n\\nI love you and all I want you to do\\nIs just hold me, hold me, hold me, hold me\\n\\n[Outro]\\nYou've really got a hold on me\\nYou've really got a hold on me\\n\\n\",\n",
+ " \"\\n\\n[Verse 1]\\nThe best things in life are free\\nBut you can keep them for the birds and bees\\nNow give me money\\nThat's what I want\\nThat's what I want, yeah\\nThat's what I want\\n\\nYour loving gives me a thrill\\nBut your loving don't pay my bills\\nNow give me money\\nThat's what I want\\nThat's what I want, yeah\\nThat's what I want\\n\\n[Chorus] [x2]\\nMoney don't get everything it's true\\nWhat it don't get, I can't use\\nNow give me money\\nThat's what I want\\nThat's what I want, yeah\\nThat's what I want, wah\\n\\n[Verse 2]\\nWell now give me money\\nA lot of money\\nWow, yeah, I want to be free\\nOh I want money\\nThat's what I want\\nThat's what I want, well\\nNow give me money\\nA lot of money\\nWow, yeah, you need money\\nNow, give me money\\nThat's what I want, yeah\\nThat's what I want\\n\\n\",\n",
+ " '\\n\\n[Intro]\\nI say hey, Mona\\nOh, Mona\\nI say yeah, yeah, yeah, yeah, Mona\\nOh, Mona\\n\\n[Chorus][x2]\\nI tell you Mona what I want to do\\nI will build a house next door to you\\nCan I see you sometimes?\\nWe can blow kisses through the blinds\\nYeah can I out come out on the front\\nAnd listen to my heart go bumped bump\\nI need you baby that is no lie\\nWithout your love I would surely die\\nI say hey, Mona\\nOh, Mona\\nI say yeah, yeah, yeah, yeah, Mona\\nOh, Mona\\nI say hey, hey Mona\\nOh, Mona\\nI say yeah, yeah, yeah, yeah, Mona\\nOh, Mona\\n\\n',\n",
+ " \"\\n\\n[Verse 1]\\nNow, if you want to hear some boogie like I am going to play\\nIt is just an old piano and a knockout bass\\nThe drummer's man's a cat, they call Charlie McCoy\\nYou know, remember that rubber legged boy?\\nMama, cooking chicken fried and bacon grease\\nCome on along boys, it is just down the road apiece\\n\\n[Chorus][x2]\\nWell there is a place you really get your kicks\\nIt is open every night about twelve to six\\nNow if you want to hear some boogie you can get your fill\\nAnd shove and sting like an old steam drill\\nCome on along you can lose your lead\\nDown the road, down the road, down the road apiece\\n\\n\",\n",
+ " \"\\n\\n[Verse 1]\\nSun turnin' 'round with graceful motion\\nWe're setting off with soft explosion\\nBound for a star with fiery oceans\\nIt's so very lonely, you're a hundred light years from home\\nFreezing red deserts turn to dark\\nEnergy here in every part\\nIt's so very lonely, you're six hundred light years from home\\n\\n[Chorus][x2]\\nIt's so very lonely, you're a thousand light years from home\\n\\n[Verse 2]\\nBell flight fourteen you now can land\\nSee you on Aldebaran, safe on the green desert sand\\nIt's so very lonely, you're two thousand light years from home\\nIt's so very lonely, you're two thousand light years from home\\n\\n\",\n",
+ " '\\n\\n[Intro]\\nWell if you ever plan to motor west\\nJust take my way that is the highway that is the best\\n\\n[Verse]\\nGet your kicks on Route 66\\nWell it winds from Chicago to L.A\\nMore than 2000 miles all the way\\nGet your kicks on Route 66\\n\\n[Chorus][x2]\\nWell goes from St. Louie down to Missouri\\nOklahoma city looks oh so pretty\\nYou will see Amarillo and Gallup, New Mexico\\nFlagstaff, Arizona do not forget Winona\\nKingman, Barstow, San Bernardino\\nWould you get hip to this kindly tip\\nAnd go take that California trip\\nGet your kicks on Route 66\\n\\n',\n",
+ " \"\\n\\nWell, they tell me of a pie up in the sky\\nWaiting for me when I die\\nBut between the day you're born and when you die\\nYou know, they never seem to hear even your cry\\n\\nChorus:\\nSo as sure as the sun will shine\\nI'm gonna get my share now what is mine\\nAnd then the harder they come\\nThe harder they fall\\nOne and all\\nThe harder they come\\nThe harder they fall\\nOne and all\\n\\nAnd the oppressors are trying to track me down\\nThey're trying to drive me underground\\nAnd they think that they have got the battle won\\nI say, forgive them Lord, they know not what they've done\\n\\nAnd I keep on fighting for the things I want\\nThough I know that when you're dead you can't\\nBut I'd rather be a free man in my grave\\nThan living as a puppet or a slave\\n\\n\"]"
+ ]
+ },
+ "execution_count": 59,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "[t['original_lyrics'] for t in genius_tracks.find({'$text': {'$search': 'chorus'}}, limit=10)]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Matching datasets<a name=\"matchingdatasets\"></a>\n",
+ "Now it's time to match up the datasets. First, we simplify the titles of the tracks, to sidestep differences in punctuation, capitalisation, and the like.\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def canonical_name(text):\n",
+ " t1 = re.sub(' - .*', '', text) # Strip the \" - Remastered 2015\" suffix\n",
+ " t2 = re.sub('[^\\w\\s]', '', t1) # strip all characters except letters, numbers, and whitespace\n",
+ " t3 = re.sub('\\s+', ' ', t2) # collapse whitespace\n",
+ " return t3.lower() # convert to lowercase and return"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'a hard days night'"
+ ]
+ },
+ "execution_count": 47,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "canonical_name(\"A Hard Day's Night - Live / Remastered\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Add the simplified title to each track in the Spotify and Genius collections."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "for t in tracks.find():\n",
+ " tracks.update_one({'_id': t['_id']}, {'$set': {'ctitle': canonical_name(t['name'])}})\n",
+ "for t in genius_tracks.find():\n",
+ " genius_tracks.update_one({'_id': t['_id']}, {'$set': {'ctitle': canonical_name(t['title'])}})"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now to see what the differences are. Find the tracks that are in both collections, and tracks that are in only one."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(489, 559, 57)"
+ ]
+ },
+ "execution_count": 49,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "in_both = set(g['ctitle'] for g in genius_tracks.find({}, ['ctitle']) if tracks.find({'ctitle': g['ctitle']}).count())\n",
+ "genius_only = set(g['ctitle'] for g in genius_tracks.find({}, ['ctitle']) if not tracks.find({'ctitle': g['ctitle']}).count())\n",
+ "spotify_only = set(s['ctitle'] for s in tracks.find({}, ['ctitle']) if not genius_tracks.find({'ctitle': s['ctitle']}).count())\n",
+ "len(in_both), len(genius_only), len(spotify_only)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'2 2 5 live at earls court',\n",
+ " 'a punch up at a wedding',\n",
+ " 'band introductions',\n",
+ " 'bloom blawan rmx',\n",
+ " 'bloom harmonic 313 rmx',\n",
+ " 'bloom jamie xx rework',\n",
+ " 'bloom mark pritchard rmx',\n",
+ " 'bloom objekt rmx',\n",
+ " 'bullet proof i wish i was',\n",
+ " 'charlies intro to little red rooster',\n",
+ " 'codex illum sphere',\n",
+ " 'dollars cents',\n",
+ " 'dollars cents live',\n",
+ " 'everybody needs somebody to love finale',\n",
+ " 'everything in its right place live in france',\n",
+ " 'faraway eyes',\n",
+ " 'feral lone rmx',\n",
+ " 'fog again live',\n",
+ " 'give up the ghost brokenchord rmx',\n",
+ " 'give up the ghost thriller houseghost remix',\n",
+ " 'good evening mrs magpie modeselektor rmx',\n",
+ " 'i might be wrong live',\n",
+ " 'i will los angeles version',\n",
+ " 'idioteque live in oxford',\n",
+ " 'intro take the a train',\n",
+ " 'jumping jack flash',\n",
+ " 'just my imagination',\n",
+ " 'kansas city heyheyheyhey',\n",
+ " 'key to the highway',\n",
+ " 'like spinning plates live',\n",
+ " 'little by little caribou rmx',\n",
+ " 'little by little shed',\n",
+ " 'little ta',\n",
+ " 'lotus flower jacques greene rmx',\n",
+ " 'lotus flower sbtrkt rmx',\n",
+ " 'march of the meanies',\n",
+ " 'martin scorsese intro',\n",
+ " 'morning bell live in oxford',\n",
+ " 'morning mr magpie nathan fake rmx',\n",
+ " 'morning mr magpie pearson sound scavenger rmx',\n",
+ " 'outro',\n",
+ " 'packt like sardines in a crushed tin box',\n",
+ " 'pepperland',\n",
+ " 'pepperland laid waste',\n",
+ " 'remyxomatosis cristian vogel rmx',\n",
+ " 'revolution 1',\n",
+ " 'sea of holes',\n",
+ " 'sea of monsters',\n",
+ " 'sea of time',\n",
+ " 'separator anstam rmx',\n",
+ " 'separator four tet rmx',\n",
+ " 'skttrbrain four tet remix',\n",
+ " 'the national anthem live in france',\n",
+ " 'tkol altrice rmx',\n",
+ " 'true love waits live in oslo',\n",
+ " 'untitled',\n",
+ " 'when im sixty four'}"
+ ]
+ },
+ "execution_count": 50,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "spotify_only"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 51,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'100 years ago',\n",
+ " '1822',\n",
+ " '19th nervous breakdown',\n",
+ " '2000 light years from home',\n",
+ " '2000 man',\n",
+ " '2120 south michigan avenue',\n",
+ " '3',\n",
+ " 'a little rhyme',\n",
+ " 'a moon shaped pool tracklist album cover',\n",
+ " 'a picture of you',\n",
+ " 'a punchup at a wedding',\n",
+ " 'a reminder',\n",
+ " 'a shot of rhythm and blues',\n",
+ " 'across the universe wildlife version',\n",
+ " 'aint she sweet',\n",
+ " 'aint that loving you baby',\n",
+ " 'aint too proud to beg',\n",
+ " 'all sold out',\n",
+ " 'all things must pass',\n",
+ " 'all together on the wireless machine',\n",
+ " 'andrews blues',\n",
+ " 'another beatles christmas record',\n",
+ " 'anyway you look at it',\n",
+ " 'around and around',\n",
+ " 'baby please dont go',\n",
+ " 'baby whats wrong',\n",
+ " 'backstreet girl',\n",
+ " 'bad boy',\n",
+ " 'bad to me',\n",
+ " 'banana co',\n",
+ " 'beatle greetings',\n",
+ " 'beatles movie medley',\n",
+ " 'beautiful delilah',\n",
+ " 'beautiful dreamer',\n",
+ " 'bebopalula',\n",
+ " 'because i know you love me so',\n",
+ " 'being for the benefit of mr kite take 7',\n",
+ " 'being for the benefit of mr kite takes 1 2',\n",
+ " 'being for the benefit of mr kitei want you shes so heavyhelter skelter',\n",
+ " 'besame mucho',\n",
+ " 'big boots',\n",
+ " 'big ideas',\n",
+ " 'bishops robes',\n",
+ " 'bitch',\n",
+ " 'bitches talkin',\n",
+ " 'blackbirdyesterday',\n",
+ " 'blood red wine',\n",
+ " 'blue moon of kentucky',\n",
+ " 'blue suede shoes',\n",
+ " 'blue turns to grey',\n",
+ " 'bright lights big city',\n",
+ " 'bullet proofi wish i was',\n",
+ " 'burning bush',\n",
+ " 'bye bye johnny',\n",
+ " 'can i get a witness',\n",
+ " 'can you hear the music',\n",
+ " 'can you take me back',\n",
+ " 'cant get next to you',\n",
+ " 'carol',\n",
+ " 'casino boogie',\n",
+ " 'ceremony',\n",
+ " 'charlie watts introduction of marianne faithfull',\n",
+ " 'cherry oh baby',\n",
+ " 'child of nature',\n",
+ " 'child of the moon',\n",
+ " 'christmas time is here again',\n",
+ " 'cinnamon girl',\n",
+ " 'citadel',\n",
+ " 'clarabella',\n",
+ " 'climbing up a bloody great hill',\n",
+ " 'cocksucker blues',\n",
+ " 'coke babies',\n",
+ " 'come and get it',\n",
+ " 'come on',\n",
+ " 'come togetherdear prudence',\n",
+ " 'coming down again',\n",
+ " 'commonwealth',\n",
+ " 'complicated',\n",
+ " 'con le mie lacrime',\n",
+ " 'confessin the blues',\n",
+ " 'congratulations',\n",
+ " 'cook cook blues',\n",
+ " 'cool calm and collected',\n",
+ " 'cops and robbers',\n",
+ " 'corinna',\n",
+ " 'country honk',\n",
+ " 'crackin up',\n",
+ " 'crazy mama',\n",
+ " 'crinsk dee night',\n",
+ " 'criss cross man',\n",
+ " 'crushed pearl',\n",
+ " 'cry for a shadow',\n",
+ " 'cry to me',\n",
+ " 'crying waiting hoping',\n",
+ " 'cut a hole',\n",
+ " 'cuttooth',\n",
+ " 'da doo ron ron',\n",
+ " 'dance',\n",
+ " 'dance little sister',\n",
+ " 'dancing in the light',\n",
+ " 'dancing with mr d',\n",
+ " 'dandelion',\n",
+ " 'dear doctor',\n",
+ " 'dear wack',\n",
+ " 'diddley daddy',\n",
+ " 'dollars and cents',\n",
+ " 'doncha bother me',\n",
+ " 'dont ever change',\n",
+ " 'dont let me down',\n",
+ " 'dont lie to me',\n",
+ " 'dont look back',\n",
+ " 'dont stop',\n",
+ " 'doo doo doo doo doo heartbreaker',\n",
+ " 'doom and gloom',\n",
+ " 'down home girl',\n",
+ " 'down in eastern australia',\n",
+ " 'down in the bottom',\n",
+ " 'downtown suzie',\n",
+ " 'dream baby',\n",
+ " 'drift away',\n",
+ " 'drive my carthe wordwhat youre doing',\n",
+ " 'each and every day of the year',\n",
+ " 'eds scary song',\n",
+ " 'egyptian song',\n",
+ " 'eleanor rigbyjulia transition',\n",
+ " 'empty heart',\n",
+ " 'everybody lies through their teeth',\n",
+ " 'everyone needs someone to hate',\n",
+ " 'everything is turning to gold',\n",
+ " 'faithless the wonderboy',\n",
+ " 'falling in love again',\n",
+ " 'family',\n",
+ " 'fancyman blues',\n",
+ " 'fanny mae',\n",
+ " 'fasttrack',\n",
+ " 'final show',\n",
+ " 'fingerprint file',\n",
+ " 'flight 505',\n",
+ " 'fog',\n",
+ " 'follow me around',\n",
+ " 'following the river',\n",
+ " 'fool to cry',\n",
+ " 'fortune teller',\n",
+ " 'four guys',\n",
+ " 'free as a bird',\n",
+ " 'from fluff to you',\n",
+ " 'from us to you',\n",
+ " 'gangsters maul',\n",
+ " 'get back aka no pakistanis',\n",
+ " 'get off of my cloud',\n",
+ " 'give it up',\n",
+ " 'give peace a chance',\n",
+ " 'glad all over',\n",
+ " 'glass onion love remix',\n",
+ " 'gnik nus',\n",
+ " 'goin home',\n",
+ " 'gomper',\n",
+ " 'good time women',\n",
+ " 'good times',\n",
+ " 'good times bad times',\n",
+ " 'goodbye',\n",
+ " 'goodbye girl',\n",
+ " 'gotta get away',\n",
+ " 'grown up wrong',\n",
+ " 'hallelujah i love her so',\n",
+ " 'hand of fate',\n",
+ " 'happy song',\n",
+ " 'harlem shuffle ny mix',\n",
+ " 'harry patch in memory of',\n",
+ " 'have a banana',\n",
+ " 'have a banana speech',\n",
+ " 'have you seen your mother baby standing in the shadow',\n",
+ " 'hear me lord harrison',\n",
+ " 'heart of stone',\n",
+ " 'heavys pizza',\n",
+ " 'hello little girl',\n",
+ " 'here comes the sunthe inner light transition',\n",
+ " 'hey crawdaddy',\n",
+ " 'hey negrita',\n",
+ " 'hide your love',\n",
+ " 'highway child',\n",
+ " 'hiheel sneakers',\n",
+ " 'hitch hike',\n",
+ " 'honest i do',\n",
+ " 'hoochie coochie man',\n",
+ " 'hot stuff',\n",
+ " 'hound dog',\n",
+ " 'how can you be sure',\n",
+ " 'how do you do it',\n",
+ " 'how i made my millions',\n",
+ " 'i aint superstitious',\n",
+ " 'i am waiting',\n",
+ " 'i call your name',\n",
+ " 'i cant be satisfied',\n",
+ " 'i cant help it',\n",
+ " 'i dont know why',\n",
+ " 'i dont know why aka dont know why i love you',\n",
+ " 'i forgot to remember to forget',\n",
+ " 'i froze up',\n",
+ " 'i get a kick out of you',\n",
+ " 'i got a woman',\n",
+ " 'i got the blues',\n",
+ " 'i got to find my baby',\n",
+ " 'i just dont understand',\n",
+ " 'i just want to make love to you',\n",
+ " 'i just want to see his face',\n",
+ " 'i need you baby mona',\n",
+ " 'i promise',\n",
+ " 'i think im going mad',\n",
+ " 'i want none of this',\n",
+ " 'i want to be loved',\n",
+ " 'i want to know',\n",
+ " 'id much rather be with the boys',\n",
+ " 'if i was a dancer dance part 2',\n",
+ " 'if you cant rock me',\n",
+ " 'if you let me',\n",
+ " 'if you love me baby',\n",
+ " 'if you need me',\n",
+ " 'if you really want to be my friend',\n",
+ " 'if youve got trouble',\n",
+ " 'ill be on my way',\n",
+ " 'ill get you',\n",
+ " 'ill wear it proudly',\n",
+ " 'ill wind',\n",
+ " 'im a king bee',\n",
+ " 'im coming up',\n",
+ " 'im down',\n",
+ " 'im going down',\n",
+ " 'im gonna drive',\n",
+ " 'im gonna sit right down and cry over you',\n",
+ " 'im not signifying',\n",
+ " 'im talking about you',\n",
+ " 'in another land',\n",
+ " 'in spite of all the danger',\n",
+ " 'india',\n",
+ " 'india rubber',\n",
+ " 'inside my head',\n",
+ " 'intro',\n",
+ " 'intro excerpt from fanfare for the common man',\n",
+ " 'it hurts me too',\n",
+ " 'it should be you',\n",
+ " 'its all over now',\n",
+ " 'its for you',\n",
+ " 'its not easy',\n",
+ " 'ive been loving you too long',\n",
+ " 'james bond theme',\n",
+ " 'jazz piano song',\n",
+ " 'jerusalem',\n",
+ " 'jigsaw puzzle',\n",
+ " 'jingle bells',\n",
+ " 'jiving sister fanny',\n",
+ " 'john lennon vs bill oreilly',\n",
+ " 'john wesley harding',\n",
+ " 'johnny b goode',\n",
+ " 'jump on top of me',\n",
+ " 'junk',\n",
+ " 'just a rumour',\n",
+ " 'just a rumour speech',\n",
+ " 'kansas city',\n",
+ " 'keep strong',\n",
+ " 'keep your hands off my baby',\n",
+ " 'keith richards introduction of the who',\n",
+ " 'keys to your love',\n",
+ " 'kid a tracklist album cover',\n",
+ " 'killer cars',\n",
+ " 'komm gib mir deine hand',\n",
+ " 'ladies and gentlemen the rolling stones',\n",
+ " 'lady jane',\n",
+ " 'ladytron',\n",
+ " 'leave my kitten alone',\n",
+ " 'lend me your comb',\n",
+ " 'let it loose',\n",
+ " 'let it rock',\n",
+ " 'lets dance',\n",
+ " 'lewis mistreated',\n",
+ " 'lift',\n",
+ " 'like dreamers do',\n",
+ " 'linda lu',\n",
+ " 'little queenie',\n",
+ " 'little t a',\n",
+ " 'lonesome tears in my eyes',\n",
+ " 'long long while',\n",
+ " 'look what youve done',\n",
+ " 'looking tired',\n",
+ " 'losing my touch',\n",
+ " 'love',\n",
+ " 'love of the loved',\n",
+ " 'love these goon shows',\n",
+ " 'lozenge of love',\n",
+ " 'lucille',\n",
+ " 'lull',\n",
+ " 'luxury',\n",
+ " 'mailman bring me no more blues',\n",
+ " 'mannish boy',\n",
+ " 'manowar',\n",
+ " 'mantua',\n",
+ " 'maquiladora',\n",
+ " 'matchbox',\n",
+ " 'medley kansas cityhey hey hey hey',\n",
+ " 'medley rip it up shake rattle and roll blue suede shoes',\n",
+ " 'meet me in the bottom',\n",
+ " 'meeting in the aisle',\n",
+ " 'melatonin',\n",
+ " 'melody',\n",
+ " 'memo from turner',\n",
+ " 'memory motel',\n",
+ " 'memphis',\n",
+ " 'memphis tennessee',\n",
+ " 'mercy mercy',\n",
+ " 'mick jaggers and john lennons introduction of the dirty mac',\n",
+ " 'mick jaggers introduction of rock roll circus',\n",
+ " 'mick jaggers introduction to jethro tull',\n",
+ " 'million dollar question',\n",
+ " 'miss amanda jones',\n",
+ " 'miss you dr dre remix 2002',\n",
+ " 'missing links bootleg',\n",
+ " 'molasses',\n",
+ " 'mona',\n",
+ " 'money',\n",
+ " 'moonlight',\n",
+ " 'moonlight bay',\n",
+ " 'moonlight mile',\n",
+ " 'mothers little helper',\n",
+ " 'movie medley',\n",
+ " 'mr b',\n",
+ " 'my bonnie',\n",
+ " 'my bonnie english intro',\n",
+ " 'my bonnie german intro',\n",
+ " 'my girl',\n",
+ " 'my obsession',\n",
+ " 'no expectations',\n",
+ " 'no reply demo',\n",
+ " 'nobody does it better',\n",
+ " 'nobodys child',\n",
+ " 'not guilty',\n",
+ " 'nothin shakin',\n",
+ " 'nothin shakin but the leaves on the trees',\n",
+ " 'nothing from nothing',\n",
+ " 'nothing touches me',\n",
+ " 'oh baby we got a good thing goin',\n",
+ " 'old brown shoe',\n",
+ " 'on the beach',\n",
+ " 'on with the show',\n",
+ " 'one and one is two',\n",
+ " 'one more shot',\n",
+ " 'one more try',\n",
+ " 'ooh my arms',\n",
+ " 'ooh my arms speech',\n",
+ " 'ooh my soul',\n",
+ " 'open pick',\n",
+ " 'out of time',\n",
+ " 'packt like sardines in a crushd tin box',\n",
+ " 'paint it blacker',\n",
+ " 'palo alto',\n",
+ " 'pantomime everywhere its christmas',\n",
+ " 'parachute woman',\n",
+ " 'pass the wine sophia loren',\n",
+ " 'pay your dues',\n",
+ " 'pearly',\n",
+ " 'pedro the fisherman',\n",
+ " 'permanent daylight',\n",
+ " 'petrol gang',\n",
+ " 'phillipa chicken',\n",
+ " 'play with fire',\n",
+ " 'please go home',\n",
+ " 'plundered my soul',\n",
+ " 'poison ivy',\n",
+ " 'polyethylene parts 1 2',\n",
+ " 'pop is dead',\n",
+ " 'prodigal son',\n",
+ " 'punchdrunk lovesick singalong',\n",
+ " 'rain',\n",
+ " 'rain fall down william remix',\n",
+ " 'ready teddy',\n",
+ " 'real love',\n",
+ " 'reelin and rockin',\n",
+ " 'reminiscing',\n",
+ " 'revolution',\n",
+ " 'revolution i',\n",
+ " 'rhinestone cowboy',\n",
+ " 'ride on baby',\n",
+ " 'riding on a bus',\n",
+ " 'rip it up medley',\n",
+ " 'road runner',\n",
+ " 'ruby baby',\n",
+ " 'sad day',\n",
+ " 'saints',\n",
+ " 'saints when the saints go marching in',\n",
+ " 'salt of the earth',\n",
+ " 'searchin',\n",
+ " 'september in the rain',\n",
+ " 'set fire to that lot',\n",
+ " 'set fire to that lot speech',\n",
+ " 'sgt peppers lonely hearts club band band documentary multimedia',\n",
+ " 'sgt peppers lonely hearts club band reprise',\n",
+ " 'sha la la la la',\n",
+ " 'shake rattle and roll',\n",
+ " 'shake your hips',\n",
+ " 'she said yeah',\n",
+ " 'she smiled sweetly',\n",
+ " 'shes a rainbow',\n",
+ " 'short and curlies',\n",
+ " 'shout',\n",
+ " 'sie liebt dich',\n",
+ " 'silver train',\n",
+ " 'sing a song for you',\n",
+ " 'sing this all together',\n",
+ " 'sing this all together see what happens',\n",
+ " 'sinking ship',\n",
+ " 'sister morphine',\n",
+ " 'sittin on a fence',\n",
+ " 'sleepy city',\n",
+ " 'slow down',\n",
+ " 'so divine aladdin story',\n",
+ " 'so how come no one loves me',\n",
+ " 'soldier of love',\n",
+ " 'some other guy',\n",
+ " 'some things just stick in your mind',\n",
+ " 'somebody else',\n",
+ " 'someone else',\n",
+ " 'something happened to me yesterday',\n",
+ " 'something with blue jay way transition',\n",
+ " 'somewhere',\n",
+ " 'soul survivor',\n",
+ " 'sour milk sea',\n",
+ " 'spectre',\n",
+ " 'staircase',\n",
+ " 'stand by me',\n",
+ " 'star star',\n",
+ " 'stealing my heart',\n",
+ " 'step inside love',\n",
+ " 'step inside love los paranoias',\n",
+ " 'still a fool',\n",
+ " 'stoned',\n",
+ " 'stop breaking down',\n",
+ " 'stranger in my arms',\n",
+ " 'strawberry fields forever take 1',\n",
+ " 'strawberry fields forever take 7 edit piece',\n",
+ " 'stray cat blues',\n",
+ " 'stuck out all alone',\n",
+ " 'stupid car',\n",
+ " 'stupid girl',\n",
+ " 'summertime blues',\n",
+ " 'supercollider',\n",
+ " 'sure to fall',\n",
+ " 'sure to fall in love with you',\n",
+ " 'surprise surprise',\n",
+ " 'susie q',\n",
+ " 'suzy parker',\n",
+ " 'swanee river',\n",
+ " 'sway',\n",
+ " 'sweet black angel',\n",
+ " 'sweet georgia brown',\n",
+ " 'sweet little sixteen',\n",
+ " 'sympathy for the devil fatboy slim remix',\n",
+ " 'sympathy for the devil the neptunes remix',\n",
+ " 'take good care of my baby',\n",
+ " 'take it or leave it',\n",
+ " 'talk show host',\n",
+ " 'talkin about you',\n",
+ " 'teddy boy',\n",
+ " 'tell me',\n",
+ " 'tell me baby how many times',\n",
+ " 'tell me why ep',\n",
+ " 'tell me youre coming back',\n",
+ " 'thank you girl',\n",
+ " 'that girl belongs to yesterday',\n",
+ " 'that means a lot',\n",
+ " 'thatll be the day',\n",
+ " 'thats alright mama',\n",
+ " 'the amazing sounds of orgy',\n",
+ " 'the beatles 1968 christmas record',\n",
+ " 'the beatles christmas record',\n",
+ " 'the beatles seventh christmas record',\n",
+ " 'the beatles third christmas record',\n",
+ " 'the butcher',\n",
+ " 'the daily mail',\n",
+ " 'the fool on the hill demo',\n",
+ " 'the fool on the hill take 4',\n",
+ " 'the happy rishikesh song',\n",
+ " 'the harder they come',\n",
+ " 'the hippy hippy shake',\n",
+ " 'the honeymoon song',\n",
+ " 'the inner light',\n",
+ " 'the lantern',\n",
+ " 'the new generation',\n",
+ " 'the rocky road to dublin',\n",
+ " 'the sheik of araby',\n",
+ " 'the singer not the song',\n",
+ " 'the storm',\n",
+ " 'the thief',\n",
+ " 'the trickster',\n",
+ " 'the under assistant west coast promotion man',\n",
+ " 'these are my twisted words',\n",
+ " 'think',\n",
+ " 'this boy',\n",
+ " 'three cool cats',\n",
+ " 'through the lonely nights',\n",
+ " 'till the next goodbye',\n",
+ " 'time waits for no one',\n",
+ " 'title 5',\n",
+ " 'to be a brilliant light',\n",
+ " 'to know her is to love her',\n",
+ " 'too much monkey business',\n",
+ " 'torn and frayed',\n",
+ " 'transatlantic drawl',\n",
+ " 'travellin man',\n",
+ " 'try a little harder',\n",
+ " 'turd on the run',\n",
+ " 'under the board walk',\n",
+ " 'union city blue',\n",
+ " 'untogether',\n",
+ " 'upside down',\n",
+ " 'ventilator blues',\n",
+ " 'wake up in the morning',\n",
+ " 'walking the dog',\n",
+ " 'walking through the sleepy city',\n",
+ " 'watching rainbows',\n",
+ " 'we are wasting time',\n",
+ " 'we love you',\n",
+ " 'we want the stones',\n",
+ " 'were wastin time',\n",
+ " 'what a shame',\n",
+ " 'what goes on girl',\n",
+ " 'what is it that you say',\n",
+ " 'what is that you say',\n",
+ " 'what to do',\n",
+ " 'whatd i say',\n",
+ " 'whats the new mary jane',\n",
+ " 'when im sixtyfour',\n",
+ " 'when the saints go marchin in',\n",
+ " 'who am i',\n",
+ " 'whos been sleeping here',\n",
+ " 'whos driving your plane',\n",
+ " 'why',\n",
+ " 'wicked child',\n",
+ " 'winter',\n",
+ " 'wish i never met you',\n",
+ " 'wish you were here',\n",
+ " 'within you without youtomorrow never knows',\n",
+ " 'wonderwall',\n",
+ " 'words of love ep',\n",
+ " 'worrywort',\n",
+ " 'ya ya',\n",
+ " 'yes i am',\n",
+ " 'yes it is',\n",
+ " 'yesterdays papers',\n",
+ " 'you better move on',\n",
+ " 'you can make it if you try',\n",
+ " 'you cant catch me',\n",
+ " 'you gotta move',\n",
+ " 'you know my name',\n",
+ " 'you know my name look up the number',\n",
+ " 'you know what to do',\n",
+ " 'you never wash up after yourself',\n",
+ " 'youll be mine',\n",
+ " 'young blood',\n",
+ " 'youve got a hold on me',\n",
+ " 'yove got to hide your love away'}"
+ ]
+ },
+ "execution_count": 51,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "genius_only"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "Manually fix a couple of errors."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "<pymongo.results.UpdateResult at 0x7fa6226370d8>"
+ ]
+ },
+ "execution_count": 52,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "genius_tracks.update_many({'ctitle': 'revolution i'}, \n",
+ " {'$set': {'ctitle': 'revolution 1'}})\n",
+ "genius_tracks.update_many({'ctitle': 'when im sixtyfour'}, \n",
+ " {'$set': {'ctitle': 'when im sixty four'}})\n",
+ "genius_tracks.update_many({'ctitle': 'packt like sardines in a crushd tin box'}, \n",
+ " {'$set': {'ctitle': 'packt like sardines in a crushed tin box'}})\n",
+ "genius_tracks.update_many({'ctitle': 'a punchup at a wedding'}, \n",
+ " {'$set': {'ctitle': 'a punch up at a wedding'}})\n",
+ "genius_tracks.update_many({'ctitle': 'dollars cents'}, \n",
+ " {'$set': {'ctitle': 'dollars and cents'}})\n",
+ "genius_tracks.update_many({'ctitle': 'bullet proofi wish i was'}, \n",
+ " {'$set': {'ctitle': 'bullet proof i wish i was'}})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 79,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(306, 293, 41)"
+ ]
+ },
+ "execution_count": 79,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "in_both = set(g['ctitle'] for g in genius_tracks.find({}, ['ctitle']) if tracks.find({'ctitle': g['ctitle']}).count())\n",
+ "genius_only = set(g['ctitle'] for g in genius_tracks.find({}, ['ctitle']) if not tracks.find({'ctitle': g['ctitle']}).count())\n",
+ "spotify_only = set(s['ctitle'] for s in tracks.find({}, ['ctitle']) if not genius_tracks.find({'ctitle': s['ctitle']}).count())\n",
+ "len(in_both), len(genius_only), len(spotify_only)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Copy the lyrics over<a name=\"copylyrics\"></a>\n",
+ "Now can can connect the tracks, let's copy across the lyrics from the Genius collection into the Spotify collection. We'll calculate the lyrical density at the same time.\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 80,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "for t in tracks.find({}, ['ctitle', 'duration_ms']):\n",
+ " gts = genius_tracks.find({'ctitle': t['ctitle'], 'lyrics': {'$exists': True}}, ['lyrics', 'original_lyrics'])\n",
+ " for gt in gts:\n",
+ " tracks.update_one({'_id': t['_id']}, \n",
+ " {'$set': {'lyrics': gt['lyrics'], \n",
+ " 'original_lyrics': gt['original_lyrics'],\n",
+ " 'lyrical_density': 1000 * len(gt['lyrics'].split()) / t['duration_ms']}})"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Sentiment analysis<a name=\"sentimentanalysis\"></a>\n",
+ "I couldn't find an easily-installable equivalent to the NRC corpus, so I'm using a sentiment analysis API endpoint from [Text Processing](http://text-processing.com/docs/sentiment.html).\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 81,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "for t in tracks.find({'lyrics': {'$exists': True}}, ['lyrics']):\n",
+ " text = t['lyrics']\n",
+ " if text:\n",
+ " query = urllib.parse.urlencode({'text': text}).encode('ascii')\n",
+ " headers = {'Accept': 'application/json',\n",
+ " 'User-Agent': 'curl/7.9.8 (i686-pc-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.6b) (ipv6 enabled)'}\n",
+ " request = urllib.request.Request('http://text-processing.com/api/sentiment/', \n",
+ " headers=headers, data=query)\n",
+ " with urllib.request.urlopen(request) as f:\n",
+ " response = json.loads(f.read().decode('utf-8'))\n",
+ " tracks.update_one({'_id': t['_id']}, {'$set': {'sentiment': response}})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 82,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "dict_keys(['sentiment', 'mode', 'instrumentalness', 'href', 'energy', 'album', 'track_href', 'popularity', 'disc_number', 'liveness', 'available_markets', 'name', 'track_number', 'loudness', 'danceability', 'lyrics', 'uri', 'speechiness', 'type', 'explicit', 'external_urls', 'external_ids', 'artist_id', 'id', 'analysis_url', 'album_id', 'valence', '_id', 'lyrical_density', 'acousticness', 'ctitle', 'duration_ms', 'preview_url', 'artists', 'tempo', 'time_signature', 'artist_name', 'key', 'original_lyrics'])"
+ ]
+ },
+ "execution_count": 82,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tracks.find_one({'sentiment': {'$exists': True}}).keys()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 83,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'_id': '2ucFulEWapRAmTn7l6f5Q7',\n",
+ " 'acousticness': 0.425,\n",
+ " 'album': {'album_type': 'album',\n",
+ " 'artists': [{'external_urls': {'spotify': 'https://open.spotify.com/artist/3WrFJ7ztbogyGnTHbHJFl2'},\n",
+ " 'href': 'https://api.spotify.com/v1/artists/3WrFJ7ztbogyGnTHbHJFl2',\n",
+ " 'id': '3WrFJ7ztbogyGnTHbHJFl2',\n",
+ " 'name': 'The Beatles',\n",
+ " 'type': 'artist',\n",
+ " 'uri': 'spotify:artist:3WrFJ7ztbogyGnTHbHJFl2'}],\n",
+ " 'available_markets': ['AD',\n",
+ " 'AR',\n",
+ " 'AT',\n",
+ " 'AU',\n",
+ " 'BE',\n",
+ " 'BG',\n",
+ " 'BO',\n",
+ " 'BR',\n",
+ " 'CH',\n",
+ " 'CL',\n",
+ " 'CO',\n",
+ " 'CR',\n",
+ " 'CY',\n",
+ " 'CZ',\n",
+ " 'DE',\n",
+ " 'DK',\n",
+ " 'DO',\n",
+ " 'EC',\n",
+ " 'EE',\n",
+ " 'ES',\n",
+ " 'FI',\n",
+ " 'FR',\n",
+ " 'GB',\n",
+ " 'GR',\n",
+ " 'GT',\n",
+ " 'HK',\n",
+ " 'HN',\n",
+ " 'HU',\n",
+ " 'ID',\n",
+ " 'IE',\n",
+ " 'IS',\n",
+ " 'IT',\n",
+ " 'JP',\n",
+ " 'LI',\n",
+ " 'LT',\n",
+ " 'LU',\n",
+ " 'LV',\n",
+ " 'MC',\n",
+ " 'MT',\n",
+ " 'MY',\n",
+ " 'NI',\n",
+ " 'NL',\n",
+ " 'NO',\n",
+ " 'NZ',\n",
+ " 'PA',\n",
+ " 'PE',\n",
+ " 'PH',\n",
+ " 'PL',\n",
+ " 'PT',\n",
+ " 'PY',\n",
+ " 'SE',\n",
+ " 'SG',\n",
+ " 'SK',\n",
+ " 'SV',\n",
+ " 'TR',\n",
+ " 'TW',\n",
+ " 'UY'],\n",
+ " 'external_urls': {'spotify': 'https://open.spotify.com/album/03Qh833fEdVT30Pfs93ea6'},\n",
+ " 'href': 'https://api.spotify.com/v1/albums/03Qh833fEdVT30Pfs93ea6',\n",
+ " 'id': '03Qh833fEdVT30Pfs93ea6',\n",
+ " 'images': [{'height': 640,\n",
+ " 'url': 'https://i.scdn.co/image/d6028aea974c75961cb9cdc2263f5d8a8a6582bd',\n",
+ " 'width': 640},\n",
+ " {'height': 300,\n",
+ " 'url': 'https://i.scdn.co/image/adebae7bf6a4a441bc6a5a17ca840f77df6ed3b9',\n",
+ " 'width': 300},\n",
+ " {'height': 64,\n",
+ " 'url': 'https://i.scdn.co/image/3b0ddfadf13b9f3e74da93fcb21e4183a4d9fcc8',\n",
+ " 'width': 64}],\n",
+ " 'name': 'The Beatles (Remastered)',\n",
+ " 'type': 'album',\n",
+ " 'uri': 'spotify:album:03Qh833fEdVT30Pfs93ea6'},\n",
+ " 'album_id': '03Qh833fEdVT30Pfs93ea6',\n",
+ " 'analysis_url': 'https://api.spotify.com/v1/audio-analysis/2ucFulEWapRAmTn7l6f5Q7',\n",
+ " 'artist_id': '3WrFJ7ztbogyGnTHbHJFl2',\n",
+ " 'artist_name': 'The Beatles',\n",
+ " 'artists': [{'external_urls': {'spotify': 'https://open.spotify.com/artist/3WrFJ7ztbogyGnTHbHJFl2'},\n",
+ " 'href': 'https://api.spotify.com/v1/artists/3WrFJ7ztbogyGnTHbHJFl2',\n",
+ " 'id': '3WrFJ7ztbogyGnTHbHJFl2',\n",
+ " 'name': 'The Beatles',\n",
+ " 'type': 'artist',\n",
+ " 'uri': 'spotify:artist:3WrFJ7ztbogyGnTHbHJFl2'}],\n",
+ " 'available_markets': ['AD',\n",
+ " 'AR',\n",
+ " 'AT',\n",
+ " 'AU',\n",
+ " 'BE',\n",
+ " 'BG',\n",
+ " 'BO',\n",
+ " 'BR',\n",
+ " 'CH',\n",
+ " 'CL',\n",
+ " 'CO',\n",
+ " 'CR',\n",
+ " 'CY',\n",
+ " 'CZ',\n",
+ " 'DE',\n",
+ " 'DK',\n",
+ " 'DO',\n",
+ " 'EC',\n",
+ " 'EE',\n",
+ " 'ES',\n",
+ " 'FI',\n",
+ " 'FR',\n",
+ " 'GB',\n",
+ " 'GR',\n",
+ " 'GT',\n",
+ " 'HK',\n",
+ " 'HN',\n",
+ " 'HU',\n",
+ " 'ID',\n",
+ " 'IE',\n",
+ " 'IS',\n",
+ " 'IT',\n",
+ " 'JP',\n",
+ " 'LI',\n",
+ " 'LT',\n",
+ " 'LU',\n",
+ " 'LV',\n",
+ " 'MC',\n",
+ " 'MT',\n",
+ " 'MY',\n",
+ " 'NI',\n",
+ " 'NL',\n",
+ " 'NO',\n",
+ " 'NZ',\n",
+ " 'PA',\n",
+ " 'PE',\n",
+ " 'PH',\n",
+ " 'PL',\n",
+ " 'PT',\n",
+ " 'PY',\n",
+ " 'SE',\n",
+ " 'SG',\n",
+ " 'SK',\n",
+ " 'SV',\n",
+ " 'TR',\n",
+ " 'TW',\n",
+ " 'UY'],\n",
+ " 'ctitle': 'wild honey pie',\n",
+ " 'danceability': 0.792,\n",
+ " 'disc_number': 1,\n",
+ " 'duration_ms': 52973,\n",
+ " 'energy': 0.763,\n",
+ " 'explicit': False,\n",
+ " 'external_ids': {'isrc': 'GBAYE0601648'},\n",
+ " 'external_urls': {'spotify': 'https://open.spotify.com/track/2ucFulEWapRAmTn7l6f5Q7'},\n",
+ " 'href': 'https://api.spotify.com/v1/tracks/2ucFulEWapRAmTn7l6f5Q7',\n",
+ " 'id': '2ucFulEWapRAmTn7l6f5Q7',\n",
+ " 'instrumentalness': 0.627,\n",
+ " 'key': 2,\n",
+ " 'liveness': 0.789,\n",
+ " 'loudness': -11.185,\n",
+ " 'lyrical_density': 0.16989787250108546,\n",
+ " 'lyrics': 'honey pie honey pie i love you, honey pie',\n",
+ " 'mode': 1,\n",
+ " 'name': 'Wild Honey Pie - Remastered 2009',\n",
+ " 'original_lyrics': '\\n\\nHoney Pie\\nHoney Pie\\nI love you, Honey Pie\\n\\n',\n",
+ " 'popularity': 41,\n",
+ " 'preview_url': 'https://p.scdn.co/mp3-preview/ddebab4d5e87d46a499ce557405cfadf0330bd9c?cid=null',\n",
+ " 'sentiment': {'label': 'pos',\n",
+ " 'probability': {'neg': 0.39117763475308887,\n",
+ " 'neutral': 0.18873615212514983,\n",
+ " 'pos': 0.6088223652469111}},\n",
+ " 'speechiness': 0.0506,\n",
+ " 'tempo': 89.9,\n",
+ " 'time_signature': 4,\n",
+ " 'track_href': 'https://api.spotify.com/v1/tracks/2ucFulEWapRAmTn7l6f5Q7',\n",
+ " 'track_number': 5,\n",
+ " 'type': 'audio_features',\n",
+ " 'uri': 'spotify:track:2ucFulEWapRAmTn7l6f5Q7',\n",
+ " 'valence': 0.153}"
+ ]
+ },
+ "execution_count": 83,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tracks.find_one({'sentiment': {'$exists': True}})"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Analysis<a name=\"analysis\"></a>\n",
+ "Finally, we can get to the analysis of the data!\n",
+ "\n",
+ "First, what are the lowest-valence songs, and what's the distribution of valences?\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 84,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>name</th>\n",
+ " <th>valence</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>1AVrv7FD10FoKW38oBiKRg</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Bloom (Blawan Rmx)</td>\n",
+ " <td>0.0325</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>4rkGGQEqxHIXVJ4oXjOHgF</td>\n",
+ " <td>George Martin</td>\n",
+ " <td>Sea Of Holes - Remastered 2009</td>\n",
+ " <td>0.0352</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>01ZpFhrMMqKPVCwyqXneVp</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>True Love Waits</td>\n",
+ " <td>0.0378</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>3</th>\n",
+ " <td>53RYTfkLiyZuUZHwJC3Wmm</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>We Suck Young Blood</td>\n",
+ " <td>0.0378</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>0ttMfoND7IQqFSMVOPkELC</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Blue Jay Way - Remastered 2009</td>\n",
+ " <td>0.0380</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>5</th>\n",
+ " <td>66Pyms4pYaHEcPHZ7DdMbE</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>TKOL (Altrice Rmx)</td>\n",
+ " <td>0.0383</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>6</th>\n",
+ " <td>3gKuywOm38axM8sJGq6Laq</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>MK 1</td>\n",
+ " <td>0.0391</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>7</th>\n",
+ " <td>75YUnz58ajMo2VIIuUFvOV</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>The Tourist</td>\n",
+ " <td>0.0400</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>8</th>\n",
+ " <td>0tKuiKb2mazZYdA6fPP7kI</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Good Evening Mrs Magpie (Modeselektor RMX)</td>\n",
+ " <td>0.0413</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>9</th>\n",
+ " <td>2PbwmAMaxIBIWis8XLViat</td>\n",
+ " <td>George Martin</td>\n",
+ " <td>Sea Of Monsters - Remastered 2009</td>\n",
+ " <td>0.0422</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>10</th>\n",
+ " <td>0COiZ7ncho2yi4HotbzgPv</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Motion Picture Soundtrack</td>\n",
+ " <td>0.0425</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>11</th>\n",
+ " <td>2uYSbsxAMmK1awUl06T7ix</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>MK 2</td>\n",
+ " <td>0.0437</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>12</th>\n",
+ " <td>4gq2bc2770XvbJdEtfUbmw</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Go Slowly</td>\n",
+ " <td>0.0453</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>13</th>\n",
+ " <td>5olWalQH1oVza5D6xJg4oX</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Sail To The Moon</td>\n",
+ " <td>0.0458</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>14</th>\n",
+ " <td>49JPfRfsAfjWYRN6lbC3my</td>\n",
+ " <td>George Martin</td>\n",
+ " <td>Pepperland Laid Waste - Remastered 2009</td>\n",
+ " <td>0.0459</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>15</th>\n",
+ " <td>3uxhyRdWVXp7GQvERQl6fA</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Videotape</td>\n",
+ " <td>0.0468</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>16</th>\n",
+ " <td>29yXMFKIrY1fFY4DYBVZCu</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Life In a Glasshouse</td>\n",
+ " <td>0.0516</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>17</th>\n",
+ " <td>3cual6JOG286qZJmCxKRAT</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Tinker Tailor Soldier Sailor Rich Man Poor Man...</td>\n",
+ " <td>0.0517</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>18</th>\n",
+ " <td>6f6pEjgfTtuRROmJ4a7Gf3</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>The Numbers</td>\n",
+ " <td>0.0545</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>19</th>\n",
+ " <td>0agoaPIy92gPZ6zRhqXarE</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Tomorrow Never Knows - Remastered 2009</td>\n",
+ " <td>0.0556</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name \\\n",
+ "0 1AVrv7FD10FoKW38oBiKRg Radiohead \n",
+ "1 4rkGGQEqxHIXVJ4oXjOHgF George Martin \n",
+ "2 01ZpFhrMMqKPVCwyqXneVp Radiohead \n",
+ "3 53RYTfkLiyZuUZHwJC3Wmm Radiohead \n",
+ "4 0ttMfoND7IQqFSMVOPkELC The Beatles \n",
+ "5 66Pyms4pYaHEcPHZ7DdMbE Radiohead \n",
+ "6 3gKuywOm38axM8sJGq6Laq Radiohead \n",
+ "7 75YUnz58ajMo2VIIuUFvOV Radiohead \n",
+ "8 0tKuiKb2mazZYdA6fPP7kI Radiohead \n",
+ "9 2PbwmAMaxIBIWis8XLViat George Martin \n",
+ "10 0COiZ7ncho2yi4HotbzgPv Radiohead \n",
+ "11 2uYSbsxAMmK1awUl06T7ix Radiohead \n",
+ "12 4gq2bc2770XvbJdEtfUbmw Radiohead \n",
+ "13 5olWalQH1oVza5D6xJg4oX Radiohead \n",
+ "14 49JPfRfsAfjWYRN6lbC3my George Martin \n",
+ "15 3uxhyRdWVXp7GQvERQl6fA Radiohead \n",
+ "16 29yXMFKIrY1fFY4DYBVZCu Radiohead \n",
+ "17 3cual6JOG286qZJmCxKRAT Radiohead \n",
+ "18 6f6pEjgfTtuRROmJ4a7Gf3 Radiohead \n",
+ "19 0agoaPIy92gPZ6zRhqXarE The Beatles \n",
+ "\n",
+ " name valence \n",
+ "0 Bloom (Blawan Rmx) 0.0325 \n",
+ "1 Sea Of Holes - Remastered 2009 0.0352 \n",
+ "2 True Love Waits 0.0378 \n",
+ "3 We Suck Young Blood 0.0378 \n",
+ "4 Blue Jay Way - Remastered 2009 0.0380 \n",
+ "5 TKOL (Altrice Rmx) 0.0383 \n",
+ "6 MK 1 0.0391 \n",
+ "7 The Tourist 0.0400 \n",
+ "8 Good Evening Mrs Magpie (Modeselektor RMX) 0.0413 \n",
+ "9 Sea Of Monsters - Remastered 2009 0.0422 \n",
+ "10 Motion Picture Soundtrack 0.0425 \n",
+ "11 MK 2 0.0437 \n",
+ "12 Go Slowly 0.0453 \n",
+ "13 Sail To The Moon 0.0458 \n",
+ "14 Pepperland Laid Waste - Remastered 2009 0.0459 \n",
+ "15 Videotape 0.0468 \n",
+ "16 Life In a Glasshouse 0.0516 \n",
+ "17 Tinker Tailor Soldier Sailor Rich Man Poor Man... 0.0517 \n",
+ "18 The Numbers 0.0545 \n",
+ "19 Tomorrow Never Knows - Remastered 2009 0.0556 "
+ ]
+ },
+ "execution_count": 84,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pd.DataFrame(list(tracks.find({}, \n",
+ " ['artist_name', 'name', 'valence'], \n",
+ " sort=[('valence', pymongo.ASCENDING)], limit=20)))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Just the Beatles songs."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 85,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>name</th>\n",
+ " <th>valence</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>113</th>\n",
+ " <td>0ttMfoND7IQqFSMVOPkELC</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Blue Jay Way - Remastered 2009</td>\n",
+ " <td>0.0380</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>147</th>\n",
+ " <td>0agoaPIy92gPZ6zRhqXarE</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Tomorrow Never Knows - Remastered 2009</td>\n",
+ " <td>0.0556</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>109</th>\n",
+ " <td>6ZrPbHp9kRmQj1tGLvna8U</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Revolution 9 - Remastered 2009</td>\n",
+ " <td>0.0963</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>104</th>\n",
+ " <td>27YZJHyTTDIurMqDu1v2ef</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Long, Long, Long - Remastered 2009</td>\n",
+ " <td>0.1350</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>2ucFulEWapRAmTn7l6f5Q7</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Wild Honey Pie - Remastered 2009</td>\n",
+ " <td>0.1530</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>66</th>\n",
+ " <td>4cLoL5KPfE1hAwfsO84FX7</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Because - Remastered 2009</td>\n",
+ " <td>0.1620</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>133</th>\n",
+ " <td>3ZFBeIyP41HhnALjxWy1pR</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>A Day In The Life - Remastered 2009</td>\n",
+ " <td>0.1620</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>44</th>\n",
+ " <td>7iABnSNZciNepqGtjMQxxd</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Come Together - Remastered 2015</td>\n",
+ " <td>0.1780</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>59</th>\n",
+ " <td>0MKqeOVdZcUFGJvWpGCKbG</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Come Together - Remastered 2009</td>\n",
+ " <td>0.1790</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>110</th>\n",
+ " <td>2tf8ljpWPmXNIFgRVhEuJg</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Good Night - Remastered 2009</td>\n",
+ " <td>0.1920</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name \\\n",
+ "113 0ttMfoND7IQqFSMVOPkELC The Beatles \n",
+ "147 0agoaPIy92gPZ6zRhqXarE The Beatles \n",
+ "109 6ZrPbHp9kRmQj1tGLvna8U The Beatles \n",
+ "104 27YZJHyTTDIurMqDu1v2ef The Beatles \n",
+ "0 2ucFulEWapRAmTn7l6f5Q7 The Beatles \n",
+ "66 4cLoL5KPfE1hAwfsO84FX7 The Beatles \n",
+ "133 3ZFBeIyP41HhnALjxWy1pR The Beatles \n",
+ "44 7iABnSNZciNepqGtjMQxxd The Beatles \n",
+ "59 0MKqeOVdZcUFGJvWpGCKbG The Beatles \n",
+ "110 2tf8ljpWPmXNIFgRVhEuJg The Beatles \n",
+ "\n",
+ " name valence \n",
+ "113 Blue Jay Way - Remastered 2009 0.0380 \n",
+ "147 Tomorrow Never Knows - Remastered 2009 0.0556 \n",
+ "109 Revolution 9 - Remastered 2009 0.0963 \n",
+ "104 Long, Long, Long - Remastered 2009 0.1350 \n",
+ "0 Wild Honey Pie - Remastered 2009 0.1530 \n",
+ "66 Because - Remastered 2009 0.1620 \n",
+ "133 A Day In The Life - Remastered 2009 0.1620 \n",
+ "44 Come Together - Remastered 2015 0.1780 \n",
+ "59 Come Together - Remastered 2009 0.1790 \n",
+ "110 Good Night - Remastered 2009 0.1920 "
+ ]
+ },
+ "execution_count": 85,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "beatles_df = pd.DataFrame(list(tracks.find({'artist_id': beatles_id}, \n",
+ " ['artist_name', 'name', 'valence'])))\n",
+ "beatles_df.sort_values('valence').head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "And plot the valences.."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 86,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "<matplotlib.axes._subplots.AxesSubplot at 0x7f622af36c88>"
+ ]
+ },
+ "execution_count": 86,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\nQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622ac41668>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "beatles_df['valence'].hist()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 88,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "<matplotlib.axes._subplots.AxesSubplot at 0x7f622af5d588>"
+ ]
+ },
+ "execution_count": 88,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\nYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622ac41748>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "radiohead_df['valence'].hist()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "And now plot both on the same chart, to clearly show that Radiohead songs are generally lower-valence than The Beatles."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 89,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "<matplotlib.axes._subplots.AxesSubplot at 0x7f622af4d8d0>"
+ ]
+ },
+ "execution_count": 89,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\nke13pqTNkr4j6Yp2z7uNx8VbJH1P0sJs+9x2z7uNtbhT0ieyry+V9Gy7593CevyqpB5JT8zw/fdJ\n+vfs66skba32ms1aqddyIdJ1ktZnX39FE2+wFk3VOrj7ZnevXGGxVcU9t7/Wi9PWSrpD0pGUk0us\nllr8vqS/dveXJcnd9yaeYyq11GJc0sLs6y5JP0k4v6TcfYukfbPscp2ke7N9/0vSIjM7f7bXbFZT\nr+VCpMl93P2YpFEzO6dJ43eKei/IuknSN1o6o/apWovsv5IXuvvXU06sDWo5Lt4q6RIz22Jm3zGz\n9yabXVq11OKzkj5qZs9J+jdJf5pobp1oer1+oioLwWZ98HQtFyJN38dOsM/JruYLssxslaRf1kQc\nU0Sz1sImrvL6gqQbqjynCGo5Lk7VRATzLklLJD1mZm+vrNwLpJZafETSPe7+hex6mA2auL/UXFT3\nRZ7NWqnv1sSBWHGhpOen7fOcpDdJk+e4L3T32f7bcTKqpQ4ys2sk3Sbp/dl/QYuoWi3O0sQvasnM\nnpW0VNKDBX2ztJbjYrekB9193N3LmrgG5OI000uqllrcJOnLkuTuWyWdbmbnpplex9mtrG9mTthT\npmpWU/+upLeY2UVm9jpJH5b00LR9vqZYlV0vaWOTxu4kVetgZu+Q9CVJv+XuL7ZhjqnMWgt3f9nd\n3+Dub3b3X9DE+wvvd/dtbZpvK9Xy+zEo6WpJyhrYxZL+L+ks06ilFj+WdI0kmdmlkk4r8HsM0sRq\nfKb/pT4k6WPS5FX8o+4+MuurNfFd3BWaWF3sknRr9thnJf1m9vVpmvjXd5cmfoG72/3Oc4veza5W\nh29q4grcbZK2Sxps95zbVYtp+25UQc9+qbUWkj4v6QeSdkq6vt1zblctNHHGyxZNnBmzTdK72z3n\nFtbiPk2svI9IGpL0cUmfkPQHU/b5oibOGNpZy+8IFx8BQIHwcXYAUCA0dQAoEJo6ABQITR0ACoSm\nDgAFQlMHgAKhqQNAgdDUAaBA/h+JY+4p63w4GAAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622adf0908>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "beatles_df['valence'].hist(alpha=0.5, color='blue')\n",
+ "radiohead_df['valence'].hist(alpha=0.5, color='red')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Sentiment<a name=\"sentiment\"></a>\n",
+ "We can now look at the sentiment scores for the lyrics. We start by looking at the most negative songs for each artist.\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 90,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>name</th>\n",
+ " <th>neg</th>\n",
+ " <th>neutral</th>\n",
+ " <th>pos</th>\n",
+ " <th>valence</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>88</th>\n",
+ " <td>3VgxeWOGdUYvtX1j8C9VyV</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>I'm So Tired - Remastered 2009</td>\n",
+ " <td>0.892489</td>\n",
+ " <td>0.146302</td>\n",
+ " <td>0.107511</td>\n",
+ " <td>0.6300</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>62</th>\n",
+ " <td>6gLmFcRwyQCQT23Df2Re9G</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>I Want You (She's So Heavy) - Remastered 2009</td>\n",
+ " <td>0.882642</td>\n",
+ " <td>0.091819</td>\n",
+ " <td>0.117358</td>\n",
+ " <td>0.4160</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>107</th>\n",
+ " <td>6ZrPbHp9kRmQj1tGLvna8U</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Revolution 9 - Remastered 2009</td>\n",
+ " <td>0.873285</td>\n",
+ " <td>0.172322</td>\n",
+ " <td>0.126715</td>\n",
+ " <td>0.0963</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>186</th>\n",
+ " <td>3EbGioQyKyf4dycuiPOg3k</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Everybody's Trying To Be My Baby - Remastered ...</td>\n",
+ " <td>0.866985</td>\n",
+ " <td>0.914332</td>\n",
+ " <td>0.133015</td>\n",
+ " <td>0.9370</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>16</th>\n",
+ " <td>79QDgDoBbS7pCrOjIH7ByA</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Everybody’s Trying To Be My Baby - Live / Bonu...</td>\n",
+ " <td>0.866985</td>\n",
+ " <td>0.914332</td>\n",
+ " <td>0.133015</td>\n",
+ " <td>0.6390</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>53</th>\n",
+ " <td>4311wT21Et0q3vepFwXjTu</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>One After 909 - Remastered 2009</td>\n",
+ " <td>0.865737</td>\n",
+ " <td>0.158470</td>\n",
+ " <td>0.134263</td>\n",
+ " <td>0.9040</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>148</th>\n",
+ " <td>3QbhVaulXxTyuAxHY3Pa5N</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>You Won't See Me - Remastered 2009</td>\n",
+ " <td>0.864585</td>\n",
+ " <td>0.247226</td>\n",
+ " <td>0.135415</td>\n",
+ " <td>0.4620</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>195</th>\n",
+ " <td>3Aqo28W4LLAolYpN3duVJl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>I'll Cry Instead - Remastered 2009</td>\n",
+ " <td>0.863772</td>\n",
+ " <td>0.160516</td>\n",
+ " <td>0.136228</td>\n",
+ " <td>0.9610</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>92</th>\n",
+ " <td>3OSi8ehmSWLTD5KatlzX8r</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Don't Pass Me By - Remastered 2009</td>\n",
+ " <td>0.857831</td>\n",
+ " <td>0.120676</td>\n",
+ " <td>0.142169</td>\n",
+ " <td>0.9480</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>134</th>\n",
+ " <td>3wAOX1N5M0ta3QNsokmhJV</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>I'm Only Sleeping - Remastered 2009</td>\n",
+ " <td>0.857651</td>\n",
+ " <td>0.269800</td>\n",
+ " <td>0.142349</td>\n",
+ " <td>0.7000</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name \\\n",
+ "88 3VgxeWOGdUYvtX1j8C9VyV The Beatles \n",
+ "62 6gLmFcRwyQCQT23Df2Re9G The Beatles \n",
+ "107 6ZrPbHp9kRmQj1tGLvna8U The Beatles \n",
+ "186 3EbGioQyKyf4dycuiPOg3k The Beatles \n",
+ "16 79QDgDoBbS7pCrOjIH7ByA The Beatles \n",
+ "53 4311wT21Et0q3vepFwXjTu The Beatles \n",
+ "148 3QbhVaulXxTyuAxHY3Pa5N The Beatles \n",
+ "195 3Aqo28W4LLAolYpN3duVJl The Beatles \n",
+ "92 3OSi8ehmSWLTD5KatlzX8r The Beatles \n",
+ "134 3wAOX1N5M0ta3QNsokmhJV The Beatles \n",
+ "\n",
+ " name neg neutral \\\n",
+ "88 I'm So Tired - Remastered 2009 0.892489 0.146302 \n",
+ "62 I Want You (She's So Heavy) - Remastered 2009 0.882642 0.091819 \n",
+ "107 Revolution 9 - Remastered 2009 0.873285 0.172322 \n",
+ "186 Everybody's Trying To Be My Baby - Remastered ... 0.866985 0.914332 \n",
+ "16 Everybody’s Trying To Be My Baby - Live / Bonu... 0.866985 0.914332 \n",
+ "53 One After 909 - Remastered 2009 0.865737 0.158470 \n",
+ "148 You Won't See Me - Remastered 2009 0.864585 0.247226 \n",
+ "195 I'll Cry Instead - Remastered 2009 0.863772 0.160516 \n",
+ "92 Don't Pass Me By - Remastered 2009 0.857831 0.120676 \n",
+ "134 I'm Only Sleeping - Remastered 2009 0.857651 0.269800 \n",
+ "\n",
+ " pos valence \n",
+ "88 0.107511 0.6300 \n",
+ "62 0.117358 0.4160 \n",
+ "107 0.126715 0.0963 \n",
+ "186 0.133015 0.9370 \n",
+ "16 0.133015 0.6390 \n",
+ "53 0.134263 0.9040 \n",
+ "148 0.135415 0.4620 \n",
+ "195 0.136228 0.9610 \n",
+ "92 0.142169 0.9480 \n",
+ "134 0.142349 0.7000 "
+ ]
+ },
+ "execution_count": 90,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pipeline = [\n",
+ " {'$match': {'lyrics': {'$exists': True}, 'sentiment': {'$exists': True}, 'valence': {'$exists': True},\n",
+ " 'artist_id': beatles_id}},\n",
+ " {'$project': {'artist_name': '$artist_name',\n",
+ " 'name': '$name',\n",
+ " 'valence': '$valence',\n",
+ " 'neg': '$sentiment.probability.neg',\n",
+ " 'neutral': '$sentiment.probability.neutral',\n",
+ " 'pos': '$sentiment.probability.pos'}}\n",
+ "]\n",
+ "beatles_df = pd.DataFrame(list(tracks.aggregate(pipeline)))\n",
+ "beatles_df.sort_values('neg', ascending=False).head(10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 91,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>name</th>\n",
+ " <th>neg</th>\n",
+ " <th>neutral</th>\n",
+ " <th>pos</th>\n",
+ " <th>valence</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>101</th>\n",
+ " <td>11qDTSr3Dj4TkPnBcIOqEJ</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Vegetable</td>\n",
+ " <td>0.883291</td>\n",
+ " <td>0.170371</td>\n",
+ " <td>0.116709</td>\n",
+ " <td>0.399</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>49</th>\n",
+ " <td>38WL6GlG9NHFiQS6JxV84r</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Myxomatosis</td>\n",
+ " <td>0.864921</td>\n",
+ " <td>0.261355</td>\n",
+ " <td>0.135079</td>\n",
+ " <td>0.560</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>97</th>\n",
+ " <td>2zYmvi3w2T8a9Ckrv21bvW</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Stop Whispering</td>\n",
+ " <td>0.855982</td>\n",
+ " <td>0.188600</td>\n",
+ " <td>0.144018</td>\n",
+ " <td>0.279</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>34</th>\n",
+ " <td>1w8QCSDH4QobcQeT4uMKLm</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>4 Minute Warning</td>\n",
+ " <td>0.854820</td>\n",
+ " <td>0.516574</td>\n",
+ " <td>0.145180</td>\n",
+ " <td>0.219</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>83</th>\n",
+ " <td>3aDUSpF3LexOr1lFKvPV2h</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>The Bends</td>\n",
+ " <td>0.854244</td>\n",
+ " <td>0.533823</td>\n",
+ " <td>0.145756</td>\n",
+ " <td>0.315</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>103</th>\n",
+ " <td>48IEDejXX5LH8TAC3VIGpc</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>I Can't</td>\n",
+ " <td>0.849730</td>\n",
+ " <td>0.265375</td>\n",
+ " <td>0.150270</td>\n",
+ " <td>0.269</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>75</th>\n",
+ " <td>3SVAN3BRByDmHOhKyIDxfC</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Karma Police</td>\n",
+ " <td>0.846129</td>\n",
+ " <td>0.100438</td>\n",
+ " <td>0.153871</td>\n",
+ " <td>0.311</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>89</th>\n",
+ " <td>4dPKQxaraW6CG1rTBzV6DW</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>My Iron Lung</td>\n",
+ " <td>0.845080</td>\n",
+ " <td>0.190863</td>\n",
+ " <td>0.154920</td>\n",
+ " <td>0.643</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>24</th>\n",
+ " <td>5SdmtFbNOD7Qej6jFCHkOM</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Faust Arp</td>\n",
+ " <td>0.838532</td>\n",
+ " <td>0.167778</td>\n",
+ " <td>0.161468</td>\n",
+ " <td>0.224</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>46</th>\n",
+ " <td>77SPrxY5gn6VPrKPGrfLnM</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>There, There</td>\n",
+ " <td>0.835541</td>\n",
+ " <td>0.135951</td>\n",
+ " <td>0.164459</td>\n",
+ " <td>0.726</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name name neg neutral \\\n",
+ "101 11qDTSr3Dj4TkPnBcIOqEJ Radiohead Vegetable 0.883291 0.170371 \n",
+ "49 38WL6GlG9NHFiQS6JxV84r Radiohead Myxomatosis 0.864921 0.261355 \n",
+ "97 2zYmvi3w2T8a9Ckrv21bvW Radiohead Stop Whispering 0.855982 0.188600 \n",
+ "34 1w8QCSDH4QobcQeT4uMKLm Radiohead 4 Minute Warning 0.854820 0.516574 \n",
+ "83 3aDUSpF3LexOr1lFKvPV2h Radiohead The Bends 0.854244 0.533823 \n",
+ "103 48IEDejXX5LH8TAC3VIGpc Radiohead I Can't 0.849730 0.265375 \n",
+ "75 3SVAN3BRByDmHOhKyIDxfC Radiohead Karma Police 0.846129 0.100438 \n",
+ "89 4dPKQxaraW6CG1rTBzV6DW Radiohead My Iron Lung 0.845080 0.190863 \n",
+ "24 5SdmtFbNOD7Qej6jFCHkOM Radiohead Faust Arp 0.838532 0.167778 \n",
+ "46 77SPrxY5gn6VPrKPGrfLnM Radiohead There, There 0.835541 0.135951 \n",
+ "\n",
+ " pos valence \n",
+ "101 0.116709 0.399 \n",
+ "49 0.135079 0.560 \n",
+ "97 0.144018 0.279 \n",
+ "34 0.145180 0.219 \n",
+ "83 0.145756 0.315 \n",
+ "103 0.150270 0.269 \n",
+ "75 0.153871 0.311 \n",
+ "89 0.154920 0.643 \n",
+ "24 0.161468 0.224 \n",
+ "46 0.164459 0.726 "
+ ]
+ },
+ "execution_count": 91,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pipeline = [\n",
+ " {'$match': {'lyrics': {'$exists': True}, 'sentiment': {'$exists': True}, 'valence': {'$exists': True},\n",
+ " 'artist_id': radiohead_id}},\n",
+ " {'$project': {'artist_name': '$artist_name',\n",
+ " 'name': '$name',\n",
+ " 'valence': '$valence',\n",
+ " 'neg': '$sentiment.probability.neg',\n",
+ " 'neutral': '$sentiment.probability.neutral',\n",
+ " 'pos': '$sentiment.probability.pos'}}\n",
+ "]\n",
+ "radiohead_df = pd.DataFrame(list(tracks.aggregate(pipeline)))\n",
+ "radiohead_df.sort_values('neg', ascending=False).head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Plot the valence/negativity scatter plot, using blue for The Beatles and red for Radiohead.\n",
+ "\n",
+ "If valence and negativity are correlated, I'd expect to see a trend from high negativity/low valence to low negativity/high valence."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 92,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622ac3f978>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(beatles_df['valence'], beatles_df['neg'], color='blue')\n",
+ "plt.scatter(radiohead_df['valence'], radiohead_df['neg'], color='red')\n",
+ "plt.xlabel('Valence')\n",
+ "plt.ylabel('Sentiment negativity')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Neutrality, I think, is to do with the confidence in the classification."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 93,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622ac00198>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(beatles_df['neutral'], beatles_df['neg'], color='blue')\n",
+ "plt.scatter(radiohead_df['neutral'], radiohead_df['neg'], color='red')\n",
+ "plt.xlabel('Sentiment neutrality')\n",
+ "plt.ylabel('Sentiment negativity')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "This plot shows that most songs have a low neutrality, so express a clear sentiment in the lyrics. Let's plot the distribution of \"neutral\" scores to highlight this."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 95,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "<matplotlib.axes._subplots.AxesSubplot at 0x7f622ae7f978>"
+ ]
+ },
+ "execution_count": 95,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\nk/SS1tcDkh7t4vq6xt03SHpigV3OlvTN1r4/lrTCzI5f7H47PfDnehPW/kNsZh93f0HSpJkd0+F1\n9UKRLGa7QNIPOrqi3lk0i9Y/UVe6+w3dXFgPFHlc/LqkU8xsg5n9yMze2bXVdVeRLD4v6YNm9oik\n6yV9oktry83+WT2qAheInf60zCJvwtp/H5tjn35Q+A1pZvYBSW/UVMXTjxbMwsxM0pcknb/IMf2g\nyONiuaZqnd+RNCjpP83sddNX/H2kSBbvl3SZu3+p9Z6fyyW9ruMry0/heTJbp6/wt2rqATptpaY+\nUG22RySdKM28hv8l7r7QP2WWqiJZyMzOkHSRpHe3/lnbjxbL4ihN/SVumNlDkk6XdE2fPnFb5HGx\nVdI17r7P3Zuaep/Lq7uzvK4qksUFkr4nSe6+UdKhZvbS7iwvK1vVmpstc86T/XV64P9U0slmdpKZ\nHSLpfZKu3W+f6xRXcudJuqXDa+qVRbMwszdI+rqk97j7zh6ssVsWzMLdn3T349z9Ve7+q5p6PuPd\n7n5Hj9bbSUX+jlwt6e2S1Bpur5b0866usjuKZPGwpDMkycxOlfQrffychmn+f9leK+lD0synG0y6\n+47F7rCjlY7P8yYsM/u8pJ+6+/WSLpX0L2a2RdJOTf1P7jsFs/hbSUdIurJVazzs7uk/47bHCmbx\nokPUp5VOkSzc/UYz+30zu1vS85I+24//Ci74uPispH80s09r6gnc8+e/x6XLzL4tabWkY81sXNLF\nkg7R1MfUfMPdbzCzs8zsQUl7JH240P22XtYDAOhz/BJzAKgIBj4AVAQDHwAqgoEPABXBwAeAimDg\nA0BFMPABoCIY+ABQEf8PYDmDh24027cAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622b052438>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "beatles_df['neutral'].hist(alpha=0.5, color='blue')\n",
+ "radiohead_df['neutral'].hist(alpha=0.5, color='red')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Gloom index<a name=\"gloomindex\"></a>\n",
+ "Let's recreate the \"gloom index\" idea from the original post and see what it tells us. Bear in mind that I'm using the sentiment negativity score, not the fraction of \"sad\" words.\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 97,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>gloom</th>\n",
+ " <th>lyrical_density</th>\n",
+ " <th>name</th>\n",
+ " <th>neg</th>\n",
+ " <th>valence</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>279</th>\n",
+ " <td>66cuLvkHsW7dNkfNk6gQP9</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>1.505262</td>\n",
+ " <td>1.991725</td>\n",
+ " <td>A Wolf At the Door</td>\n",
+ " <td>0.793363</td>\n",
+ " <td>0.3630</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>5</th>\n",
+ " <td>0GRplBEB2FWCKutwMmS6nY</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.475037</td>\n",
+ " <td>1.853118</td>\n",
+ " <td>Ticket To Ride - Live / Remastered</td>\n",
+ " <td>0.825439</td>\n",
+ " <td>0.4050</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>252</th>\n",
+ " <td>5SdmtFbNOD7Qej6jFCHkOM</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>1.398920</td>\n",
+ " <td>1.411166</td>\n",
+ " <td>Faust Arp</td>\n",
+ " <td>0.838532</td>\n",
+ " <td>0.2240</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>89</th>\n",
+ " <td>3VgxeWOGdUYvtX1j8C9VyV</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.393697</td>\n",
+ " <td>1.708599</td>\n",
+ " <td>I'm So Tired - Remastered 2009</td>\n",
+ " <td>0.892489</td>\n",
+ " <td>0.6300</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>108</th>\n",
+ " <td>6ZrPbHp9kRmQj1tGLvna8U</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.270327</td>\n",
+ " <td>0.874479</td>\n",
+ " <td>Revolution 9 - Remastered 2009</td>\n",
+ " <td>0.873285</td>\n",
+ " <td>0.0963</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>74</th>\n",
+ " <td>5H9q6ctIlamkqukdTrNt3k</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.261539</td>\n",
+ " <td>2.616693</td>\n",
+ " <td>Her Majesty - Remastered 2009</td>\n",
+ " <td>0.556608</td>\n",
+ " <td>0.4900</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>311</th>\n",
+ " <td>3aDUSpF3LexOr1lFKvPV2h</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>1.239768</td>\n",
+ " <td>1.100731</td>\n",
+ " <td>The Bends</td>\n",
+ " <td>0.854244</td>\n",
+ " <td>0.3150</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>24</th>\n",
+ " <td>0mNQUZEATk2uItMUtiLWK5</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.213645</td>\n",
+ " <td>1.615224</td>\n",
+ " <td>A Hard Day's Night - Remastered 2015</td>\n",
+ " <td>0.833309</td>\n",
+ " <td>0.7520</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>112</th>\n",
+ " <td>0ttMfoND7IQqFSMVOPkELC</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.212148</td>\n",
+ " <td>0.799772</td>\n",
+ " <td>Blue Jay Way - Remastered 2009</td>\n",
+ " <td>0.812490</td>\n",
+ " <td>0.0380</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>161</th>\n",
+ " <td>5ou2BiQ9FxIYkxsYvYHpAT</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.210378</td>\n",
+ " <td>1.648037</td>\n",
+ " <td>Help! - Remastered 2009</td>\n",
+ " <td>0.823915</td>\n",
+ " <td>0.7610</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name gloom lyrical_density \\\n",
+ "279 66cuLvkHsW7dNkfNk6gQP9 Radiohead 1.505262 1.991725 \n",
+ "5 0GRplBEB2FWCKutwMmS6nY The Beatles 1.475037 1.853118 \n",
+ "252 5SdmtFbNOD7Qej6jFCHkOM Radiohead 1.398920 1.411166 \n",
+ "89 3VgxeWOGdUYvtX1j8C9VyV The Beatles 1.393697 1.708599 \n",
+ "108 6ZrPbHp9kRmQj1tGLvna8U The Beatles 1.270327 0.874479 \n",
+ "74 5H9q6ctIlamkqukdTrNt3k The Beatles 1.261539 2.616693 \n",
+ "311 3aDUSpF3LexOr1lFKvPV2h Radiohead 1.239768 1.100731 \n",
+ "24 0mNQUZEATk2uItMUtiLWK5 The Beatles 1.213645 1.615224 \n",
+ "112 0ttMfoND7IQqFSMVOPkELC The Beatles 1.212148 0.799772 \n",
+ "161 5ou2BiQ9FxIYkxsYvYHpAT The Beatles 1.210378 1.648037 \n",
+ "\n",
+ " name neg valence \n",
+ "279 A Wolf At the Door 0.793363 0.3630 \n",
+ "5 Ticket To Ride - Live / Remastered 0.825439 0.4050 \n",
+ "252 Faust Arp 0.838532 0.2240 \n",
+ "89 I'm So Tired - Remastered 2009 0.892489 0.6300 \n",
+ "108 Revolution 9 - Remastered 2009 0.873285 0.0963 \n",
+ "74 Her Majesty - Remastered 2009 0.556608 0.4900 \n",
+ "311 The Bends 0.854244 0.3150 \n",
+ "24 A Hard Day's Night - Remastered 2015 0.833309 0.7520 \n",
+ "112 Blue Jay Way - Remastered 2009 0.812490 0.0380 \n",
+ "161 Help! - Remastered 2009 0.823915 0.7610 "
+ ]
+ },
+ "execution_count": 97,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pipeline = [\n",
+ " {'$match': {'lyrics': {'$exists': True}, 'sentiment': {'$exists': True}, 'valence': {'$exists': True}}},\n",
+ " {'$project': {'artist_name': '$artist_name',\n",
+ " 'name': '$name',\n",
+ " 'valence': '$valence',\n",
+ " 'neg': '$sentiment.probability.neg',\n",
+ " 'lyrical_density': '$lyrical_density',\n",
+ " 'gloom': {'$divide': [{'$add': [{'$subtract': [1, '$valence']},\n",
+ " {'$multiply': ['$sentiment.probability.neg', \n",
+ " {'$add': ['$lyrical_density', 1]}]}]}, \n",
+ " 2]}}}]\n",
+ "results = pd.DataFrame(list(tracks.aggregate(pipeline)))\n",
+ "results.sort_values('gloom', ascending=False).head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Interestingly, the gloomiest songs seem pretty evenly spread between Radiohead and The Beatles."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 471,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>gloom</th>\n",
+ " <th>lyrical_density</th>\n",
+ " <th>name</th>\n",
+ " <th>neg</th>\n",
+ " <th>valence</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>61</th>\n",
+ " <td>66cuLvkHsW7dNkfNk6gQP9</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>1.505262</td>\n",
+ " <td>1.991725</td>\n",
+ " <td>A Wolf At the Door</td>\n",
+ " <td>0.793363</td>\n",
+ " <td>0.3630</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>43</th>\n",
+ " <td>5SdmtFbNOD7Qej6jFCHkOM</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>1.398920</td>\n",
+ " <td>1.411166</td>\n",
+ " <td>Faust Arp</td>\n",
+ " <td>0.838532</td>\n",
+ " <td>0.2240</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>9</th>\n",
+ " <td>3aDUSpF3LexOr1lFKvPV2h</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>1.239768</td>\n",
+ " <td>1.100731</td>\n",
+ " <td>The Bends</td>\n",
+ " <td>0.854244</td>\n",
+ " <td>0.3150</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>34</th>\n",
+ " <td>0eZN5WsQfmNFICHuw59Zfz</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>1.150902</td>\n",
+ " <td>0.705463</td>\n",
+ " <td>Glass Eyes</td>\n",
+ " <td>0.800195</td>\n",
+ " <td>0.0629</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>20</th>\n",
+ " <td>3ovbSnT5NNhl1gzMcw1NRZ</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>1.142115</td>\n",
+ " <td>1.151468</td>\n",
+ " <td>Thinking About You</td>\n",
+ " <td>0.791660</td>\n",
+ " <td>0.4190</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>11</th>\n",
+ " <td>045sp2JToyTaaKyXkGejPy</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>1.090813</td>\n",
+ " <td>0.581341</td>\n",
+ " <td>Fake Plastic Trees</td>\n",
+ " <td>0.827542</td>\n",
+ " <td>0.1270</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>24</th>\n",
+ " <td>4D6ZExVvYLZxhcAvifX5px</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>1.074047</td>\n",
+ " <td>0.749795</td>\n",
+ " <td>Prove Yourself</td>\n",
+ " <td>0.815006</td>\n",
+ " <td>0.2780</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>13</th>\n",
+ " <td>4SE81CrzH0qPA8KHqM9Syz</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>1.064914</td>\n",
+ " <td>0.856048</td>\n",
+ " <td>Just</td>\n",
+ " <td>0.809154</td>\n",
+ " <td>0.3720</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>4aOAzvRdOsZSwZIgwcdeL0</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>1.063868</td>\n",
+ " <td>0.524102</td>\n",
+ " <td>Let Down</td>\n",
+ " <td>0.825887</td>\n",
+ " <td>0.1310</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>23</th>\n",
+ " <td>11qDTSr3Dj4TkPnBcIOqEJ</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>1.056187</td>\n",
+ " <td>0.711071</td>\n",
+ " <td>Vegetable</td>\n",
+ " <td>0.883291</td>\n",
+ " <td>0.3990</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name gloom lyrical_density \\\n",
+ "61 66cuLvkHsW7dNkfNk6gQP9 Radiohead 1.505262 1.991725 \n",
+ "43 5SdmtFbNOD7Qej6jFCHkOM Radiohead 1.398920 1.411166 \n",
+ "9 3aDUSpF3LexOr1lFKvPV2h Radiohead 1.239768 1.100731 \n",
+ "34 0eZN5WsQfmNFICHuw59Zfz Radiohead 1.150902 0.705463 \n",
+ "20 3ovbSnT5NNhl1gzMcw1NRZ Radiohead 1.142115 1.151468 \n",
+ "11 045sp2JToyTaaKyXkGejPy Radiohead 1.090813 0.581341 \n",
+ "24 4D6ZExVvYLZxhcAvifX5px Radiohead 1.074047 0.749795 \n",
+ "13 4SE81CrzH0qPA8KHqM9Syz Radiohead 1.064914 0.856048 \n",
+ "4 4aOAzvRdOsZSwZIgwcdeL0 Radiohead 1.063868 0.524102 \n",
+ "23 11qDTSr3Dj4TkPnBcIOqEJ Radiohead 1.056187 0.711071 \n",
+ "\n",
+ " name neg valence \n",
+ "61 A Wolf At the Door 0.793363 0.3630 \n",
+ "43 Faust Arp 0.838532 0.2240 \n",
+ "9 The Bends 0.854244 0.3150 \n",
+ "34 Glass Eyes 0.800195 0.0629 \n",
+ "20 Thinking About You 0.791660 0.4190 \n",
+ "11 Fake Plastic Trees 0.827542 0.1270 \n",
+ "24 Prove Yourself 0.815006 0.2780 \n",
+ "13 Just 0.809154 0.3720 \n",
+ "4 Let Down 0.825887 0.1310 \n",
+ "23 Vegetable 0.883291 0.3990 "
+ ]
+ },
+ "execution_count": 471,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pipeline = [\n",
+ " {'$match': {'lyrics': {'$exists': True}, 'sentiment': {'$exists': True}, 'valence': {'$exists': True},\n",
+ " 'artist_id': radiohead_id}},\n",
+ " {'$project': {'artist_name': '$artist_name',\n",
+ " 'name': '$name',\n",
+ " 'valence': '$valence',\n",
+ " 'neg': '$sentiment.probability.neg',\n",
+ " 'lyrical_density': '$lyrical_density',\n",
+ " 'gloom': {'$divide': [{'$add': [{'$subtract': [1, '$valence']},\n",
+ " {'$multiply': ['$sentiment.probability.neg', \n",
+ " {'$add': ['$lyrical_density', 1]}]}]}, \n",
+ " 2]}}}]\n",
+ "results = pd.DataFrame(list(tracks.aggregate(pipeline)))\n",
+ "results.sort_values('gloom', ascending=False).head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "These, in theory, are the most depressing Radiohead songs. For information, the [fitteR happieR songs](http://rcharlie.com/2017-02-16-fitteR-happieR/) were:\n",
+ "\n",
+ " | gloom_index| track_name\n",
+ "--|------------|--------------------------|\n",
+ "1 | 1.00 | True Love Waits\n",
+ "2 | 6.46 | Give Up The Ghost\n",
+ "3 | 9.35 | Motion Picture Soundtrack\n",
+ "4 | 13.70 | Let Down\n",
+ "5 | 14.15 | Pyramid Song\n",
+ "6 | 14.57 | Exit Music (For a Film)\n",
+ "7 | 15.29 | Dollars & Cents\n",
+ "8 | 15.69 | High And Dry\n",
+ "9 | 15.80 | Tinker Tailor Soldier ...\n",
+ "10| 16.03 | Videotape\n",
+ "\n",
+ "...which has only one song in common, \"Let Down\". I'm not convinced by this analysis.\n",
+ "\n",
+ "What does the same analysis say for The Beatles?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 98,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>gloom</th>\n",
+ " <th>lyrical_density</th>\n",
+ " <th>name</th>\n",
+ " <th>neg</th>\n",
+ " <th>valence</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>0GRplBEB2FWCKutwMmS6nY</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.475037</td>\n",
+ " <td>1.853118</td>\n",
+ " <td>Ticket To Ride - Live / Remastered</td>\n",
+ " <td>0.825439</td>\n",
+ " <td>0.4050</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>88</th>\n",
+ " <td>3VgxeWOGdUYvtX1j8C9VyV</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.393697</td>\n",
+ " <td>1.708599</td>\n",
+ " <td>I'm So Tired - Remastered 2009</td>\n",
+ " <td>0.892489</td>\n",
+ " <td>0.6300</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>107</th>\n",
+ " <td>6ZrPbHp9kRmQj1tGLvna8U</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.270327</td>\n",
+ " <td>0.874479</td>\n",
+ " <td>Revolution 9 - Remastered 2009</td>\n",
+ " <td>0.873285</td>\n",
+ " <td>0.0963</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>73</th>\n",
+ " <td>5H9q6ctIlamkqukdTrNt3k</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.261539</td>\n",
+ " <td>2.616693</td>\n",
+ " <td>Her Majesty - Remastered 2009</td>\n",
+ " <td>0.556608</td>\n",
+ " <td>0.4900</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>23</th>\n",
+ " <td>0mNQUZEATk2uItMUtiLWK5</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.213645</td>\n",
+ " <td>1.615224</td>\n",
+ " <td>A Hard Day's Night - Remastered 2015</td>\n",
+ " <td>0.833309</td>\n",
+ " <td>0.7520</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>111</th>\n",
+ " <td>0ttMfoND7IQqFSMVOPkELC</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.212148</td>\n",
+ " <td>0.799772</td>\n",
+ " <td>Blue Jay Way - Remastered 2009</td>\n",
+ " <td>0.812490</td>\n",
+ " <td>0.0380</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>160</th>\n",
+ " <td>5ou2BiQ9FxIYkxsYvYHpAT</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.210378</td>\n",
+ " <td>1.648037</td>\n",
+ " <td>Help! - Remastered 2009</td>\n",
+ " <td>0.823915</td>\n",
+ " <td>0.7610</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>10</th>\n",
+ " <td>1alcPfZWUHh01l4Fnoo5Jt</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.203416</td>\n",
+ " <td>1.332561</td>\n",
+ " <td>Help! - Live / Remastered</td>\n",
+ " <td>0.823915</td>\n",
+ " <td>0.5150</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>220</th>\n",
+ " <td>2Iccm3cKBQHWt5yk0yX9nh</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.200158</td>\n",
+ " <td>1.530785</td>\n",
+ " <td>Please Please Me - Remastered 2009</td>\n",
+ " <td>0.833068</td>\n",
+ " <td>0.7080</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>27</th>\n",
+ " <td>1dfuJYDSIc41cw5RPsaCF1</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.187438</td>\n",
+ " <td>1.651824</td>\n",
+ " <td>Help! - Remastered 2015</td>\n",
+ " <td>0.823915</td>\n",
+ " <td>0.8100</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name gloom lyrical_density \\\n",
+ "4 0GRplBEB2FWCKutwMmS6nY The Beatles 1.475037 1.853118 \n",
+ "88 3VgxeWOGdUYvtX1j8C9VyV The Beatles 1.393697 1.708599 \n",
+ "107 6ZrPbHp9kRmQj1tGLvna8U The Beatles 1.270327 0.874479 \n",
+ "73 5H9q6ctIlamkqukdTrNt3k The Beatles 1.261539 2.616693 \n",
+ "23 0mNQUZEATk2uItMUtiLWK5 The Beatles 1.213645 1.615224 \n",
+ "111 0ttMfoND7IQqFSMVOPkELC The Beatles 1.212148 0.799772 \n",
+ "160 5ou2BiQ9FxIYkxsYvYHpAT The Beatles 1.210378 1.648037 \n",
+ "10 1alcPfZWUHh01l4Fnoo5Jt The Beatles 1.203416 1.332561 \n",
+ "220 2Iccm3cKBQHWt5yk0yX9nh The Beatles 1.200158 1.530785 \n",
+ "27 1dfuJYDSIc41cw5RPsaCF1 The Beatles 1.187438 1.651824 \n",
+ "\n",
+ " name neg valence \n",
+ "4 Ticket To Ride - Live / Remastered 0.825439 0.4050 \n",
+ "88 I'm So Tired - Remastered 2009 0.892489 0.6300 \n",
+ "107 Revolution 9 - Remastered 2009 0.873285 0.0963 \n",
+ "73 Her Majesty - Remastered 2009 0.556608 0.4900 \n",
+ "23 A Hard Day's Night - Remastered 2015 0.833309 0.7520 \n",
+ "111 Blue Jay Way - Remastered 2009 0.812490 0.0380 \n",
+ "160 Help! - Remastered 2009 0.823915 0.7610 \n",
+ "10 Help! - Live / Remastered 0.823915 0.5150 \n",
+ "220 Please Please Me - Remastered 2009 0.833068 0.7080 \n",
+ "27 Help! - Remastered 2015 0.823915 0.8100 "
+ ]
+ },
+ "execution_count": 98,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pipeline = [\n",
+ " {'$match': {'lyrics': {'$exists': True}, 'sentiment': {'$exists': True}, 'valence': {'$exists': True},\n",
+ " 'artist_id': beatles_id}},\n",
+ " {'$project': {'artist_name': '$artist_name',\n",
+ " 'name': '$name',\n",
+ " 'valence': '$valence',\n",
+ " 'neg': '$sentiment.probability.neg',\n",
+ " 'lyrical_density': '$lyrical_density',\n",
+ " 'gloom': {'$divide': [{'$add': [{'$subtract': [1, '$valence']},\n",
+ " {'$multiply': ['$sentiment.probability.neg', \n",
+ " {'$add': ['$lyrical_density', 1]}]}]}, \n",
+ " 2]}}}]\n",
+ "results = pd.DataFrame(list(tracks.aggregate(pipeline)))\n",
+ "results.sort_values('gloom', ascending=False).head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Revised gloom index<a name=\"revisedgloomindex\"></a>\n",
+ "I don't like the calculation for gloom index. If the point of \"lyrical density\" is to scale the gloom index between valence and sentiment, depending on how many words are in the song. Let's do that weighting properly.\n",
+ "\n",
+ "$$gloom = \\frac{(1 - normedLyricDensity)\\times(1 - valence) + normedLyricDensity \\times negativity }{2}$$\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 99,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>lyrical_density</th>\n",
+ " <th>name</th>\n",
+ " <th>neg</th>\n",
+ " <th>valence</th>\n",
+ " <th>scaled_ld</th>\n",
+ " <th>gloom</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>258</th>\n",
+ " <td>4gq2bc2770XvbJdEtfUbmw</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.201546</td>\n",
+ " <td>Go Slowly</td>\n",
+ " <td>0.723774</td>\n",
+ " <td>0.0453</td>\n",
+ " <td>0.039619</td>\n",
+ " <td>0.472775</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>309</th>\n",
+ " <td>75YUnz58ajMo2VIIuUFvOV</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.248061</td>\n",
+ " <td>The Tourist</td>\n",
+ " <td>0.667864</td>\n",
+ " <td>0.0400</td>\n",
+ " <td>0.056658</td>\n",
+ " <td>0.471724</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>246</th>\n",
+ " <td>01ZpFhrMMqKPVCwyqXneVp</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.218723</td>\n",
+ " <td>True Love Waits</td>\n",
+ " <td>0.532206</td>\n",
+ " <td>0.0378</td>\n",
+ " <td>0.045911</td>\n",
+ " <td>0.471229</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>268</th>\n",
+ " <td>5olWalQH1oVza5D6xJg4oX</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.216752</td>\n",
+ " <td>Sail To The Moon</td>\n",
+ " <td>0.605798</td>\n",
+ " <td>0.0458</td>\n",
+ " <td>0.045189</td>\n",
+ " <td>0.469228</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>272</th>\n",
+ " <td>53RYTfkLiyZuUZHwJC3Wmm</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.276367</td>\n",
+ " <td>We Suck Young Blood</td>\n",
+ " <td>0.535358</td>\n",
+ " <td>0.0378</td>\n",
+ " <td>0.067027</td>\n",
+ " <td>0.466795</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>205</th>\n",
+ " <td>4sLGaMl33I6mcsk7u4xHAU</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.146307</td>\n",
+ " <td>Codex</td>\n",
+ " <td>0.637942</td>\n",
+ " <td>0.0629</td>\n",
+ " <td>0.019385</td>\n",
+ " <td>0.465650</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>112</th>\n",
+ " <td>0ttMfoND7IQqFSMVOPkELC</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.799772</td>\n",
+ " <td>Blue Jay Way - Remastered 2009</td>\n",
+ " <td>0.812490</td>\n",
+ " <td>0.0380</td>\n",
+ " <td>0.258755</td>\n",
+ " <td>0.461657</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>297</th>\n",
+ " <td>0COiZ7ncho2yi4HotbzgPv</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.349157</td>\n",
+ " <td>Motion Picture Soundtrack</td>\n",
+ " <td>0.576808</td>\n",
+ " <td>0.0425</td>\n",
+ " <td>0.093690</td>\n",
+ " <td>0.460916</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>256</th>\n",
+ " <td>3uxhyRdWVXp7GQvERQl6fA</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.382643</td>\n",
+ " <td>Videotape</td>\n",
+ " <td>0.652962</td>\n",
+ " <td>0.0468</td>\n",
+ " <td>0.105957</td>\n",
+ " <td>0.460694</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>318</th>\n",
+ " <td>7wB2VenWR6rchtLwawreIg</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.359311</td>\n",
+ " <td>Bullet Proof ... I Wish I Was</td>\n",
+ " <td>0.804636</td>\n",
+ " <td>0.0781</td>\n",
+ " <td>0.097410</td>\n",
+ " <td>0.455239</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name lyrical_density \\\n",
+ "258 4gq2bc2770XvbJdEtfUbmw Radiohead 0.201546 \n",
+ "309 75YUnz58ajMo2VIIuUFvOV Radiohead 0.248061 \n",
+ "246 01ZpFhrMMqKPVCwyqXneVp Radiohead 0.218723 \n",
+ "268 5olWalQH1oVza5D6xJg4oX Radiohead 0.216752 \n",
+ "272 53RYTfkLiyZuUZHwJC3Wmm Radiohead 0.276367 \n",
+ "205 4sLGaMl33I6mcsk7u4xHAU Radiohead 0.146307 \n",
+ "112 0ttMfoND7IQqFSMVOPkELC The Beatles 0.799772 \n",
+ "297 0COiZ7ncho2yi4HotbzgPv Radiohead 0.349157 \n",
+ "256 3uxhyRdWVXp7GQvERQl6fA Radiohead 0.382643 \n",
+ "318 7wB2VenWR6rchtLwawreIg Radiohead 0.359311 \n",
+ "\n",
+ " name neg valence scaled_ld gloom \n",
+ "258 Go Slowly 0.723774 0.0453 0.039619 0.472775 \n",
+ "309 The Tourist 0.667864 0.0400 0.056658 0.471724 \n",
+ "246 True Love Waits 0.532206 0.0378 0.045911 0.471229 \n",
+ "268 Sail To The Moon 0.605798 0.0458 0.045189 0.469228 \n",
+ "272 We Suck Young Blood 0.535358 0.0378 0.067027 0.466795 \n",
+ "205 Codex 0.637942 0.0629 0.019385 0.465650 \n",
+ "112 Blue Jay Way - Remastered 2009 0.812490 0.0380 0.258755 0.461657 \n",
+ "297 Motion Picture Soundtrack 0.576808 0.0425 0.093690 0.460916 \n",
+ "256 Videotape 0.652962 0.0468 0.105957 0.460694 \n",
+ "318 Bullet Proof ... I Wish I Was 0.804636 0.0781 0.097410 0.455239 "
+ ]
+ },
+ "execution_count": 99,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pipeline = [\n",
+ " {'$match': {'lyrics': {'$exists': True}, 'sentiment': {'$exists': True}, 'valence': {'$exists': True}}},\n",
+ " {'$project': {'artist_name': '$artist_name',\n",
+ " 'name': '$name',\n",
+ " 'valence': '$valence',\n",
+ " 'neg': '$sentiment.probability.neg',\n",
+ " 'lyrical_density': '$lyrical_density'}}]\n",
+ "results = pd.DataFrame(list(tracks.aggregate(pipeline)))\n",
+ "\n",
+ "# Use pandas to scale the lyrical density values to the range 0 -1\n",
+ "results['scaled_ld'] = (results['lyrical_density'] - results['lyrical_density'].min()) / \\\n",
+ " (results['lyrical_density'].max() - results['lyrical_density'].min())\n",
+ "\n",
+ "# Define a Python function to calculate the revised gloom index\n",
+ "def gloom(row):\n",
+ " w_valence = (1 - row['valence']) * (1 - row['scaled_ld'])\n",
+ " w_neg = row['neg'] * row['scaled_ld']\n",
+ " return (w_valence + w_neg) / 2\n",
+ "\n",
+ "# Apply this function to create a new column\n",
+ "results['gloom'] = results.apply(gloom, axis=1)\n",
+ "\n",
+ "# Push the results back into the database\n",
+ "for row in results.itertuples():\n",
+ " tracks.update_one({'_id': row[1]}, {'$set': {'gloom': row.gloom}})\n",
+ "\n",
+ "results.sort_values('gloom', ascending=False).head(10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 100,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>lyrical_density</th>\n",
+ " <th>name</th>\n",
+ " <th>neg</th>\n",
+ " <th>valence</th>\n",
+ " <th>scaled_ld</th>\n",
+ " <th>gloom</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>258</th>\n",
+ " <td>4gq2bc2770XvbJdEtfUbmw</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.201546</td>\n",
+ " <td>Go Slowly</td>\n",
+ " <td>0.723774</td>\n",
+ " <td>0.0453</td>\n",
+ " <td>0.039619</td>\n",
+ " <td>0.472775</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>309</th>\n",
+ " <td>75YUnz58ajMo2VIIuUFvOV</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.248061</td>\n",
+ " <td>The Tourist</td>\n",
+ " <td>0.667864</td>\n",
+ " <td>0.0400</td>\n",
+ " <td>0.056658</td>\n",
+ " <td>0.471724</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>246</th>\n",
+ " <td>01ZpFhrMMqKPVCwyqXneVp</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.218723</td>\n",
+ " <td>True Love Waits</td>\n",
+ " <td>0.532206</td>\n",
+ " <td>0.0378</td>\n",
+ " <td>0.045911</td>\n",
+ " <td>0.471229</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>268</th>\n",
+ " <td>5olWalQH1oVza5D6xJg4oX</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.216752</td>\n",
+ " <td>Sail To The Moon</td>\n",
+ " <td>0.605798</td>\n",
+ " <td>0.0458</td>\n",
+ " <td>0.045189</td>\n",
+ " <td>0.469228</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>272</th>\n",
+ " <td>53RYTfkLiyZuUZHwJC3Wmm</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.276367</td>\n",
+ " <td>We Suck Young Blood</td>\n",
+ " <td>0.535358</td>\n",
+ " <td>0.0378</td>\n",
+ " <td>0.067027</td>\n",
+ " <td>0.466795</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>205</th>\n",
+ " <td>4sLGaMl33I6mcsk7u4xHAU</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.146307</td>\n",
+ " <td>Codex</td>\n",
+ " <td>0.637942</td>\n",
+ " <td>0.0629</td>\n",
+ " <td>0.019385</td>\n",
+ " <td>0.465650</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>297</th>\n",
+ " <td>0COiZ7ncho2yi4HotbzgPv</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.349157</td>\n",
+ " <td>Motion Picture Soundtrack</td>\n",
+ " <td>0.576808</td>\n",
+ " <td>0.0425</td>\n",
+ " <td>0.093690</td>\n",
+ " <td>0.460916</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>256</th>\n",
+ " <td>3uxhyRdWVXp7GQvERQl6fA</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.382643</td>\n",
+ " <td>Videotape</td>\n",
+ " <td>0.652962</td>\n",
+ " <td>0.0468</td>\n",
+ " <td>0.105957</td>\n",
+ " <td>0.460694</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>318</th>\n",
+ " <td>7wB2VenWR6rchtLwawreIg</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.359311</td>\n",
+ " <td>Bullet Proof ... I Wish I Was</td>\n",
+ " <td>0.804636</td>\n",
+ " <td>0.0781</td>\n",
+ " <td>0.097410</td>\n",
+ " <td>0.455239</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>289</th>\n",
+ " <td>5AiNZnMDCWwujIENPj9PV9</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.489208</td>\n",
+ " <td>Everything In Its Right Place</td>\n",
+ " <td>0.716829</td>\n",
+ " <td>0.0585</td>\n",
+ " <td>0.144992</td>\n",
+ " <td>0.454462</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name lyrical_density \\\n",
+ "258 4gq2bc2770XvbJdEtfUbmw Radiohead 0.201546 \n",
+ "309 75YUnz58ajMo2VIIuUFvOV Radiohead 0.248061 \n",
+ "246 01ZpFhrMMqKPVCwyqXneVp Radiohead 0.218723 \n",
+ "268 5olWalQH1oVza5D6xJg4oX Radiohead 0.216752 \n",
+ "272 53RYTfkLiyZuUZHwJC3Wmm Radiohead 0.276367 \n",
+ "205 4sLGaMl33I6mcsk7u4xHAU Radiohead 0.146307 \n",
+ "297 0COiZ7ncho2yi4HotbzgPv Radiohead 0.349157 \n",
+ "256 3uxhyRdWVXp7GQvERQl6fA Radiohead 0.382643 \n",
+ "318 7wB2VenWR6rchtLwawreIg Radiohead 0.359311 \n",
+ "289 5AiNZnMDCWwujIENPj9PV9 Radiohead 0.489208 \n",
+ "\n",
+ " name neg valence scaled_ld gloom \n",
+ "258 Go Slowly 0.723774 0.0453 0.039619 0.472775 \n",
+ "309 The Tourist 0.667864 0.0400 0.056658 0.471724 \n",
+ "246 True Love Waits 0.532206 0.0378 0.045911 0.471229 \n",
+ "268 Sail To The Moon 0.605798 0.0458 0.045189 0.469228 \n",
+ "272 We Suck Young Blood 0.535358 0.0378 0.067027 0.466795 \n",
+ "205 Codex 0.637942 0.0629 0.019385 0.465650 \n",
+ "297 Motion Picture Soundtrack 0.576808 0.0425 0.093690 0.460916 \n",
+ "256 Videotape 0.652962 0.0468 0.105957 0.460694 \n",
+ "318 Bullet Proof ... I Wish I Was 0.804636 0.0781 0.097410 0.455239 \n",
+ "289 Everything In Its Right Place 0.716829 0.0585 0.144992 0.454462 "
+ ]
+ },
+ "execution_count": 100,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "results[results['artist_name'] == 'Radiohead'].sort_values('gloom', ascending=False).head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "This still isn't the same as the original list, though there are now two songs in common!\n",
+ "\n",
+ "\n",
+ " | gloom_index | track_name\n",
+ "--|-------------|--------------------------\n",
+ "1 | 1.00 | True Love Waits\n",
+ "2 | 6.46 | Give Up The Ghost\n",
+ "3 | 9.35 | Motion Picture Soundtrack\n",
+ "4 | 13.70 | Let Down\n",
+ "5 | 14.15 | Pyramid Song\n",
+ "6 | 14.57 | Exit Music (For a Film)\n",
+ "7 | 15.29 | Dollars & Cents\n",
+ "8 | 15.69 | High And Dry\n",
+ "9 | 15.80 | Tinker Tailor Soldier ...\n",
+ "10| 16.03 | Videotape\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 101,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>lyrical_density</th>\n",
+ " <th>name</th>\n",
+ " <th>neg</th>\n",
+ " <th>valence</th>\n",
+ " <th>scaled_ld</th>\n",
+ " <th>gloom</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>112</th>\n",
+ " <td>0ttMfoND7IQqFSMVOPkELC</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.799772</td>\n",
+ " <td>Blue Jay Way - Remastered 2009</td>\n",
+ " <td>0.812490</td>\n",
+ " <td>0.0380</td>\n",
+ " <td>0.258755</td>\n",
+ " <td>0.461657</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>108</th>\n",
+ " <td>6ZrPbHp9kRmQj1tGLvna8U</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.874479</td>\n",
+ " <td>Revolution 9 - Remastered 2009</td>\n",
+ " <td>0.873285</td>\n",
+ " <td>0.0963</td>\n",
+ " <td>0.286121</td>\n",
+ " <td>0.447499</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>2ucFulEWapRAmTn7l6f5Q7</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.169898</td>\n",
+ " <td>Wild Honey Pie - Remastered 2009</td>\n",
+ " <td>0.391178</td>\n",
+ " <td>0.1530</td>\n",
+ " <td>0.028026</td>\n",
+ " <td>0.417113</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>132</th>\n",
+ " <td>3ZFBeIyP41HhnALjxWy1pR</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.628310</td>\n",
+ " <td>A Day In The Life - Remastered 2009</td>\n",
+ " <td>0.781296</td>\n",
+ " <td>0.1620</td>\n",
+ " <td>0.195947</td>\n",
+ " <td>0.413445</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>146</th>\n",
+ " <td>0agoaPIy92gPZ6zRhqXarE</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.634931</td>\n",
+ " <td>Tomorrow Never Knows - Remastered 2009</td>\n",
+ " <td>0.343599</td>\n",
+ " <td>0.0556</td>\n",
+ " <td>0.198372</td>\n",
+ " <td>0.412609</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>103</th>\n",
+ " <td>27YZJHyTTDIurMqDu1v2ef</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.429399</td>\n",
+ " <td>Long, Long, Long - Remastered 2009</td>\n",
+ " <td>0.524122</td>\n",
+ " <td>0.1350</td>\n",
+ " <td>0.123084</td>\n",
+ " <td>0.411522</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>65</th>\n",
+ " <td>4cLoL5KPfE1hAwfsO84FX7</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.325955</td>\n",
+ " <td>Because - Remastered 2009</td>\n",
+ " <td>0.466254</td>\n",
+ " <td>0.1620</td>\n",
+ " <td>0.085191</td>\n",
+ " <td>0.403165</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>66</th>\n",
+ " <td>71Ij3VBYQWMrng61Ae4tBu</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.592658</td>\n",
+ " <td>You Never Give Me Your Money - Remastered 2009</td>\n",
+ " <td>0.753448</td>\n",
+ " <td>0.2260</td>\n",
+ " <td>0.182887</td>\n",
+ " <td>0.385121</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>67</th>\n",
+ " <td>3jPXnX4SskFgAcC4YBKOwN</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.273472</td>\n",
+ " <td>Sun King - Remastered 2009</td>\n",
+ " <td>0.300809</td>\n",
+ " <td>0.1970</td>\n",
+ " <td>0.065966</td>\n",
+ " <td>0.384936</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>43</th>\n",
+ " <td>7iABnSNZciNepqGtjMQxxd</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.800176</td>\n",
+ " <td>Come Together - Remastered 2015</td>\n",
+ " <td>0.562552</td>\n",
+ " <td>0.1780</td>\n",
+ " <td>0.258903</td>\n",
+ " <td>0.377414</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name lyrical_density \\\n",
+ "112 0ttMfoND7IQqFSMVOPkELC The Beatles 0.799772 \n",
+ "108 6ZrPbHp9kRmQj1tGLvna8U The Beatles 0.874479 \n",
+ "0 2ucFulEWapRAmTn7l6f5Q7 The Beatles 0.169898 \n",
+ "132 3ZFBeIyP41HhnALjxWy1pR The Beatles 0.628310 \n",
+ "146 0agoaPIy92gPZ6zRhqXarE The Beatles 0.634931 \n",
+ "103 27YZJHyTTDIurMqDu1v2ef The Beatles 0.429399 \n",
+ "65 4cLoL5KPfE1hAwfsO84FX7 The Beatles 0.325955 \n",
+ "66 71Ij3VBYQWMrng61Ae4tBu The Beatles 0.592658 \n",
+ "67 3jPXnX4SskFgAcC4YBKOwN The Beatles 0.273472 \n",
+ "43 7iABnSNZciNepqGtjMQxxd The Beatles 0.800176 \n",
+ "\n",
+ " name neg valence \\\n",
+ "112 Blue Jay Way - Remastered 2009 0.812490 0.0380 \n",
+ "108 Revolution 9 - Remastered 2009 0.873285 0.0963 \n",
+ "0 Wild Honey Pie - Remastered 2009 0.391178 0.1530 \n",
+ "132 A Day In The Life - Remastered 2009 0.781296 0.1620 \n",
+ "146 Tomorrow Never Knows - Remastered 2009 0.343599 0.0556 \n",
+ "103 Long, Long, Long - Remastered 2009 0.524122 0.1350 \n",
+ "65 Because - Remastered 2009 0.466254 0.1620 \n",
+ "66 You Never Give Me Your Money - Remastered 2009 0.753448 0.2260 \n",
+ "67 Sun King - Remastered 2009 0.300809 0.1970 \n",
+ "43 Come Together - Remastered 2015 0.562552 0.1780 \n",
+ "\n",
+ " scaled_ld gloom \n",
+ "112 0.258755 0.461657 \n",
+ "108 0.286121 0.447499 \n",
+ "0 0.028026 0.417113 \n",
+ "132 0.195947 0.413445 \n",
+ "146 0.198372 0.412609 \n",
+ "103 0.123084 0.411522 \n",
+ "65 0.085191 0.403165 \n",
+ "66 0.182887 0.385121 \n",
+ "67 0.065966 0.384936 \n",
+ "43 0.258903 0.377414 "
+ ]
+ },
+ "execution_count": 101,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "results[results['artist_name'] == 'The Beatles'].sort_values('gloom', ascending=False).head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "I don't know the Radiohead corpus, but I know some Beatles songs. _Blue Jay Way_ is pretty sad, as is _A Day in the Life_. _Revolution 9_ and _Wild Honey Pie_ are just... odd, rather than sad. It's suspicious that some obviously sad Beatles songs are missing. What does this analysis think of unequivocally sad songs like _She's Leaving Home_, _Yesterday_, and _Eleanor Rigby_?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 102,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>lyrical_density</th>\n",
+ " <th>name</th>\n",
+ " <th>neg</th>\n",
+ " <th>valence</th>\n",
+ " <th>scaled_ld</th>\n",
+ " <th>gloom</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>29</th>\n",
+ " <td>63uskN0xLezVg4281wzeQn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.005426</td>\n",
+ " <td>Yesterday - Remastered 2015</td>\n",
+ " <td>0.852156</td>\n",
+ " <td>0.348</td>\n",
+ " <td>0.334088</td>\n",
+ " <td>0.359435</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>125</th>\n",
+ " <td>1Ipl1kvks5s6GKn6oqgzeY</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.064324</td>\n",
+ " <td>She's Leaving Home - Remastered 2009</td>\n",
+ " <td>0.764553</td>\n",
+ " <td>0.377</td>\n",
+ " <td>0.355663</td>\n",
+ " <td>0.336673</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>34</th>\n",
+ " <td>0TRkjwb4uY3CHb5zhr9bBd</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.628703</td>\n",
+ " <td>Eleanor Rigby - Remastered 2015</td>\n",
+ " <td>0.803232</td>\n",
+ " <td>0.845</td>\n",
+ " <td>0.562401</td>\n",
+ " <td>0.259783</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name lyrical_density \\\n",
+ "29 63uskN0xLezVg4281wzeQn The Beatles 1.005426 \n",
+ "125 1Ipl1kvks5s6GKn6oqgzeY The Beatles 1.064324 \n",
+ "34 0TRkjwb4uY3CHb5zhr9bBd The Beatles 1.628703 \n",
+ "\n",
+ " name neg valence scaled_ld \\\n",
+ "29 Yesterday - Remastered 2015 0.852156 0.348 0.334088 \n",
+ "125 She's Leaving Home - Remastered 2009 0.764553 0.377 0.355663 \n",
+ "34 Eleanor Rigby - Remastered 2015 0.803232 0.845 0.562401 \n",
+ "\n",
+ " gloom \n",
+ "29 0.359435 \n",
+ "125 0.336673 \n",
+ "34 0.259783 "
+ ]
+ },
+ "execution_count": 102,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "slh = tracks.find_one({'ctitle': 'shes leaving home'})['_id']\n",
+ "yd = tracks.find_one({'ctitle': 'yesterday'})['_id']\n",
+ "er = tracks.find_one({'ctitle': 'eleanor rigby'})['_id']\n",
+ "results[results['_id'].isin([slh, yd, er])].sort_values('gloom', ascending=False)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Glee index: anti-gloom<a name=\"gleeindex\"></a>\n",
+ "Rather than looking at the saddest songs, how about using the same data to find the happiest songs?\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 103,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>lyrical_density</th>\n",
+ " <th>name</th>\n",
+ " <th>neg</th>\n",
+ " <th>valence</th>\n",
+ " <th>scaled_ld</th>\n",
+ " <th>gloom</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>84</th>\n",
+ " <td>3fuEJBCK3kWnJHFTODR4cb</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.608806</td>\n",
+ " <td>Ob-La-Di, Ob-La-Da - Remastered 2009</td>\n",
+ " <td>0.080969</td>\n",
+ " <td>0.975</td>\n",
+ " <td>0.555112</td>\n",
+ " <td>0.028035</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>78</th>\n",
+ " <td>3TEbDhNDU4NDXq0h86nGZ7</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.008850</td>\n",
+ " <td>Hey Bulldog - Remastered 2009</td>\n",
+ " <td>0.239198</td>\n",
+ " <td>0.942</td>\n",
+ " <td>0.335342</td>\n",
+ " <td>0.059382</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>220</th>\n",
+ " <td>5VsIn7QQqcacePIb0vO0ow</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.465201</td>\n",
+ " <td>Not A Second Time - Remastered 2009</td>\n",
+ " <td>0.773805</td>\n",
+ " <td>0.961</td>\n",
+ " <td>0.136198</td>\n",
+ " <td>0.069540</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>97</th>\n",
+ " <td>4KIXWIzNcKzorNDgvMQwmD</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.631592</td>\n",
+ " <td>Birthday - Remastered 2009</td>\n",
+ " <td>0.373731</td>\n",
+ " <td>0.916</td>\n",
+ " <td>0.197149</td>\n",
+ " <td>0.070560</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>210</th>\n",
+ " <td>7cPPyMrSAQY7A686Cn9eUP</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.891649</td>\n",
+ " <td>All My Loving - Remastered 2009</td>\n",
+ " <td>0.235023</td>\n",
+ " <td>0.891</td>\n",
+ " <td>0.292411</td>\n",
+ " <td>0.072925</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>187</th>\n",
+ " <td>3EbGioQyKyf4dycuiPOg3k</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.438356</td>\n",
+ " <td>Everybody's Trying To Be My Baby - Remastered ...</td>\n",
+ " <td>0.866985</td>\n",
+ " <td>0.937</td>\n",
+ " <td>0.126365</td>\n",
+ " <td>0.082298</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>56</th>\n",
+ " <td>0cJ053ljI4BuP5P8tJnK5j</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.893485</td>\n",
+ " <td>For You Blue - Remastered 2009</td>\n",
+ " <td>0.471827</td>\n",
+ " <td>0.958</td>\n",
+ " <td>0.293083</td>\n",
+ " <td>0.083988</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>216</th>\n",
+ " <td>6xJSJpO6HJwHhu7UaIc8qR</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.585885</td>\n",
+ " <td>Hold Me Tight - Remastered 2009</td>\n",
+ " <td>0.804870</td>\n",
+ " <td>0.963</td>\n",
+ " <td>0.180406</td>\n",
+ " <td>0.087764</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>48</th>\n",
+ " <td>72Ob0wrObCXgvGYhFs8vip</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.938049</td>\n",
+ " <td>Across The Universe - Remastered 2009</td>\n",
+ " <td>0.295525</td>\n",
+ " <td>0.862</td>\n",
+ " <td>0.309408</td>\n",
+ " <td>0.093370</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>141</th>\n",
+ " <td>6RdvhWyzCULNTHcMbAXwXK</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.879719</td>\n",
+ " <td>And Your Bird Can Sing - Remastered 2009</td>\n",
+ " <td>0.582875</td>\n",
+ " <td>0.966</td>\n",
+ " <td>0.288041</td>\n",
+ " <td>0.096049</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name lyrical_density \\\n",
+ "84 3fuEJBCK3kWnJHFTODR4cb The Beatles 1.608806 \n",
+ "78 3TEbDhNDU4NDXq0h86nGZ7 The Beatles 1.008850 \n",
+ "220 5VsIn7QQqcacePIb0vO0ow The Beatles 0.465201 \n",
+ "97 4KIXWIzNcKzorNDgvMQwmD The Beatles 0.631592 \n",
+ "210 7cPPyMrSAQY7A686Cn9eUP The Beatles 0.891649 \n",
+ "187 3EbGioQyKyf4dycuiPOg3k The Beatles 0.438356 \n",
+ "56 0cJ053ljI4BuP5P8tJnK5j The Beatles 0.893485 \n",
+ "216 6xJSJpO6HJwHhu7UaIc8qR The Beatles 0.585885 \n",
+ "48 72Ob0wrObCXgvGYhFs8vip The Beatles 0.938049 \n",
+ "141 6RdvhWyzCULNTHcMbAXwXK The Beatles 0.879719 \n",
+ "\n",
+ " name neg valence \\\n",
+ "84 Ob-La-Di, Ob-La-Da - Remastered 2009 0.080969 0.975 \n",
+ "78 Hey Bulldog - Remastered 2009 0.239198 0.942 \n",
+ "220 Not A Second Time - Remastered 2009 0.773805 0.961 \n",
+ "97 Birthday - Remastered 2009 0.373731 0.916 \n",
+ "210 All My Loving - Remastered 2009 0.235023 0.891 \n",
+ "187 Everybody's Trying To Be My Baby - Remastered ... 0.866985 0.937 \n",
+ "56 For You Blue - Remastered 2009 0.471827 0.958 \n",
+ "216 Hold Me Tight - Remastered 2009 0.804870 0.963 \n",
+ "48 Across The Universe - Remastered 2009 0.295525 0.862 \n",
+ "141 And Your Bird Can Sing - Remastered 2009 0.582875 0.966 \n",
+ "\n",
+ " scaled_ld gloom \n",
+ "84 0.555112 0.028035 \n",
+ "78 0.335342 0.059382 \n",
+ "220 0.136198 0.069540 \n",
+ "97 0.197149 0.070560 \n",
+ "210 0.292411 0.072925 \n",
+ "187 0.126365 0.082298 \n",
+ "56 0.293083 0.083988 \n",
+ "216 0.180406 0.087764 \n",
+ "48 0.309408 0.093370 \n",
+ "141 0.288041 0.096049 "
+ ]
+ },
+ "execution_count": 103,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "results.sort_values('gloom', ascending=True).head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "All the top ten most gleeful songs are from The Beatles!\n",
+ "\n",
+ "What about the most gleeful Radiohead songs?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 104,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>lyrical_density</th>\n",
+ " <th>name</th>\n",
+ " <th>neg</th>\n",
+ " <th>valence</th>\n",
+ " <th>scaled_ld</th>\n",
+ " <th>gloom</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>0eECFDnWy0RdjMmJ8NOeAL</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.093389</td>\n",
+ " <td>Feral</td>\n",
+ " <td>0.465216</td>\n",
+ " <td>0.751</td>\n",
+ " <td>0.000000</td>\n",
+ " <td>0.124500</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>247</th>\n",
+ " <td>6dsq7Nt5mIFzvm5kIYNORy</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.674272</td>\n",
+ " <td>15 Step</td>\n",
+ " <td>0.835488</td>\n",
+ " <td>0.848</td>\n",
+ " <td>0.212783</td>\n",
+ " <td>0.148717</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>274</th>\n",
+ " <td>77SPrxY5gn6VPrKPGrfLnM</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.438813</td>\n",
+ " <td>There, There</td>\n",
+ " <td>0.835541</td>\n",
+ " <td>0.726</td>\n",
+ " <td>0.126532</td>\n",
+ " <td>0.172527</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>269</th>\n",
+ " <td>6CVdTDYoDbwYj4xn8u5Gha</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.452573</td>\n",
+ " <td>Backdrifts</td>\n",
+ " <td>0.821532</td>\n",
+ " <td>0.724</td>\n",
+ " <td>0.131573</td>\n",
+ " <td>0.173889</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>255</th>\n",
+ " <td>15ea10YpJIl3mJq75yzqsD</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.952216</td>\n",
+ " <td>Jigsaw Falling Into Place</td>\n",
+ " <td>0.757225</td>\n",
+ " <td>0.818</td>\n",
+ " <td>0.314597</td>\n",
+ " <td>0.181482</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>263</th>\n",
+ " <td>6P67UTTr5qN7XYSSlj0n6X</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.503609</td>\n",
+ " <td>Paperbag Writer</td>\n",
+ " <td>0.754680</td>\n",
+ " <td>0.704</td>\n",
+ " <td>0.150268</td>\n",
+ " <td>0.182462</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>298</th>\n",
+ " <td>3OsUjkcv1C1v5udFhgRSFg</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.329999</td>\n",
+ " <td>Airbag</td>\n",
+ " <td>0.642348</td>\n",
+ " <td>0.642</td>\n",
+ " <td>0.086673</td>\n",
+ " <td>0.191323</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>304</th>\n",
+ " <td>53aFGAl0Vebwp2bo8wtdWR</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>2.019892</td>\n",
+ " <td>Fitter Happier</td>\n",
+ " <td>0.446841</td>\n",
+ " <td>0.728</td>\n",
+ " <td>0.705697</td>\n",
+ " <td>0.197693</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>264</th>\n",
+ " <td>3STByesnbcQatiGHgwi1Tv</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.622541</td>\n",
+ " <td>I Am a Wicked Child</td>\n",
+ " <td>0.763706</td>\n",
+ " <td>0.688</td>\n",
+ " <td>0.193834</td>\n",
+ " <td>0.199778</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>236</th>\n",
+ " <td>3pcCifdPTc2BbqmWpEhtUd</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.439692</td>\n",
+ " <td>Burn the Witch</td>\n",
+ " <td>0.582602</td>\n",
+ " <td>0.625</td>\n",
+ " <td>0.126854</td>\n",
+ " <td>0.200668</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name lyrical_density \\\n",
+ "1 0eECFDnWy0RdjMmJ8NOeAL Radiohead 0.093389 \n",
+ "247 6dsq7Nt5mIFzvm5kIYNORy Radiohead 0.674272 \n",
+ "274 77SPrxY5gn6VPrKPGrfLnM Radiohead 0.438813 \n",
+ "269 6CVdTDYoDbwYj4xn8u5Gha Radiohead 0.452573 \n",
+ "255 15ea10YpJIl3mJq75yzqsD Radiohead 0.952216 \n",
+ "263 6P67UTTr5qN7XYSSlj0n6X Radiohead 0.503609 \n",
+ "298 3OsUjkcv1C1v5udFhgRSFg Radiohead 0.329999 \n",
+ "304 53aFGAl0Vebwp2bo8wtdWR Radiohead 2.019892 \n",
+ "264 3STByesnbcQatiGHgwi1Tv Radiohead 0.622541 \n",
+ "236 3pcCifdPTc2BbqmWpEhtUd Radiohead 0.439692 \n",
+ "\n",
+ " name neg valence scaled_ld gloom \n",
+ "1 Feral 0.465216 0.751 0.000000 0.124500 \n",
+ "247 15 Step 0.835488 0.848 0.212783 0.148717 \n",
+ "274 There, There 0.835541 0.726 0.126532 0.172527 \n",
+ "269 Backdrifts 0.821532 0.724 0.131573 0.173889 \n",
+ "255 Jigsaw Falling Into Place 0.757225 0.818 0.314597 0.181482 \n",
+ "263 Paperbag Writer 0.754680 0.704 0.150268 0.182462 \n",
+ "298 Airbag 0.642348 0.642 0.086673 0.191323 \n",
+ "304 Fitter Happier 0.446841 0.728 0.705697 0.197693 \n",
+ "264 I Am a Wicked Child 0.763706 0.688 0.193834 0.199778 \n",
+ "236 Burn the Witch 0.582602 0.625 0.126854 0.200668 "
+ ]
+ },
+ "execution_count": 104,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "results[results['artist_name'] == 'Radiohead'].sort_values('gloom', ascending=True).head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Contrasting songs<a name=\"valencenegcontrast\"></a>\n",
+ "Going back to the scatter plot of negativity against valence, there are some songs with a high valence (i.e. sound happy) with a high negativity (i.e. sad words). This seems unusual. What songs are they?\n",
+ "\n",
+ "* [Top](#top)\n",
+ "\n",
+ "These are the songs I mean:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 105,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622ab50c50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.scatter(beatles_df['valence'], beatles_df['neg'], color='blue')\n",
+ "plt.scatter(radiohead_df['valence'], radiohead_df['neg'], color='red')\n",
+ "plt.xlabel('Valence')\n",
+ "plt.ylabel('Sentiment negativity')\n",
+ "\n",
+ "ax = plt.gca()\n",
+ "circ = plt.Circle((0.9, 0.8), radius=0.15, color='g', fill=False, linewidth=5)\n",
+ "ax.add_patch(circ)\n",
+ "\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 106,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>lyrical_density</th>\n",
+ " <th>name</th>\n",
+ " <th>neg</th>\n",
+ " <th>valence</th>\n",
+ " <th>scaled_ld</th>\n",
+ " <th>gloom</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>23</th>\n",
+ " <td>7pQAq14Z73YUFMtxCyt0bG</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.516618</td>\n",
+ " <td>Can't Buy Me Love - Remastered 2015</td>\n",
+ " <td>0.738387</td>\n",
+ " <td>0.957</td>\n",
+ " <td>0.521343</td>\n",
+ " <td>0.202768</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>28</th>\n",
+ " <td>1dfuJYDSIc41cw5RPsaCF1</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.651824</td>\n",
+ " <td>Help! - Remastered 2015</td>\n",
+ " <td>0.823915</td>\n",
+ " <td>0.810</td>\n",
+ " <td>0.570870</td>\n",
+ " <td>0.275942</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>34</th>\n",
+ " <td>0TRkjwb4uY3CHb5zhr9bBd</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.628703</td>\n",
+ " <td>Eleanor Rigby - Remastered 2015</td>\n",
+ " <td>0.803232</td>\n",
+ " <td>0.845</td>\n",
+ " <td>0.562401</td>\n",
+ " <td>0.259783</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>46</th>\n",
+ " <td>57n1teNb2tkcfiYagPmUWr</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.885556</td>\n",
+ " <td>Two Of Us - Remastered 2009</td>\n",
+ " <td>0.711080</td>\n",
+ " <td>0.923</td>\n",
+ " <td>0.290179</td>\n",
+ " <td>0.130498</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>54</th>\n",
+ " <td>4311wT21Et0q3vepFwXjTu</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.718556</td>\n",
+ " <td>One After 909 - Remastered 2009</td>\n",
+ " <td>0.865737</td>\n",
+ " <td>0.904</td>\n",
+ " <td>0.229005</td>\n",
+ " <td>0.136137</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>68</th>\n",
+ " <td>67jL5ZAf8hNsRZrfBHNuBT</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.277562</td>\n",
+ " <td>Mean Mr Mustard - Remastered 2009</td>\n",
+ " <td>0.700631</td>\n",
+ " <td>0.967</td>\n",
+ " <td>0.433774</td>\n",
+ " <td>0.161301</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>93</th>\n",
+ " <td>3OSi8ehmSWLTD5KatlzX8r</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.733338</td>\n",
+ " <td>Don't Pass Me By - Remastered 2009</td>\n",
+ " <td>0.857831</td>\n",
+ " <td>0.948</td>\n",
+ " <td>0.234420</td>\n",
+ " <td>0.120451</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>94</th>\n",
+ " <td>4zExFATo8xg8qFfR4H1ZAn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.364176</td>\n",
+ " <td>Why Don't We Do It In The Road? - Remastered 2009</td>\n",
+ " <td>0.793242</td>\n",
+ " <td>0.951</td>\n",
+ " <td>0.465502</td>\n",
+ " <td>0.197723</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>134</th>\n",
+ " <td>77f3aNeabAbOaSB32Sd5QE</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.620131</td>\n",
+ " <td>Eleanor Rigby - Remastered 2009</td>\n",
+ " <td>0.803232</td>\n",
+ " <td>0.821</td>\n",
+ " <td>0.559261</td>\n",
+ " <td>0.264054</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>168</th>\n",
+ " <td>67tvBtAhsfHBFpuqJ13ZUq</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.924368</td>\n",
+ " <td>Act Naturally - Remastered 2009</td>\n",
+ " <td>0.722619</td>\n",
+ " <td>0.946</td>\n",
+ " <td>0.304396</td>\n",
+ " <td>0.128762</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>170</th>\n",
+ " <td>1k9tpndMDRwLkNt67Dlg02</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.408837</td>\n",
+ " <td>You Like Me Too Much - Remastered 2009</td>\n",
+ " <td>0.773406</td>\n",
+ " <td>0.900</td>\n",
+ " <td>0.481862</td>\n",
+ " <td>0.212244</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>172</th>\n",
+ " <td>67VdmhC89bZ6yK2XRys0lA</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.087652</td>\n",
+ " <td>I've Just Seen A Face - Remastered 2009</td>\n",
+ " <td>0.805204</td>\n",
+ " <td>0.917</td>\n",
+ " <td>0.364208</td>\n",
+ " <td>0.173016</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>175</th>\n",
+ " <td>009oOX7tpCPLzRL9AFiBS8</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.242035</td>\n",
+ " <td>No Reply - Remastered 2009</td>\n",
+ " <td>0.781942</td>\n",
+ " <td>0.873</td>\n",
+ " <td>0.420761</td>\n",
+ " <td>0.201287</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>176</th>\n",
+ " <td>5zs8tSd7ZvwBgr4NUmF5zM</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.959827</td>\n",
+ " <td>I'm A Loser - Remastered 2009</td>\n",
+ " <td>0.812114</td>\n",
+ " <td>0.843</td>\n",
+ " <td>0.317385</td>\n",
+ " <td>0.182462</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>177</th>\n",
+ " <td>3mKtIanz0poYgLnRxZrfBO</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.501767</td>\n",
+ " <td>Baby's In Black - Remastered 2009</td>\n",
+ " <td>0.820088</td>\n",
+ " <td>0.862</td>\n",
+ " <td>0.515903</td>\n",
+ " <td>0.244945</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>185</th>\n",
+ " <td>33BGv6xzxHh5E7v3r1hJLL</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.314197</td>\n",
+ " <td>I Don't Want To Spoil The Party - Remastered 2009</td>\n",
+ " <td>0.817801</td>\n",
+ " <td>0.896</td>\n",
+ " <td>0.447194</td>\n",
+ " <td>0.211604</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>186</th>\n",
+ " <td>2YHzfuuDFXzoELxJnqM4at</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.626500</td>\n",
+ " <td>What You're Doing - Remastered 2009</td>\n",
+ " <td>0.751989</td>\n",
+ " <td>0.831</td>\n",
+ " <td>0.195284</td>\n",
+ " <td>0.141424</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>187</th>\n",
+ " <td>3EbGioQyKyf4dycuiPOg3k</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.438356</td>\n",
+ " <td>Everybody's Trying To Be My Baby - Remastered ...</td>\n",
+ " <td>0.866985</td>\n",
+ " <td>0.937</td>\n",
+ " <td>0.126365</td>\n",
+ " <td>0.082298</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>188</th>\n",
+ " <td>69d54YOS8TOQiUYjX57XeA</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.601816</td>\n",
+ " <td>A Hard Day's Night - Remastered 2009</td>\n",
+ " <td>0.833309</td>\n",
+ " <td>0.802</td>\n",
+ " <td>0.552552</td>\n",
+ " <td>0.274521</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>193</th>\n",
+ " <td>4G5YzDD1nCUPwt5y1LQovF</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.901370</td>\n",
+ " <td>Tell Me Why - Remastered 2009</td>\n",
+ " <td>0.849970</td>\n",
+ " <td>0.819</td>\n",
+ " <td>0.295972</td>\n",
+ " <td>0.189498</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>194</th>\n",
+ " <td>7KmRz1oKEwgj9qpfn72OfO</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.509096</td>\n",
+ " <td>Can't Buy Me Love - Remastered 2009</td>\n",
+ " <td>0.738387</td>\n",
+ " <td>0.854</td>\n",
+ " <td>0.518588</td>\n",
+ " <td>0.226602</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>196</th>\n",
+ " <td>3Aqo28W4LLAolYpN3duVJl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.349222</td>\n",
+ " <td>I'll Cry Instead - Remastered 2009</td>\n",
+ " <td>0.863772</td>\n",
+ " <td>0.961</td>\n",
+ " <td>0.460024</td>\n",
+ " <td>0.209207</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>199</th>\n",
+ " <td>4dyALlslhDEzwSEr7GteXa</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.246021</td>\n",
+ " <td>You Can't Do That - Remastered 2009</td>\n",
+ " <td>0.727456</td>\n",
+ " <td>0.962</td>\n",
+ " <td>0.422221</td>\n",
+ " <td>0.164551</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>208</th>\n",
+ " <td>5tNjuWwp6FxuWCrKQAMBTj</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.959614</td>\n",
+ " <td>It Won't Be Long - Remastered 2009</td>\n",
+ " <td>0.783388</td>\n",
+ " <td>0.868</td>\n",
+ " <td>0.317307</td>\n",
+ " <td>0.169345</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>209</th>\n",
+ " <td>1JPTCjLHEtqofOFmHsfiAH</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.036117</td>\n",
+ " <td>All I've Got To Do - Remastered 2009</td>\n",
+ " <td>0.721191</td>\n",
+ " <td>0.876</td>\n",
+ " <td>0.345331</td>\n",
+ " <td>0.165114</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>211</th>\n",
+ " <td>0lLeGCsQlAbEjQBPQQxQ1b</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.998293</td>\n",
+ " <td>Don't Bother Me - Remastered 2009</td>\n",
+ " <td>0.824879</td>\n",
+ " <td>0.921</td>\n",
+ " <td>0.331476</td>\n",
+ " <td>0.163120</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>212</th>\n",
+ " <td>55nE9EppLFdb0I1HBg2O2m</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.695489</td>\n",
+ " <td>Little Child - Remastered 2009</td>\n",
+ " <td>0.848886</td>\n",
+ " <td>0.878</td>\n",
+ " <td>0.220555</td>\n",
+ " <td>0.141159</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>214</th>\n",
+ " <td>5IIBY9M2GxHcVja6DA6wsF</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.362221</td>\n",
+ " <td>Please Mister Postman - Remastered 2009</td>\n",
+ " <td>0.815201</td>\n",
+ " <td>0.962</td>\n",
+ " <td>0.464786</td>\n",
+ " <td>0.199616</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>216</th>\n",
+ " <td>6xJSJpO6HJwHhu7UaIc8qR</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.585885</td>\n",
+ " <td>Hold Me Tight - Remastered 2009</td>\n",
+ " <td>0.804870</td>\n",
+ " <td>0.963</td>\n",
+ " <td>0.180406</td>\n",
+ " <td>0.087764</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>219</th>\n",
+ " <td>3Ltllbv2lbpjP6NgPMNiFg</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.101133</td>\n",
+ " <td>Devil In Her Heart - Remastered 2009</td>\n",
+ " <td>0.779220</td>\n",
+ " <td>0.964</td>\n",
+ " <td>0.369147</td>\n",
+ " <td>0.155179</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>220</th>\n",
+ " <td>5VsIn7QQqcacePIb0vO0ow</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.465201</td>\n",
+ " <td>Not A Second Time - Remastered 2009</td>\n",
+ " <td>0.773805</td>\n",
+ " <td>0.961</td>\n",
+ " <td>0.136198</td>\n",
+ " <td>0.069540</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>223</th>\n",
+ " <td>33OXG0RTtw0ycGza22tnF6</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.022599</td>\n",
+ " <td>Misery - Remastered 2009</td>\n",
+ " <td>0.814230</td>\n",
+ " <td>0.902</td>\n",
+ " <td>0.340379</td>\n",
+ " <td>0.170895</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>247</th>\n",
+ " <td>6dsq7Nt5mIFzvm5kIYNORy</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.674272</td>\n",
+ " <td>15 Step</td>\n",
+ " <td>0.835488</td>\n",
+ " <td>0.848</td>\n",
+ " <td>0.212783</td>\n",
+ " <td>0.148717</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>255</th>\n",
+ " <td>15ea10YpJIl3mJq75yzqsD</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.952216</td>\n",
+ " <td>Jigsaw Falling Into Place</td>\n",
+ " <td>0.757225</td>\n",
+ " <td>0.818</td>\n",
+ " <td>0.314597</td>\n",
+ " <td>0.181482</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name lyrical_density \\\n",
+ "23 7pQAq14Z73YUFMtxCyt0bG The Beatles 1.516618 \n",
+ "28 1dfuJYDSIc41cw5RPsaCF1 The Beatles 1.651824 \n",
+ "34 0TRkjwb4uY3CHb5zhr9bBd The Beatles 1.628703 \n",
+ "46 57n1teNb2tkcfiYagPmUWr The Beatles 0.885556 \n",
+ "54 4311wT21Et0q3vepFwXjTu The Beatles 0.718556 \n",
+ "68 67jL5ZAf8hNsRZrfBHNuBT The Beatles 1.277562 \n",
+ "93 3OSi8ehmSWLTD5KatlzX8r The Beatles 0.733338 \n",
+ "94 4zExFATo8xg8qFfR4H1ZAn The Beatles 1.364176 \n",
+ "134 77f3aNeabAbOaSB32Sd5QE The Beatles 1.620131 \n",
+ "168 67tvBtAhsfHBFpuqJ13ZUq The Beatles 0.924368 \n",
+ "170 1k9tpndMDRwLkNt67Dlg02 The Beatles 1.408837 \n",
+ "172 67VdmhC89bZ6yK2XRys0lA The Beatles 1.087652 \n",
+ "175 009oOX7tpCPLzRL9AFiBS8 The Beatles 1.242035 \n",
+ "176 5zs8tSd7ZvwBgr4NUmF5zM The Beatles 0.959827 \n",
+ "177 3mKtIanz0poYgLnRxZrfBO The Beatles 1.501767 \n",
+ "185 33BGv6xzxHh5E7v3r1hJLL The Beatles 1.314197 \n",
+ "186 2YHzfuuDFXzoELxJnqM4at The Beatles 0.626500 \n",
+ "187 3EbGioQyKyf4dycuiPOg3k The Beatles 0.438356 \n",
+ "188 69d54YOS8TOQiUYjX57XeA The Beatles 1.601816 \n",
+ "193 4G5YzDD1nCUPwt5y1LQovF The Beatles 0.901370 \n",
+ "194 7KmRz1oKEwgj9qpfn72OfO The Beatles 1.509096 \n",
+ "196 3Aqo28W4LLAolYpN3duVJl The Beatles 1.349222 \n",
+ "199 4dyALlslhDEzwSEr7GteXa The Beatles 1.246021 \n",
+ "208 5tNjuWwp6FxuWCrKQAMBTj The Beatles 0.959614 \n",
+ "209 1JPTCjLHEtqofOFmHsfiAH The Beatles 1.036117 \n",
+ "211 0lLeGCsQlAbEjQBPQQxQ1b The Beatles 0.998293 \n",
+ "212 55nE9EppLFdb0I1HBg2O2m The Beatles 0.695489 \n",
+ "214 5IIBY9M2GxHcVja6DA6wsF The Beatles 1.362221 \n",
+ "216 6xJSJpO6HJwHhu7UaIc8qR The Beatles 0.585885 \n",
+ "219 3Ltllbv2lbpjP6NgPMNiFg The Beatles 1.101133 \n",
+ "220 5VsIn7QQqcacePIb0vO0ow The Beatles 0.465201 \n",
+ "223 33OXG0RTtw0ycGza22tnF6 The Beatles 1.022599 \n",
+ "247 6dsq7Nt5mIFzvm5kIYNORy Radiohead 0.674272 \n",
+ "255 15ea10YpJIl3mJq75yzqsD Radiohead 0.952216 \n",
+ "\n",
+ " name neg valence \\\n",
+ "23 Can't Buy Me Love - Remastered 2015 0.738387 0.957 \n",
+ "28 Help! - Remastered 2015 0.823915 0.810 \n",
+ "34 Eleanor Rigby - Remastered 2015 0.803232 0.845 \n",
+ "46 Two Of Us - Remastered 2009 0.711080 0.923 \n",
+ "54 One After 909 - Remastered 2009 0.865737 0.904 \n",
+ "68 Mean Mr Mustard - Remastered 2009 0.700631 0.967 \n",
+ "93 Don't Pass Me By - Remastered 2009 0.857831 0.948 \n",
+ "94 Why Don't We Do It In The Road? - Remastered 2009 0.793242 0.951 \n",
+ "134 Eleanor Rigby - Remastered 2009 0.803232 0.821 \n",
+ "168 Act Naturally - Remastered 2009 0.722619 0.946 \n",
+ "170 You Like Me Too Much - Remastered 2009 0.773406 0.900 \n",
+ "172 I've Just Seen A Face - Remastered 2009 0.805204 0.917 \n",
+ "175 No Reply - Remastered 2009 0.781942 0.873 \n",
+ "176 I'm A Loser - Remastered 2009 0.812114 0.843 \n",
+ "177 Baby's In Black - Remastered 2009 0.820088 0.862 \n",
+ "185 I Don't Want To Spoil The Party - Remastered 2009 0.817801 0.896 \n",
+ "186 What You're Doing - Remastered 2009 0.751989 0.831 \n",
+ "187 Everybody's Trying To Be My Baby - Remastered ... 0.866985 0.937 \n",
+ "188 A Hard Day's Night - Remastered 2009 0.833309 0.802 \n",
+ "193 Tell Me Why - Remastered 2009 0.849970 0.819 \n",
+ "194 Can't Buy Me Love - Remastered 2009 0.738387 0.854 \n",
+ "196 I'll Cry Instead - Remastered 2009 0.863772 0.961 \n",
+ "199 You Can't Do That - Remastered 2009 0.727456 0.962 \n",
+ "208 It Won't Be Long - Remastered 2009 0.783388 0.868 \n",
+ "209 All I've Got To Do - Remastered 2009 0.721191 0.876 \n",
+ "211 Don't Bother Me - Remastered 2009 0.824879 0.921 \n",
+ "212 Little Child - Remastered 2009 0.848886 0.878 \n",
+ "214 Please Mister Postman - Remastered 2009 0.815201 0.962 \n",
+ "216 Hold Me Tight - Remastered 2009 0.804870 0.963 \n",
+ "219 Devil In Her Heart - Remastered 2009 0.779220 0.964 \n",
+ "220 Not A Second Time - Remastered 2009 0.773805 0.961 \n",
+ "223 Misery - Remastered 2009 0.814230 0.902 \n",
+ "247 15 Step 0.835488 0.848 \n",
+ "255 Jigsaw Falling Into Place 0.757225 0.818 \n",
+ "\n",
+ " scaled_ld gloom \n",
+ "23 0.521343 0.202768 \n",
+ "28 0.570870 0.275942 \n",
+ "34 0.562401 0.259783 \n",
+ "46 0.290179 0.130498 \n",
+ "54 0.229005 0.136137 \n",
+ "68 0.433774 0.161301 \n",
+ "93 0.234420 0.120451 \n",
+ "94 0.465502 0.197723 \n",
+ "134 0.559261 0.264054 \n",
+ "168 0.304396 0.128762 \n",
+ "170 0.481862 0.212244 \n",
+ "172 0.364208 0.173016 \n",
+ "175 0.420761 0.201287 \n",
+ "176 0.317385 0.182462 \n",
+ "177 0.515903 0.244945 \n",
+ "185 0.447194 0.211604 \n",
+ "186 0.195284 0.141424 \n",
+ "187 0.126365 0.082298 \n",
+ "188 0.552552 0.274521 \n",
+ "193 0.295972 0.189498 \n",
+ "194 0.518588 0.226602 \n",
+ "196 0.460024 0.209207 \n",
+ "199 0.422221 0.164551 \n",
+ "208 0.317307 0.169345 \n",
+ "209 0.345331 0.165114 \n",
+ "211 0.331476 0.163120 \n",
+ "212 0.220555 0.141159 \n",
+ "214 0.464786 0.199616 \n",
+ "216 0.180406 0.087764 \n",
+ "219 0.369147 0.155179 \n",
+ "220 0.136198 0.069540 \n",
+ "223 0.340379 0.170895 \n",
+ "247 0.212783 0.148717 \n",
+ "255 0.314597 0.181482 "
+ ]
+ },
+ "execution_count": 106,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "results[(results['valence'] > 0.8) & (results['neg'] > 0.7)]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "That's interesting. This list contains a lot of the Beatles' most well-known songs. Is there something in this?\n",
+ "\n",
+ "Let's define \"complexity\" as the product of valence and negativity, and see which are the most complext songs."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 107,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>lyrical_density</th>\n",
+ " <th>name</th>\n",
+ " <th>neg</th>\n",
+ " <th>valence</th>\n",
+ " <th>scaled_ld</th>\n",
+ " <th>gloom</th>\n",
+ " <th>complexity</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>196</th>\n",
+ " <td>3Aqo28W4LLAolYpN3duVJl</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.349222</td>\n",
+ " <td>I'll Cry Instead - Remastered 2009</td>\n",
+ " <td>0.863772</td>\n",
+ " <td>0.961</td>\n",
+ " <td>0.460024</td>\n",
+ " <td>0.209207</td>\n",
+ " <td>0.830085</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>93</th>\n",
+ " <td>3OSi8ehmSWLTD5KatlzX8r</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.733338</td>\n",
+ " <td>Don't Pass Me By - Remastered 2009</td>\n",
+ " <td>0.857831</td>\n",
+ " <td>0.948</td>\n",
+ " <td>0.234420</td>\n",
+ " <td>0.120451</td>\n",
+ " <td>0.813223</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>187</th>\n",
+ " <td>3EbGioQyKyf4dycuiPOg3k</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.438356</td>\n",
+ " <td>Everybody's Trying To Be My Baby - Remastered ...</td>\n",
+ " <td>0.866985</td>\n",
+ " <td>0.937</td>\n",
+ " <td>0.126365</td>\n",
+ " <td>0.082298</td>\n",
+ " <td>0.812365</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>214</th>\n",
+ " <td>5IIBY9M2GxHcVja6DA6wsF</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.362221</td>\n",
+ " <td>Please Mister Postman - Remastered 2009</td>\n",
+ " <td>0.815201</td>\n",
+ " <td>0.962</td>\n",
+ " <td>0.464786</td>\n",
+ " <td>0.199616</td>\n",
+ " <td>0.784223</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>54</th>\n",
+ " <td>4311wT21Et0q3vepFwXjTu</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.718556</td>\n",
+ " <td>One After 909 - Remastered 2009</td>\n",
+ " <td>0.865737</td>\n",
+ " <td>0.904</td>\n",
+ " <td>0.229005</td>\n",
+ " <td>0.136137</td>\n",
+ " <td>0.782626</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>216</th>\n",
+ " <td>6xJSJpO6HJwHhu7UaIc8qR</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.585885</td>\n",
+ " <td>Hold Me Tight - Remastered 2009</td>\n",
+ " <td>0.804870</td>\n",
+ " <td>0.963</td>\n",
+ " <td>0.180406</td>\n",
+ " <td>0.087764</td>\n",
+ " <td>0.775090</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>211</th>\n",
+ " <td>0lLeGCsQlAbEjQBPQQxQ1b</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.998293</td>\n",
+ " <td>Don't Bother Me - Remastered 2009</td>\n",
+ " <td>0.824879</td>\n",
+ " <td>0.921</td>\n",
+ " <td>0.331476</td>\n",
+ " <td>0.163120</td>\n",
+ " <td>0.759713</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>94</th>\n",
+ " <td>4zExFATo8xg8qFfR4H1ZAn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.364176</td>\n",
+ " <td>Why Don't We Do It In The Road? - Remastered 2009</td>\n",
+ " <td>0.793242</td>\n",
+ " <td>0.951</td>\n",
+ " <td>0.465502</td>\n",
+ " <td>0.197723</td>\n",
+ " <td>0.754373</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>219</th>\n",
+ " <td>3Ltllbv2lbpjP6NgPMNiFg</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1.101133</td>\n",
+ " <td>Devil In Her Heart - Remastered 2009</td>\n",
+ " <td>0.779220</td>\n",
+ " <td>0.964</td>\n",
+ " <td>0.369147</td>\n",
+ " <td>0.155179</td>\n",
+ " <td>0.751168</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>212</th>\n",
+ " <td>55nE9EppLFdb0I1HBg2O2m</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.695489</td>\n",
+ " <td>Little Child - Remastered 2009</td>\n",
+ " <td>0.848886</td>\n",
+ " <td>0.878</td>\n",
+ " <td>0.220555</td>\n",
+ " <td>0.141159</td>\n",
+ " <td>0.745322</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name lyrical_density \\\n",
+ "196 3Aqo28W4LLAolYpN3duVJl The Beatles 1.349222 \n",
+ "93 3OSi8ehmSWLTD5KatlzX8r The Beatles 0.733338 \n",
+ "187 3EbGioQyKyf4dycuiPOg3k The Beatles 0.438356 \n",
+ "214 5IIBY9M2GxHcVja6DA6wsF The Beatles 1.362221 \n",
+ "54 4311wT21Et0q3vepFwXjTu The Beatles 0.718556 \n",
+ "216 6xJSJpO6HJwHhu7UaIc8qR The Beatles 0.585885 \n",
+ "211 0lLeGCsQlAbEjQBPQQxQ1b The Beatles 0.998293 \n",
+ "94 4zExFATo8xg8qFfR4H1ZAn The Beatles 1.364176 \n",
+ "219 3Ltllbv2lbpjP6NgPMNiFg The Beatles 1.101133 \n",
+ "212 55nE9EppLFdb0I1HBg2O2m The Beatles 0.695489 \n",
+ "\n",
+ " name neg valence \\\n",
+ "196 I'll Cry Instead - Remastered 2009 0.863772 0.961 \n",
+ "93 Don't Pass Me By - Remastered 2009 0.857831 0.948 \n",
+ "187 Everybody's Trying To Be My Baby - Remastered ... 0.866985 0.937 \n",
+ "214 Please Mister Postman - Remastered 2009 0.815201 0.962 \n",
+ "54 One After 909 - Remastered 2009 0.865737 0.904 \n",
+ "216 Hold Me Tight - Remastered 2009 0.804870 0.963 \n",
+ "211 Don't Bother Me - Remastered 2009 0.824879 0.921 \n",
+ "94 Why Don't We Do It In The Road? - Remastered 2009 0.793242 0.951 \n",
+ "219 Devil In Her Heart - Remastered 2009 0.779220 0.964 \n",
+ "212 Little Child - Remastered 2009 0.848886 0.878 \n",
+ "\n",
+ " scaled_ld gloom complexity \n",
+ "196 0.460024 0.209207 0.830085 \n",
+ "93 0.234420 0.120451 0.813223 \n",
+ "187 0.126365 0.082298 0.812365 \n",
+ "214 0.464786 0.199616 0.784223 \n",
+ "54 0.229005 0.136137 0.782626 \n",
+ "216 0.180406 0.087764 0.775090 \n",
+ "211 0.331476 0.163120 0.759713 \n",
+ "94 0.465502 0.197723 0.754373 \n",
+ "219 0.369147 0.155179 0.751168 \n",
+ "212 0.220555 0.141159 0.745322 "
+ ]
+ },
+ "execution_count": 107,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "results['complexity'] = results['valence'] * results['neg']\n",
+ "results.sort_values('complexity', ascending=False).head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "There's possibly something in it. The most \"complex\" song has a very upbeat pop tune and very sad lyrics. The others are similarly interesting.\n",
+ "\n",
+ "What about the least \"complex\" songs?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 108,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>lyrical_density</th>\n",
+ " <th>name</th>\n",
+ " <th>neg</th>\n",
+ " <th>valence</th>\n",
+ " <th>scaled_ld</th>\n",
+ " <th>gloom</th>\n",
+ " <th>complexity</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>243</th>\n",
+ " <td>6f6pEjgfTtuRROmJ4a7Gf3</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.393192</td>\n",
+ " <td>The Numbers</td>\n",
+ " <td>0.292008</td>\n",
+ " <td>0.0545</td>\n",
+ " <td>0.109821</td>\n",
+ " <td>0.436866</td>\n",
+ " <td>0.015914</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>146</th>\n",
+ " <td>0agoaPIy92gPZ6zRhqXarE</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.634931</td>\n",
+ " <td>Tomorrow Never Knows - Remastered 2009</td>\n",
+ " <td>0.343599</td>\n",
+ " <td>0.0556</td>\n",
+ " <td>0.198372</td>\n",
+ " <td>0.412609</td>\n",
+ " <td>0.019104</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>246</th>\n",
+ " <td>01ZpFhrMMqKPVCwyqXneVp</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.218723</td>\n",
+ " <td>True Love Waits</td>\n",
+ " <td>0.532206</td>\n",
+ " <td>0.0378</td>\n",
+ " <td>0.045911</td>\n",
+ " <td>0.471229</td>\n",
+ " <td>0.020117</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>272</th>\n",
+ " <td>53RYTfkLiyZuUZHwJC3Wmm</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.276367</td>\n",
+ " <td>We Suck Young Blood</td>\n",
+ " <td>0.535358</td>\n",
+ " <td>0.0378</td>\n",
+ " <td>0.067027</td>\n",
+ " <td>0.466795</td>\n",
+ " <td>0.020237</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>297</th>\n",
+ " <td>0COiZ7ncho2yi4HotbzgPv</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.349157</td>\n",
+ " <td>Motion Picture Soundtrack</td>\n",
+ " <td>0.576808</td>\n",
+ " <td>0.0425</td>\n",
+ " <td>0.093690</td>\n",
+ " <td>0.460916</td>\n",
+ " <td>0.024514</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>245</th>\n",
+ " <td>3cual6JOG286qZJmCxKRAT</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.332577</td>\n",
+ " <td>Tinker Tailor Soldier Sailor Rich Man Poor Man...</td>\n",
+ " <td>0.477322</td>\n",
+ " <td>0.0517</td>\n",
+ " <td>0.087617</td>\n",
+ " <td>0.453517</td>\n",
+ " <td>0.024678</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>309</th>\n",
+ " <td>75YUnz58ajMo2VIIuUFvOV</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.248061</td>\n",
+ " <td>The Tourist</td>\n",
+ " <td>0.667864</td>\n",
+ " <td>0.0400</td>\n",
+ " <td>0.056658</td>\n",
+ " <td>0.471724</td>\n",
+ " <td>0.026715</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>268</th>\n",
+ " <td>5olWalQH1oVza5D6xJg4oX</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.216752</td>\n",
+ " <td>Sail To The Moon</td>\n",
+ " <td>0.605798</td>\n",
+ " <td>0.0458</td>\n",
+ " <td>0.045189</td>\n",
+ " <td>0.469228</td>\n",
+ " <td>0.027746</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>256</th>\n",
+ " <td>3uxhyRdWVXp7GQvERQl6fA</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>0.382643</td>\n",
+ " <td>Videotape</td>\n",
+ " <td>0.652962</td>\n",
+ " <td>0.0468</td>\n",
+ " <td>0.105957</td>\n",
+ " <td>0.460694</td>\n",
+ " <td>0.030559</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>112</th>\n",
+ " <td>0ttMfoND7IQqFSMVOPkELC</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>0.799772</td>\n",
+ " <td>Blue Jay Way - Remastered 2009</td>\n",
+ " <td>0.812490</td>\n",
+ " <td>0.0380</td>\n",
+ " <td>0.258755</td>\n",
+ " <td>0.461657</td>\n",
+ " <td>0.030875</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name lyrical_density \\\n",
+ "243 6f6pEjgfTtuRROmJ4a7Gf3 Radiohead 0.393192 \n",
+ "146 0agoaPIy92gPZ6zRhqXarE The Beatles 0.634931 \n",
+ "246 01ZpFhrMMqKPVCwyqXneVp Radiohead 0.218723 \n",
+ "272 53RYTfkLiyZuUZHwJC3Wmm Radiohead 0.276367 \n",
+ "297 0COiZ7ncho2yi4HotbzgPv Radiohead 0.349157 \n",
+ "245 3cual6JOG286qZJmCxKRAT Radiohead 0.332577 \n",
+ "309 75YUnz58ajMo2VIIuUFvOV Radiohead 0.248061 \n",
+ "268 5olWalQH1oVza5D6xJg4oX Radiohead 0.216752 \n",
+ "256 3uxhyRdWVXp7GQvERQl6fA Radiohead 0.382643 \n",
+ "112 0ttMfoND7IQqFSMVOPkELC The Beatles 0.799772 \n",
+ "\n",
+ " name neg valence \\\n",
+ "243 The Numbers 0.292008 0.0545 \n",
+ "146 Tomorrow Never Knows - Remastered 2009 0.343599 0.0556 \n",
+ "246 True Love Waits 0.532206 0.0378 \n",
+ "272 We Suck Young Blood 0.535358 0.0378 \n",
+ "297 Motion Picture Soundtrack 0.576808 0.0425 \n",
+ "245 Tinker Tailor Soldier Sailor Rich Man Poor Man... 0.477322 0.0517 \n",
+ "309 The Tourist 0.667864 0.0400 \n",
+ "268 Sail To The Moon 0.605798 0.0458 \n",
+ "256 Videotape 0.652962 0.0468 \n",
+ "112 Blue Jay Way - Remastered 2009 0.812490 0.0380 \n",
+ "\n",
+ " scaled_ld gloom complexity \n",
+ "243 0.109821 0.436866 0.015914 \n",
+ "146 0.198372 0.412609 0.019104 \n",
+ "246 0.045911 0.471229 0.020117 \n",
+ "272 0.067027 0.466795 0.020237 \n",
+ "297 0.093690 0.460916 0.024514 \n",
+ "245 0.087617 0.453517 0.024678 \n",
+ "309 0.056658 0.471724 0.026715 \n",
+ "268 0.045189 0.469228 0.027746 \n",
+ "256 0.105957 0.460694 0.030559 \n",
+ "112 0.258755 0.461657 0.030875 "
+ ]
+ },
+ "execution_count": 108,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "results.sort_values('complexity', ascending=True).head(10)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Interestingly, all of the \"complex\" songs are by The Beatles, while most of the least \"complex\" songs are by Radiohead. How true is that for all songs?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 109,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "<matplotlib.axes._subplots.AxesSubplot at 0x7f622ab505f8>"
+ ]
+ },
+ "execution_count": 109,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\nhfx/+y1eYdT8898AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622af03908>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "results[results['artist_name'] == 'The Beatles']['complexity'].hist(alpha=0.5, color='blue')\n",
+ "results[results['artist_name'] == 'Radiohead']['complexity'].hist(alpha=0.5, color='red')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 110,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "# Push the results back into the database\n",
+ "for row in results.itertuples():\n",
+ " tracks.update_one({'_id': row[1]}, {'$set': {'complexity': row.complexity}})"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Average gloom per album<a name=\"gloomperalbum\"></a>\n",
+ "How close can we easily get to the final plot at the end of the fitteR happieR post?\n",
+ "\n",
+ "First, we find average gloom per album.\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 111,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "defaultdict(int,\n",
+ " {'03Qh833fEdVT30Pfs93ea6': 0.24623580565335343,\n",
+ " '0PYyrqs9NXtxPhf0CZkq2L': 0.23500175198141857,\n",
+ " '19K3IHYeVkUTjcBHGfbCOi': 0.22062175593822878,\n",
+ " '19RUXBFyM4PpmrLRdtqWbp': 0.3431302979758603,\n",
+ " '1DBkJIEoeHrTX4WCBQGcCi': 0.28205809775367074,\n",
+ " '1PULmKbHeOqlkIwcDMNwD4': 0.2284613266716491,\n",
+ " '1oW3v5Har9mvXnGk0x4fHm': 0.31375539654482865,\n",
+ " '2Pqkn9Dq2DFtdfkKAeqgMd': 0.2884934384506727,\n",
+ " '2pCqZLeavM2BMovJXsJEIV': 0.2186076399504195,\n",
+ " '36lJLPoPPOKNFddTAcirnc': 0.3821905201779125,\n",
+ " '3OdI6e43crvyAHhaqpxSyz': 0.2121785350158011,\n",
+ " '3nkEsxmIX0zRNXGAexaHAn': 0.15291310732486194,\n",
+ " '47bcKzmKgmMPHXNVOWpLiu': 0.17887638062333686,\n",
+ " '500FEaUzn8lN9zWFyZG5C2': 0.3411762104912795,\n",
+ " '5XfJmldgWzrc1AIdbBaVZn': 0.2506029443837317,\n",
+ " '5ju5Ouzan3QwXqQt1Tihbh': 0.22464122677656365,\n",
+ " '6400dnyeDyD2mIFHfkwHXN': 0.34531516064731943,\n",
+ " '6Eo5EkmdLvZrONzi046iC2': 0.25747581401566805,\n",
+ " '6P9yO0ukhOx3dvmhGKeYoC': 0.2684584850649835,\n",
+ " '6V9YnBmFjWmXCBaUVRCVXP': 0.37361679839282097,\n",
+ " '6vuykQgDLUCiZ7YggIpLM9': 0.3823911679811044,\n",
+ " '71Mwd9tntFQYUk4k2DwA0D': 0.21540669157651762,\n",
+ " '7BgGBZndAvDlKOcwe5rscZ': 0.1751092911259364,\n",
+ " '7dxKtc08dYeRVHt3p9CZJn': 0.35290227411012665,\n",
+ " '7eyQXxuf2nGj9d2367Gi5f': 0.3242377357445757,\n",
+ " '7gDXyW16byCQOgK965BRzn': 0.1772079427962885})"
+ ]
+ },
+ "execution_count": 111,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pipeline = [\n",
+ " {'$match': {'gloom': {'$exists': True}}},\n",
+ " {'$group': {'_id': '$album.id', 'avg_gloom': {'$avg': '$gloom'}}}]\n",
+ "album_glooms = collections.defaultdict(int, {a['_id']: a['avg_gloom'] for a in tracks.aggregate(pipeline)})\n",
+ "album_glooms"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 112,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>name</th>\n",
+ " <th>release_date</th>\n",
+ " <th>gloom</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>15</th>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Please Please Me (Remastered)</td>\n",
+ " <td>1963-03-22</td>\n",
+ " <td>0.177208</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>14</th>\n",
+ " <td>3nkEsxmIX0zRNXGAexaHAn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>With The Beatles (Remastered)</td>\n",
+ " <td>1963-11-22</td>\n",
+ " <td>0.152913</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>12</th>\n",
+ " <td>71Mwd9tntFQYUk4k2DwA0D</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>A Hard Day's Night (Remastered)</td>\n",
+ " <td>1964-07-10</td>\n",
+ " <td>0.215407</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>11</th>\n",
+ " <td>7BgGBZndAvDlKOcwe5rscZ</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Beatles For Sale (Remastered)</td>\n",
+ " <td>1964-12-04</td>\n",
+ " <td>0.175109</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>10</th>\n",
+ " <td>19K3IHYeVkUTjcBHGfbCOi</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Help! (Remastered)</td>\n",
+ " <td>1965-08-06</td>\n",
+ " <td>0.220622</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>9</th>\n",
+ " <td>3OdI6e43crvyAHhaqpxSyz</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Rubber Soul (Remastered)</td>\n",
+ " <td>1965-12-03</td>\n",
+ " <td>0.212179</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>8</th>\n",
+ " <td>0PYyrqs9NXtxPhf0CZkq2L</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Revolver (Remastered)</td>\n",
+ " <td>1966-08-05</td>\n",
+ " <td>0.235002</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>7</th>\n",
+ " <td>1PULmKbHeOqlkIwcDMNwD4</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Sgt. Pepper's Lonely Hearts Club Band (Remaste...</td>\n",
+ " <td>1967-06-01</td>\n",
+ " <td>0.228461</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>6</th>\n",
+ " <td>6P9yO0ukhOx3dvmhGKeYoC</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Magical Mystery Tour (Remastered)</td>\n",
+ " <td>1967-11-27</td>\n",
+ " <td>0.268458</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>5</th>\n",
+ " <td>03Qh833fEdVT30Pfs93ea6</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles (Remastered)</td>\n",
+ " <td>1968-11-22</td>\n",
+ " <td>0.246236</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>47bcKzmKgmMPHXNVOWpLiu</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Yellow Submarine (Remastered)</td>\n",
+ " <td>1969-01-17</td>\n",
+ " <td>0.178876</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>3</th>\n",
+ " <td>2Pqkn9Dq2DFtdfkKAeqgMd</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Abbey Road (Remastered)</td>\n",
+ " <td>1969-09-26</td>\n",
+ " <td>0.288493</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>2pCqZLeavM2BMovJXsJEIV</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Let It Be (Remastered)</td>\n",
+ " <td>1970-05-08</td>\n",
+ " <td>0.218608</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>27</th>\n",
+ " <td>6400dnyeDyD2mIFHfkwHXN</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Pablo Honey</td>\n",
+ " <td>1993-02-22</td>\n",
+ " <td>0.345315</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>26</th>\n",
+ " <td>500FEaUzn8lN9zWFyZG5C2</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>The Bends</td>\n",
+ " <td>1995-03-28</td>\n",
+ " <td>0.341176</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>25</th>\n",
+ " <td>7dxKtc08dYeRVHt3p9CZJn</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>OK Computer</td>\n",
+ " <td>1997-05-28</td>\n",
+ " <td>0.352902</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>24</th>\n",
+ " <td>19RUXBFyM4PpmrLRdtqWbp</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Kid A</td>\n",
+ " <td>2000-10-01</td>\n",
+ " <td>0.343130</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>1</th>\n",
+ " <td>5ju5Ouzan3QwXqQt1Tihbh</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>1 (Remastered)</td>\n",
+ " <td>2000-11-13</td>\n",
+ " <td>0.224641</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>22</th>\n",
+ " <td>6svTt5o2lUgIrgYDKVmdnD</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>I Might Be Wrong</td>\n",
+ " <td>2001-01-01</td>\n",
+ " <td>0.000000</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>23</th>\n",
+ " <td>6V9YnBmFjWmXCBaUVRCVXP</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Amnesiac</td>\n",
+ " <td>2001-03-12</td>\n",
+ " <td>0.373617</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>21</th>\n",
+ " <td>1oW3v5Har9mvXnGk0x4fHm</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Hail To the Thief</td>\n",
+ " <td>2003-01-01</td>\n",
+ " <td>0.313755</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>20</th>\n",
+ " <td>6Eo5EkmdLvZrONzi046iC2</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Com Lag: 2+2=5</td>\n",
+ " <td>2004-03-24</td>\n",
+ " <td>0.257476</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>19</th>\n",
+ " <td>36lJLPoPPOKNFddTAcirnc</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>In Rainbows Disk 2</td>\n",
+ " <td>2007-01-01</td>\n",
+ " <td>0.382191</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>18</th>\n",
+ " <td>7eyQXxuf2nGj9d2367Gi5f</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>In Rainbows</td>\n",
+ " <td>2007-12-28</td>\n",
+ " <td>0.324238</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>13</th>\n",
+ " <td>1DBkJIEoeHrTX4WCBQGcCi</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>The King Of Limbs</td>\n",
+ " <td>2011-02-18</td>\n",
+ " <td>0.282058</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>17</th>\n",
+ " <td>47xaqCsJcYFWqD1gwujl1T</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>TKOL RMX 1234567</td>\n",
+ " <td>2011-10-10</td>\n",
+ " <td>0.000000</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>16</th>\n",
+ " <td>6vuykQgDLUCiZ7YggIpLM9</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>A Moon Shaped Pool</td>\n",
+ " <td>2016-05-08</td>\n",
+ " <td>0.382391</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>0</th>\n",
+ " <td>5XfJmldgWzrc1AIdbBaVZn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Live At The Hollywood Bowl</td>\n",
+ " <td>2016-09-09</td>\n",
+ " <td>0.250603</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name \\\n",
+ "15 7gDXyW16byCQOgK965BRzn The Beatles \n",
+ "14 3nkEsxmIX0zRNXGAexaHAn The Beatles \n",
+ "12 71Mwd9tntFQYUk4k2DwA0D The Beatles \n",
+ "11 7BgGBZndAvDlKOcwe5rscZ The Beatles \n",
+ "10 19K3IHYeVkUTjcBHGfbCOi The Beatles \n",
+ "9 3OdI6e43crvyAHhaqpxSyz The Beatles \n",
+ "8 0PYyrqs9NXtxPhf0CZkq2L The Beatles \n",
+ "7 1PULmKbHeOqlkIwcDMNwD4 The Beatles \n",
+ "6 6P9yO0ukhOx3dvmhGKeYoC The Beatles \n",
+ "5 03Qh833fEdVT30Pfs93ea6 The Beatles \n",
+ "4 47bcKzmKgmMPHXNVOWpLiu The Beatles \n",
+ "3 2Pqkn9Dq2DFtdfkKAeqgMd The Beatles \n",
+ "2 2pCqZLeavM2BMovJXsJEIV The Beatles \n",
+ "27 6400dnyeDyD2mIFHfkwHXN Radiohead \n",
+ "26 500FEaUzn8lN9zWFyZG5C2 Radiohead \n",
+ "25 7dxKtc08dYeRVHt3p9CZJn Radiohead \n",
+ "24 19RUXBFyM4PpmrLRdtqWbp Radiohead \n",
+ "1 5ju5Ouzan3QwXqQt1Tihbh The Beatles \n",
+ "22 6svTt5o2lUgIrgYDKVmdnD Radiohead \n",
+ "23 6V9YnBmFjWmXCBaUVRCVXP Radiohead \n",
+ "21 1oW3v5Har9mvXnGk0x4fHm Radiohead \n",
+ "20 6Eo5EkmdLvZrONzi046iC2 Radiohead \n",
+ "19 36lJLPoPPOKNFddTAcirnc Radiohead \n",
+ "18 7eyQXxuf2nGj9d2367Gi5f Radiohead \n",
+ "13 1DBkJIEoeHrTX4WCBQGcCi Radiohead \n",
+ "17 47xaqCsJcYFWqD1gwujl1T Radiohead \n",
+ "16 6vuykQgDLUCiZ7YggIpLM9 Radiohead \n",
+ "0 5XfJmldgWzrc1AIdbBaVZn The Beatles \n",
+ "\n",
+ " name release_date gloom \n",
+ "15 Please Please Me (Remastered) 1963-03-22 0.177208 \n",
+ "14 With The Beatles (Remastered) 1963-11-22 0.152913 \n",
+ "12 A Hard Day's Night (Remastered) 1964-07-10 0.215407 \n",
+ "11 Beatles For Sale (Remastered) 1964-12-04 0.175109 \n",
+ "10 Help! (Remastered) 1965-08-06 0.220622 \n",
+ "9 Rubber Soul (Remastered) 1965-12-03 0.212179 \n",
+ "8 Revolver (Remastered) 1966-08-05 0.235002 \n",
+ "7 Sgt. Pepper's Lonely Hearts Club Band (Remaste... 1967-06-01 0.228461 \n",
+ "6 Magical Mystery Tour (Remastered) 1967-11-27 0.268458 \n",
+ "5 The Beatles (Remastered) 1968-11-22 0.246236 \n",
+ "4 Yellow Submarine (Remastered) 1969-01-17 0.178876 \n",
+ "3 Abbey Road (Remastered) 1969-09-26 0.288493 \n",
+ "2 Let It Be (Remastered) 1970-05-08 0.218608 \n",
+ "27 Pablo Honey 1993-02-22 0.345315 \n",
+ "26 The Bends 1995-03-28 0.341176 \n",
+ "25 OK Computer 1997-05-28 0.352902 \n",
+ "24 Kid A 2000-10-01 0.343130 \n",
+ "1 1 (Remastered) 2000-11-13 0.224641 \n",
+ "22 I Might Be Wrong 2001-01-01 0.000000 \n",
+ "23 Amnesiac 2001-03-12 0.373617 \n",
+ "21 Hail To the Thief 2003-01-01 0.313755 \n",
+ "20 Com Lag: 2+2=5 2004-03-24 0.257476 \n",
+ "19 In Rainbows Disk 2 2007-01-01 0.382191 \n",
+ "18 In Rainbows 2007-12-28 0.324238 \n",
+ "13 The King Of Limbs 2011-02-18 0.282058 \n",
+ "17 TKOL RMX 1234567 2011-10-10 0.000000 \n",
+ "16 A Moon Shaped Pool 2016-05-08 0.382391 \n",
+ "0 Live At The Hollywood Bowl 2016-09-09 0.250603 "
+ ]
+ },
+ "execution_count": 112,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "albums_df = pd.DataFrame(list(albums.find({}, ['release_date', 'name', 'artist_name'])))\n",
+ "\n",
+ "def try_date(d):\n",
+ " try:\n",
+ " return datetime.strptime(d, \"%Y-%m-%d\")\n",
+ " except ValueError:\n",
+ " return datetime.strptime(d, \"%Y\")\n",
+ "\n",
+ "albums_df['release_date'] = albums_df['release_date'].apply(lambda d: try_date(d))\n",
+ "albums_df['gloom'] = albums_df['_id'].apply(lambda i: album_glooms[i])\n",
+ "albums_df.sort_values('release_date', inplace=True)\n",
+ "albums_df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 113,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\ng/4/Jzf7buWu9R8AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622aa361d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots()\n",
+ "ax.plot_date(albums_df['release_date'], albums_df['gloom'])\n",
+ "\n",
+ "fig.autofmt_xdate()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "One thing that's noticable is the split in time between the groups, and the much shorter period the Beatles were active for."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 114,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>name</th>\n",
+ " <th>release_date</th>\n",
+ " <th>gloom</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>15</th>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Please Please Me (Remastered)</td>\n",
+ " <td>1963-03-22</td>\n",
+ " <td>0.177208</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>14</th>\n",
+ " <td>3nkEsxmIX0zRNXGAexaHAn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>With The Beatles (Remastered)</td>\n",
+ " <td>1963-11-22</td>\n",
+ " <td>0.152913</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>12</th>\n",
+ " <td>71Mwd9tntFQYUk4k2DwA0D</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>A Hard Day's Night (Remastered)</td>\n",
+ " <td>1964-07-10</td>\n",
+ " <td>0.215407</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>11</th>\n",
+ " <td>7BgGBZndAvDlKOcwe5rscZ</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Beatles For Sale (Remastered)</td>\n",
+ " <td>1964-12-04</td>\n",
+ " <td>0.175109</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>10</th>\n",
+ " <td>19K3IHYeVkUTjcBHGfbCOi</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Help! (Remastered)</td>\n",
+ " <td>1965-08-06</td>\n",
+ " <td>0.220622</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>9</th>\n",
+ " <td>3OdI6e43crvyAHhaqpxSyz</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Rubber Soul (Remastered)</td>\n",
+ " <td>1965-12-03</td>\n",
+ " <td>0.212179</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>8</th>\n",
+ " <td>0PYyrqs9NXtxPhf0CZkq2L</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Revolver (Remastered)</td>\n",
+ " <td>1966-08-05</td>\n",
+ " <td>0.235002</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>7</th>\n",
+ " <td>1PULmKbHeOqlkIwcDMNwD4</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Sgt. Pepper's Lonely Hearts Club Band (Remaste...</td>\n",
+ " <td>1967-06-01</td>\n",
+ " <td>0.228461</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>6</th>\n",
+ " <td>6P9yO0ukhOx3dvmhGKeYoC</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Magical Mystery Tour (Remastered)</td>\n",
+ " <td>1967-11-27</td>\n",
+ " <td>0.268458</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>5</th>\n",
+ " <td>03Qh833fEdVT30Pfs93ea6</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>The Beatles (Remastered)</td>\n",
+ " <td>1968-11-22</td>\n",
+ " <td>0.246236</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>4</th>\n",
+ " <td>47bcKzmKgmMPHXNVOWpLiu</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Yellow Submarine (Remastered)</td>\n",
+ " <td>1969-01-17</td>\n",
+ " <td>0.178876</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>3</th>\n",
+ " <td>2Pqkn9Dq2DFtdfkKAeqgMd</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Abbey Road (Remastered)</td>\n",
+ " <td>1969-09-26</td>\n",
+ " <td>0.288493</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>2</th>\n",
+ " <td>2pCqZLeavM2BMovJXsJEIV</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Let It Be (Remastered)</td>\n",
+ " <td>1970-05-08</td>\n",
+ " <td>0.218608</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name \\\n",
+ "15 7gDXyW16byCQOgK965BRzn The Beatles \n",
+ "14 3nkEsxmIX0zRNXGAexaHAn The Beatles \n",
+ "12 71Mwd9tntFQYUk4k2DwA0D The Beatles \n",
+ "11 7BgGBZndAvDlKOcwe5rscZ The Beatles \n",
+ "10 19K3IHYeVkUTjcBHGfbCOi The Beatles \n",
+ "9 3OdI6e43crvyAHhaqpxSyz The Beatles \n",
+ "8 0PYyrqs9NXtxPhf0CZkq2L The Beatles \n",
+ "7 1PULmKbHeOqlkIwcDMNwD4 The Beatles \n",
+ "6 6P9yO0ukhOx3dvmhGKeYoC The Beatles \n",
+ "5 03Qh833fEdVT30Pfs93ea6 The Beatles \n",
+ "4 47bcKzmKgmMPHXNVOWpLiu The Beatles \n",
+ "3 2Pqkn9Dq2DFtdfkKAeqgMd The Beatles \n",
+ "2 2pCqZLeavM2BMovJXsJEIV The Beatles \n",
+ "\n",
+ " name release_date gloom \n",
+ "15 Please Please Me (Remastered) 1963-03-22 0.177208 \n",
+ "14 With The Beatles (Remastered) 1963-11-22 0.152913 \n",
+ "12 A Hard Day's Night (Remastered) 1964-07-10 0.215407 \n",
+ "11 Beatles For Sale (Remastered) 1964-12-04 0.175109 \n",
+ "10 Help! (Remastered) 1965-08-06 0.220622 \n",
+ "9 Rubber Soul (Remastered) 1965-12-03 0.212179 \n",
+ "8 Revolver (Remastered) 1966-08-05 0.235002 \n",
+ "7 Sgt. Pepper's Lonely Hearts Club Band (Remaste... 1967-06-01 0.228461 \n",
+ "6 Magical Mystery Tour (Remastered) 1967-11-27 0.268458 \n",
+ "5 The Beatles (Remastered) 1968-11-22 0.246236 \n",
+ "4 Yellow Submarine (Remastered) 1969-01-17 0.178876 \n",
+ "3 Abbey Road (Remastered) 1969-09-26 0.288493 \n",
+ "2 Let It Be (Remastered) 1970-05-08 0.218608 "
+ ]
+ },
+ "execution_count": 114,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "beatles_df = albums_df[albums_df['release_date'] < datetime(1971, 1, 1)]\n",
+ "beatles_df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 115,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\noB8AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622ae50128>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots()\n",
+ "ax.plot_date(beatles_df['release_date'].values, beatles_df['gloom'].values, linestyle='-')\n",
+ "\n",
+ "fig.autofmt_xdate()\n",
+ "\n",
+ "for a in beatles_df.itertuples():\n",
+ " for t in tracks.find({'album.id': a[1], 'gloom': {'$exists': True}}):\n",
+ " ax.scatter(a.release_date, t['gloom'])\n",
+ "\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 116,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>name</th>\n",
+ " <th>release_date</th>\n",
+ " <th>gloom</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>27</th>\n",
+ " <td>6400dnyeDyD2mIFHfkwHXN</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Pablo Honey</td>\n",
+ " <td>1993-02-22</td>\n",
+ " <td>0.345315</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>26</th>\n",
+ " <td>500FEaUzn8lN9zWFyZG5C2</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>The Bends</td>\n",
+ " <td>1995-03-28</td>\n",
+ " <td>0.341176</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>25</th>\n",
+ " <td>7dxKtc08dYeRVHt3p9CZJn</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>OK Computer</td>\n",
+ " <td>1997-05-28</td>\n",
+ " <td>0.352902</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>24</th>\n",
+ " <td>19RUXBFyM4PpmrLRdtqWbp</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Kid A</td>\n",
+ " <td>2000-10-01</td>\n",
+ " <td>0.343130</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>23</th>\n",
+ " <td>6V9YnBmFjWmXCBaUVRCVXP</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Amnesiac</td>\n",
+ " <td>2001-03-12</td>\n",
+ " <td>0.373617</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>21</th>\n",
+ " <td>1oW3v5Har9mvXnGk0x4fHm</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Hail To the Thief</td>\n",
+ " <td>2003-01-01</td>\n",
+ " <td>0.313755</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>20</th>\n",
+ " <td>6Eo5EkmdLvZrONzi046iC2</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>Com Lag: 2+2=5</td>\n",
+ " <td>2004-03-24</td>\n",
+ " <td>0.257476</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>19</th>\n",
+ " <td>36lJLPoPPOKNFddTAcirnc</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>In Rainbows Disk 2</td>\n",
+ " <td>2007-01-01</td>\n",
+ " <td>0.382191</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>18</th>\n",
+ " <td>7eyQXxuf2nGj9d2367Gi5f</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>In Rainbows</td>\n",
+ " <td>2007-12-28</td>\n",
+ " <td>0.324238</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>13</th>\n",
+ " <td>1DBkJIEoeHrTX4WCBQGcCi</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>The King Of Limbs</td>\n",
+ " <td>2011-02-18</td>\n",
+ " <td>0.282058</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>16</th>\n",
+ " <td>6vuykQgDLUCiZ7YggIpLM9</td>\n",
+ " <td>Radiohead</td>\n",
+ " <td>A Moon Shaped Pool</td>\n",
+ " <td>2016-05-08</td>\n",
+ " <td>0.382391</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name name release_date \\\n",
+ "27 6400dnyeDyD2mIFHfkwHXN Radiohead Pablo Honey 1993-02-22 \n",
+ "26 500FEaUzn8lN9zWFyZG5C2 Radiohead The Bends 1995-03-28 \n",
+ "25 7dxKtc08dYeRVHt3p9CZJn Radiohead OK Computer 1997-05-28 \n",
+ "24 19RUXBFyM4PpmrLRdtqWbp Radiohead Kid A 2000-10-01 \n",
+ "23 6V9YnBmFjWmXCBaUVRCVXP Radiohead Amnesiac 2001-03-12 \n",
+ "21 1oW3v5Har9mvXnGk0x4fHm Radiohead Hail To the Thief 2003-01-01 \n",
+ "20 6Eo5EkmdLvZrONzi046iC2 Radiohead Com Lag: 2+2=5 2004-03-24 \n",
+ "19 36lJLPoPPOKNFddTAcirnc Radiohead In Rainbows Disk 2 2007-01-01 \n",
+ "18 7eyQXxuf2nGj9d2367Gi5f Radiohead In Rainbows 2007-12-28 \n",
+ "13 1DBkJIEoeHrTX4WCBQGcCi Radiohead The King Of Limbs 2011-02-18 \n",
+ "16 6vuykQgDLUCiZ7YggIpLM9 Radiohead A Moon Shaped Pool 2016-05-08 \n",
+ "\n",
+ " gloom \n",
+ "27 0.345315 \n",
+ "26 0.341176 \n",
+ "25 0.352902 \n",
+ "24 0.343130 \n",
+ "23 0.373617 \n",
+ "21 0.313755 \n",
+ "20 0.257476 \n",
+ "19 0.382191 \n",
+ "18 0.324238 \n",
+ "13 0.282058 \n",
+ "16 0.382391 "
+ ]
+ },
+ "execution_count": 116,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "radiohead_df = albums_df[(albums_df['artist_name'] == 'Radiohead') & (albums_df['gloom'] > 0)]\n",
+ "radiohead_df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 117,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD2CAYAAAAtW8c3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXt8FdW1+L8LTOAIBaTGB68EQYRaW4OCtvWRCAjt1aJi\nq4hV2/Thz8ZXtVe9FoHS+qi2tWptrdLCrQWpz95rtfgi1se1iYDVCigKiTxNFMWCkVfW7489ISfh\nnOTknDNz5kzW9/M5n8xrz6ydmVmz9tprry2qimEYhhEtuuVaAMMwDCP7mHI3DMOIIKbcDcMwIogp\nd8MwjAhiyt0wDCOCmHI3DMOIICkpdxGZJCIrReRNEbkqwf7zRaReRJZ6v2+12femiLwhIudlU3jD\nMAwjMdJRnLuIdAPeBMYBG4Aa4GxVXRl3zPnAUap6SZuy+wEvA6MBAZYAo1V1SzYrYRiGYbQmFct9\nLLBKVetUdSdwHzA5wXGSYNtE4AlV3aKqHwJPAJPSltYwDMNIiVSU+0Bgbdz6Om9bW84QkVdE5M8i\n0ry/bdn1ScoahmEYWSQV5Z7IIm/ry/kfoERVjwSeBv67E2UNwzCMLLNPCsesA4bErQ/C+d73oKof\nxK3eDdwYV7asTdnFbS8gIqbwDcMw0kBVExnRKVnuNcBwESkWkULgbJylvgcROShudTKwwlteBEwQ\nkb5e5+oEb1siAdP+zZgxI6PyYftFqT5RqovVJ/y/KNUnlbq0R4eWu6ruFpFKXGdoN2COqq4QkVlA\njao+ClwiIl8FdgKbgQu8sh+IyGxcxIwCs9R1rBqGYRg+kopbBlX9G3BYm20z4pb/C/ivJGXnAnPT\nltAwDMPoNJEYoVpWVpZrEbJKlOoTpbqA1SfsRKk+mdalw0FMQSAiGgY5DMMw8gkRQTPoUDUMwzDy\nDFPuhmEYEcSUu2EYRgQx5W4YhhFBTLkbhmFEEFPueUBDQwM1NTU0NDTkWhQjAOx+R58g7rEp95Cz\nYMFCiotHMmHChRQXj2TBgoW5Fil0REkZ2v2OPoHd41znT/Di29XYm/r6eo3F+iv8U0EV/qmxWH+t\nr6/PtWihYf78+zQW6699+47WWKy/zp9/X65FShu739En2/fY050J9apZ7iGmtraWwsIS4HPels9R\nUFBMbW1t7oQKEQ0NDVRUXERj44Ns2fJbGhsfpKLiory14KN8v6PUusqEIO+xKfcQU1JSwo4dtcCr\n3pZX2bmzjpKSktwJFSLcC9EPmAJcCExBtU/eKsOo3m9zNbUQ6D1OZtIH+cPcMklpdjv06VOaF26H\n+vp6ra6uDsSVsHz5coVYqyYuxHT58uW+X9sv8u1+d4S5mvYmm/eYdtwyOVfsasq9Q4JUmJkQtP+7\nurpaY7EjPKXhfrHYZ7W6utrX6/pNOvc7rM9IdXW19u07utU96tOnNO/vUaZk636Zcjd8JxcWmlmF\njjB3Kts98pf2lLv53NPAOof2JhedgUVFRcyZcyexWDl9+owmFitnzpw7KSoq8u2aYaOlU3kxW7Ys\nobFxcag6le0e5ZBkWl9bW9aTgJXAm8BV7Rx3JtAEjPbWi4GPgaXe784k5YL5zGWBMFtJuSSXFlpY\nXRJBkC9uj658jxKxfPlynTt3bsb9Q2TilsFF1LzlKeoC4BVgZILjegPPAi+2Ue6vpnCNjCoYFNbE\nbJ/Kyku8Ds5DFWJaWXnJnn32cvuDPZP5R2Xlpd57MmKv96SzZKrcjwUej1u/OpH1DvwS+AqwuI1y\nfy2Fa6RduSDJFyspF7QomcUK1QqL9ygZa+34S9QibKJMtiO82lPuqfjcBwJr49bXedv2ICJHAoNU\n9bEE5UtEZImILBaR41K4XmiJahxyNmjxuZcBY4AyCgqKWbZsWah9wlFg6tSzqKtbyVNP3UVd3Uqm\nTj0r1yIZSaiurgYGE983BYO87dklFeWeaAqnPXPiiYjgrPYrEpTZCAxR1aO8/fNFpHeasuYc6xxK\nTrIPHxDZUZdhoqioiDFjxtizGHLGjh2Ls5Vb3hNY523PLvukcMw6YEjc+iBgQ9z6p4DDgSpP0R8E\n/EVEvqqqS4EdAKq6VETeBkbgOldbMXPmzD3LZWVloZ3odurUsxg//iRqa2spKSmxl8mj+cNXUVFO\nQUExO3fWMWfOnZSWlnpKvwroBWyz1o7RZRk1ahSVld/hjjuOxanSdVRWfodRo0alVL6qqoqqqqqU\nju1wgmwR6Q68AYzDWeLVwFRVXZHk+MXAD1R1mYjsD2xW1SYROQTX4XqEqn7Ypox2JIeRHzQ0NOz1\n4bv44su4447f4Zqja6ms/A633/6rnMppGLlkxYoVVFdXM3bs2JQVeyLamyC7Q+XunWAS8CucG2eO\nqt4oIrOAGlV9tM2xzwBXepb6GcCPgZ3AbuC6RH55U+7RpaGhgeLikTQ2Lsa5Zl4lFiunrm6ltXoM\nI0PaU+6puGVQ1b8Bh7XZNiPJsSfFLT8EPJS6qEbUaO5obWzc2+duyt0w/MNGqBq+YhFGhrE3NhOT\nkfdYhFEwWEqM/CGoFMgp+dz9Jt987ok6DY32sf+ZfyxYsJCKiosoLHStpDlz7rRY95CS7T6o9nzu\nZrl3klxMPBAFq8zisP0h7InDjNa48R0DaT2IaYDNxNQeQSjAXLxINouN0R5RnpovivTu3ZvGxreI\n74NqbHyb3r2zP7YzEso9KAUY9IsUtTlCjexjHdb5xdatW4nFDgLKgdFAOT17HsjWrVuzfq28V+5B\nWtNBv0hRmyPUyD7WYZ1fOF2xBXgQuAt4EJGPfNEhKcW5h5kg46iTDbH360VyTbiNwEs0d7588smx\nvjThjPzFUmLkDy06ZIrvOiTvo2VyMQIyqMiPmpoaTjyxgsbGV/dsi8WO4Nlnf8+YMWN8u64fWLSM\nYbSQrfch0tEyuWiWBhX54Zpq62mdQW5D3vlTrVO4c6xYsYJ58+axYkXC9E1GBAhEhyRL9B7kjyxM\n1hHVmX7yfSIGmymoc6Q7S09Un3+jfchkJqYgftlQ7lEmn19cm70qddKdpcdmuuq6tKfc894t0xXI\n5wFAFqqXOunM0pMvg5iiMBAv3zDlbviKheqlTjqz9OTDICbrc8kNeR8tY+QHFi2TGhdffCl33HE3\n8bP0tDexSdjz5Yddvnwn43zuhpEqyZR4UVGRvcwpcPvtv+Kiiy5MeZaeoMdedBbL5587zHJPA7NC\nE9NedkL7n/lLWP+/Zrn7S8Zx7iIySURWisibInJVO8edKSJNIjI6bts1IrJKRFaIyMmdFz9cmP8w\nMe117Nn/rOtifS45JFkYjbaEKXYD3gKKgQLgFWBkguN64ybAfhEY7W0bBSzDuX9KvPNIgrL+xwxl\nAYvZTk6ykMdFixbZ/8xn8iEUMp/DecMMGYZCjgVWqWqdqu4E7gMmJzhuNnATsD1u22TgPlXdpaq1\nwCrvfHlJPkQm5IqWkMcqoAaoYufOOm9vMPmruyL5EgqZz+G8+Uoqyn0gLj6rmXXetj2IyJHAIFV9\nrIOy69uWzScsZjs5RUVFVFR8A/gKcC7wFSoqzmXw4MGB5a/uipjBYSQjlWiZRM76Pb2fIiLAL4Hz\nO1s2npkzZ+5ZLisro6ysLAXRgiXskQm5pKGhgTlz/kh8Bss5c8o59dT/IBY7iMbGcpxnr863/NVR\noTOdoyUlJTQ2vo37eDZnDl1tBkdEqaqqoqqqKqVjU1Hu64AhceuDgA1x658CDgeqPEV/EPA/IvLV\nFMruIV65hxlLr5qYZCFvji3AHO9vX0QqTPkkIZ35UFV3A2W4bq1ab92IIm0N31mzZiU/OJkzXls6\nO7vT0qFaiOtQHdXO8YuBUm/5M7gO1UJgKHneoWokp73O5nSTYQVFWDr70umwb+nIrleoVqi33D1d\nCDLpUFVnBlQCTwCv4zpIV4jILBE5JVERPHeMqi4H/gwsBx4DLvIEMiJGspA3IM5d8wbwEnPm3Bua\nDr8whWmm4z9v6QfaCIwBNlo/kOFIpvWD/GGWe7uExbJMhbayhjkrZNhCW9OVJ9/TQhvpg6X8zV/m\nz79Pe/Tooz17DtEePfrk3YsbhAJN9+MXxg9Puoo6nwwAI3v3y5R7nlJfX6/dusVa+au7deuZdy+w\nn5Zl87l79fp8p88dNstdVXX16lqdMuVqHT36Mp0y5Wpdvbo2Z7IY/nDrrbdr9+6Ha/fuX9bu3Q/X\nW2+9Pe1zmXLPUxYuXJhw8oaFCxfmWrRO44dlWV9fr4WFfVv9fwoL+3bqGmFyaaxeXavDhl2hsNWr\nz1YdNuyKlBS8We75QU3NEoUzWt1jOENrapakdT5T7nnKbbfdpnBoK7cBDNfbbrst16KFgkWLFikM\nb/P/GaaLFi3q1HnCohinTZsZ99Lrnpd/2rSZ7ZbLh/QDhmPixIsT3uOJEy9O63ztKffITNYRxZle\nxo8fjxsqED95w3pvu+HYQOv/z8ZOnyEsQ+PXr28CerXZ2osNG5qSlsmX9AOG49//7kWie7x1a9tt\nmRMJ5R50OFtQH5JRo0ZRWfkd4FhgBHAslZXf6TDHd9hYs6aOc8+dRXn5DM49dxZr1tR1XCgFSktL\nKSjohhvAMxooo6CgG6WlpVk5f9AMHNgN2NZm6zYGDEj+mlr6gfzhww9h7dqeJLrHJSU9s3/BZCZ9\nkD8ycMsE3SmWiybw8uXLde7cuR1OlBxGMvEjp0K+RxPFs2JFre6zT+f+V2HsFDb2prpadehQ1fPO\nq9VDDsne+0CUfe7V1dUaix3RyocVi33Wl3C2XL1IYfEJp0O6fuRUySRaJmxcf73qySfX6rRpM/WL\nX7xOCwtn6iuvdPzSh6lT2GhNU5PqrbeqFhWpPvCA27Z6tbvH5eXX6bRpMzMydCKt3JcvX54wosQP\nKzcXcdH53ln2pS9d3Uaxu9+XvnR1xueOktW6YYPqpz+t+tZbLdumTVO95ZbUyuezARBVNm9WPe00\n1aOPVn37bX+u0Z5yz3uf+9atWykoKALKcX7XcgoK9vcl62DQKX+j0FnWu/c2EvkY3fbMiJK/+dpr\noaIChg1r2XbZZXD77bBrV8flw9IpbDiqq2H0aBgyBJ5/Hg45JAdCJNP6Qf7IiuW+WF3ipMW+We6q\nwTaBwziCsrO4uN4L2sT1fi3tuN54omK5v/yy6kEHqW7Zsve+L32ppTlvhJ+mJtVf/tK5YR580P/r\nEWW3THV1tRYUHOgp+EMVYrrPPkW+KsCgmsBRUV4DBvxTu3Ur1+7dv6wip+ugQcv0k0+yc+7Kykta\n3fuwZZzsiKYm1eOPV/3d7xLvv/9+1eOOC1YmIz02b1adPFl1zBjV1auDuWaklXvQlnvQ5Htn2bJl\nqkOGqG7a5D6I775br2ecoXrhhZmfu+Xj13Lv8+3jd//9qp//vOquXYn379zp/n81NcHKZXSOl15S\nLSlRvewy1e3bOz7ecsukQJDRMs0E3XmVz51ll16qOn16621btqiOGKE6b15m5853t1Vjo1MIzzzT\n/nE33+w6V43w0dSk+vOfOzfMww+nViabQRKRVu5dIc49X5X79u2qBxzQOgKkmddeU91/f9V//jP9\n8+e72+r661VPP73j4zZvVu3XT3X9ev9lMlLn/fdVv/pV1bFjVdesSa1Mtp/ZSCt31eBcF7lwA+Rz\nKOQjj7TvL/7Tn1SHD1f94IP0r5GvbqtEoY/NJPqYf//7qtdeG6CARrv83/+pFherXn55am6YZrLd\n2sxYuQOTgJXAm8BVCfZ/DxcfuAz4OzDS214MfAws9X53Jjl/WhWLJ4hRnM4FdIhCf4XRCv21Z88S\n39wA9fX12qNHP4VLFa5TuFR79OiXN5bp6aer3nNP+8dUVrpOqN27079OPrZsvvUt1R/+cO/tyT7m\nb7zhmv4ffxywoEYrmt0wBxzgjJfOEirLHZd/pnkO1QLcHKoj2xzTO275VOBxbVHur6ZwjbQq1kxQ\n1m2QA6ZUVR9++C8q8vVWYYQiX9eHH/6LL9fLJvX1qn37Jg7vi2f7dtVjjlG98cZg5AoDS5a40McP\nP2y9vaMX/5RTVO++OwcCG6rq3DCnnto5N0wiWkZVf85Xn3sqg5jGAqtUtU5VdwL3AZPbxMrHjxjq\nDcSnsZMUrpE2QQ702bp1K7HYcOIHzcRiw3wZMAVw990vofp7WrLI9UL199x550v4dMmssWABnHIK\n9OnT/nGFhXD//XDrrfDMM8HIlktU3eCkH/8Y+vZtva+jQVmXXeb+T84eMoLk//7PDUo69FB47jnI\ndNyiahOw3fvrD/ukcMxAYG3c+jqcwm+FiFwE/ABn3Z8Ut6tERJYAHwHTVfX59MXdm+YXorFx7xci\n26P13EjU9TgP1Oe8vxuyMkJ1yxZYssSNbGv+vftuAYnSgz7/fAFFRdCzJwwe7EbBDR6892/QIOjR\nI2PR0mLePLjpptSOHTwY7r0Xpk2Dl1+GgQP9lS2XPPigu9ff+tbe+1qPgHbPV/wI6JNOAhF46imY\nMCE4mbsyTU3wi1/AzTfD3XfDV7+a2fmajdFPPnmW5ntcUVHO+PEnZV1fpaLcE1nee9kOqnoncKeI\nnA1MBy7AJdceoqofiMho4BER+UwbSx+AmTNn7lkuKyujrKwsFfkpKSlh27a3gMuAvsAWPv74bV9S\nAhQVFTFnzp1UVJRTUFDMzp11zJlzZ6dvyvbt8OqrLUq8pgbeeQeOPBLGjoWvfx1uuQWmT+/G/Pnb\naK3gt3HGGd344x/h/fdh7drWv8cfb1nesAH22y+58h88GA4+GPZJ5SnoBK+9Bg0NUF6eeplx4+Di\ni+FrX4OqKmfRR41PPoEf/hB+/3vo3n3v/R09XyIt1rspd/95/3244AL3LFdXQ3Fx5ufM1Bitqqqi\nqqoqpWuJdtDGE5FjgZmqOslbvxrn50lol4mIAB+oar8E+xYDV6jq0jbbtSM5kvHyy0sZM+YnwB9x\nSnAb8A1qan7E0UePTuucHdHQ0EBtbS0lJSUd3pCmJli1qrVF/q9/wfDhTpGPHQtjxsDhh0NBQeuy\na9bUMWHC7bz99qw9dRs2bAZPPnkxQ4d2/KTt3g3vvrv3B+Cdd1qW33sPDjooufIfMgSKipxi6Yg1\na+qYPn0uf/97E336dON///eClOSM/1+ddhoMHQq/+lXKxfKGG2+Ef/wDHn64/ePae74aG52See45\nOOwwH4Xt4rz4Ikyd6oyN66/PnrHR0NBAcfFIGhsX02y5x2Ll1NWtTMtyFxFUNeHbmYpy7w68AYzD\nWeLVwFRVXRF3zHBVfctbPhXnfhkrIvsDm1W1SUQOAZ4FjlDVD9tcI23lPmnSJSxadANtrdsRI2Zx\n9dU/49Ofhv33b/n16wfdMkiX1qzA1q9vYuDAbsye3VqBbdjQ2iKvqXHWc7MiHzvW+e56pTjxSvP1\nNmxoYsCAva+XKTt2OJnb+wBs3epcPMmU/+DBsHlzHSefnP6HqJkPP4Sjj4af/ATOPjtr1cw5mzbB\nZz/rlHt8crB0mD4dNm+GX/86O7IZLTQ1wc9/7lrO99wDp56a/WssWLCQioqLWrXOpk49K61zZaTc\nvRNMAn6Fi5yZo6o3isgsoEZVHxWRW4HxwA7gA6BSVVeIyBnAj4GdwG7gOlV9LMH501buxx13DS+8\ncMNe2wcM+BETJvyE99931mnz79//dsp2//3ZS/HHr8cvN38QElnSAwbM4JxzLubtt4uprnaWVbwi\nHzMGDjggraqFho8/hnXr9v4AxH8EGhtnsWvXlbT9yE6bdgv33jujU9d75RXndnj2WfjMZ7JalZxR\nUeGeqZ/9LPNzbdjgWnqrV7tn2cgO770H55/vPpwLFzrDxS860/pvj/aUe0reVlX9G3BYm20z4pYv\nS1LuIeCh1EXtPCUlPXnhhb390uXlBcydu/fxu3a5m/fee+yl+N99F15/vWW9eX/zB2HHjrl89NEs\n4qNXNmyYxaOP3sKMGTO4+WaX2jMVF0Y+se++MGKE+yXj+OObeP75zs3/mYwjj3QdWGec4Vo+n/pU\np08RKpYuhb/+Fd54IzvnGzDARSLdc4/z4RuZ88ILzg1z9tnw05/u7SLNNkVFRf6nZ04WIxnkjwzi\n3P2exk3VJW96913V0tJrWo0sy+bEE/mOHzMuffe7qmee6QaO5CtNTaonnKB6113ZPe/LL6sOHuye\nzXwgrAPNdu92YywOPFD10UdzLU3nIerpB1avrtUpU67Wo466TKdMuTqrij2eiRMvTqjAJk682Jfr\n5RN+fGQbG1WPOkr1F7/IoqAB88ADqp/7XPKsj5lw3HGqf/5z9s+bbcKaQqOhQfXLX1b94hdV33kn\n19KkR+SVe1DzaD7xxJMKp2nriSdO0yeeeNKX6+Ub2Zwbspk1a9xQ77//PXP5gqax0U2K3FHWx3R5\n8EHVL3zBn3Nni7Amd3vuOdVBg1T/8z9Vd+wI/vqW8jcF6uvrtbCwb6uHp7Cwry8PT3V1tfboMVjh\ncIUvKxyuhYWD8ibFbL7y+OOqAweqbtyYa0k6xw03uDk0/WLXLpcy+KWX/LtGpoQtLfPu3e6+HHig\n6l//mhMRsmqMRlq5L1q0SGF4G1fJMF20aFHa50xGriaHCKu/MkhmzHC+63zxMW/c6LI+rlrl73V+\n/nPVqVP9vUYmhMlyr69XnTTJTV2YKzdMto3R9pR73k+Q7dhA/KTVLhw/+zSPIIzFptCnz/eIxaak\nNUK1MyxYsJDi4pFMmHAhxcUjWbBgoW/XCjPXXeeidq65JteSpMaPfgTf/KYbrOYnFRXw17/Wcfrp\nsygvn8G5585izZo6fy/aCVremXL69BlNLFbu+zuTiOeec+NLjjwSFi92YzNywbJly9ixo4j4/EE7\nduzPsmXLsn+xZFo/yB8ZumUKCnor7KdQqrCfFhT09tUysDlUc8N77zk3RBATD2fC0qWu2d8266Mf\nrF5dq336+Bstlg1y1frcvdtNinLggaqPPRbopRPiPA37tsksu2/angai7JZRdT6snj37aa9eI7Rn\nz36h6Y3PlLD5K8NATY3La75yZa4lSYxfoY/J8CMENSrU16tOnOjcMGvX5loaR7aN0faUeyTcMlOn\nnsU777zJ4sX38s47b6Y9lDdstM4SCG2zBHZFmlMTTJkC27blWpq9eeghl0KhoiKY661f30SizKHp\nDB6LEn//u3PDjB7tEtENGpRriRxFRUXMm3cPPXsqvXpto2dPZd68e/xxUyXT+kH+yMJMTFElX6eR\n85OmJtXzz1c95xy3HJYO5+bQx6efDu6aySz3ceO6puW+e7fqT37i3DCPP55raZITRChkSrll/CaT\n3DJdgWzloYgSH38MX/wilJYuYeHCkyksdK2cTJIwZcpNN7lJHR55JLhrJsp3dOCBM+jR42IOPbSY\nn/4UjjkmOHlySX09fOMbLr/TggXRnhegmYwTh/lNNpT7ihUrqK6uZuzYsYwaNSpLkhlhprr6fY45\npg6Yj1NsW+jRYx5r174Z+EewOevjSy/5HyHTlkSZQwcNKmbuXDfj0+jRzpV1xBHByhUkzz7rJns5\n/3yYNSv7cxSElfaUe85dMpoFt0xl5aXq5jYdoRDTyspLMjqfkR+4OWbP0zDMMVtRoXrllYFftkMa\nG1V/+UvnpjjnHP/j7oNm1y7V2bPdnLR/+1uupQkeohwtE/Sk1UZ4mDLl6oT+5ilTgk3kFmToY7p8\n9JFTgp/+tOp3vpO/uVTi2bRJdfx4F520bl2upckN7Sn3vI+Wqa6uBgYTPygABnnbo0FDQwM1NTW+\nTPqdbYKU9f33C0kUKbJ5c3Bz9KnC5Zc7V0DbCa/DxKc+5QZWvfmmyyt/5JHwgx+4KeTykcWLnbvp\n2GPh6ae7hn+9s+S9ch87dixu/u74EarrvO3+EKQCy6cRqkHLOnBgN9y0ivFsY8CA4B7rhx928wME\nFfqYKf37ww03uKked+6EkSPd6N8tW3ItWWrs3u36Ec45B/7wB5g9u+v41ztNMpNeW7tNJgErgTeB\nqxLs/x5Oqy4D/g6MjNt3DbAKWAGcnOT8GTVNKisv8Vwzh/rucw8yfWk+jVDNRd6dRGmGi4qCG535\nySeqhxwSbOhjtlmzRvWb33QDw268UXXbtlxLlJxNm1THjVM98UTV9etzLU04IBOfO866fwsoBgqA\nV+KVt3dM77jlU4HHveXPeAp/H6DEO48kuEbGlVy+fLnOnTvXV1970Mo2n0aoVldXayx2iEJ/hdEK\n/bVnzxLfZY1PMzxp0kzdf/9a/egjXy+5hxtvVJ08OZhr+c2KFapf+5rqwQer3nGH6vbtuZaoNU8/\nrTpggOr06fmTPC4IMlXuxzYra2/96kTWe9z+qcBfEx0LPA4ck6BMEP+HjAla2eaT5R6Wju3zzlO9\n9lr/r9Oc9fHNN/2/VpAsWeImsCgpUf3DH3KvSHftUp050310nrRpE/aiPeWeinNyIM6p3cw6b1sr\nROQiEXkLuBG4JEnZ9YnK5gtBpwMIS0a9VNi6dSux2HDiO7ZjsWFs3bo1UDl++lP4zW/cpN1+Mn06\nXHABHHqov9cJmtGj4bHH4I9/hN//3sXGP/AANOUgm8GmTXDyyS59wJIlMH588DLkNcm0vrZY1WcC\nv4tbPxf4VTvHnw3M9ZbvAM6J23cPcHqCMkF85LJCLtIBhGV4fXuEqZXxox+pnnuuf+dftsyFPn7w\ngX/XCANNTS52fPRo93vsseDms212w1x3nT9TFEYF2rHcU+lnXgcMiVsfhEugnoyFwG/jysZnTk5a\ndubMmXuWy8rKKCsrS0G04Jk69SzGjz8p0HQAgcyUniHNrYyKinIKCorZubMuZ62M//xPOOwwePll\nl2gsm6jCZZe50Md+/bJ77rAhAhMnOuv5oYfgiivg+uvd7/jj/bnm7t0uAuZ3v4P//m+z1ttSVVVF\nVVVVagcn0/raYlV3p6VDtRDXoTqqzTHD45ZPBaq1dYdqITAUHztUgyQfLOlcEZb/zd13u8Et2bY0\nH3xQ9Ygjcu+LzgW7dqnOm+f88ZMmqb78cnbPv3Gjanm5+23YkN1zRxUyHaGKC4V8AxfSeLW3bRZw\nird8K/AibX9RAAAYGklEQVQvYCnwdLzyx4VCvoWPoZBBEtaZ3I3W7NrllPBDD2XvnM2hj089lb1z\n5iPbt6v++tfObXLmmarZ6DN/8knXaTpjhrlhOkN7yj0yicOCoKGhgeLikTQ2LsZ1HL5KLFZOXd3K\n0LtNuiJPPAHf/z68/joUZmHQ6s9+Bi+8AH/5S+bnigIffwy//jXcfDN85SswYwYMHdq5czQPSrr7\nbteJO26cP7JGlfYSh+X9CNUgqa2tpbCwhPiIkIKCYmpra3MnlJF0xPDJJ7tolt/8JvNrvPuuU+63\n3JL5uaLCvvvCD38Iq1ZBcTGMGQOVlbAxwRTGie7Rxo3Op/7887B0qSn2bGPKvRPYzEjho6OUBzff\n7MIjN2/O7DpRDX3MBn37ug7mFSugZ0+X+viqq+D9993+RPfoySfhqKOgvNy1sA46KLd1iCLmlukk\nCxYspKLiolYRIVGZ1i/fSNVNduGFzsr8xS/Su84rr8CkSbByZfQjZLLBunUuf/wDD8C3v72NX/7y\nMHbsOBPoC2yhW7deHHDAj5k/vzvl5bmWNr+JfD73oAlLREhXp2XEcL2Xz6Y+4YjhTZvcaNJ0cpk3\nNblcJr/5TXZk7kqsWqV6wgnLFC5rlf8Hvq9/+MOjuRYvEhDllL+5oKioiDFjxlgnao4pKSnh449X\nAYcBFwKH0di4ai832YEHuhjtq6/u/DUeecS5F7797SwI3MUYPhyKihYCP6ElNXMv4CYeffT53AnW\nRTDlbuQ1It2AKmAJUIVI94THXXYZ1NTAc8+lfu7t2+HKK+HWWy2tbLqEIed+V8WUu5FVgsx1X1tb\nSyw2jPjopZ49D0kYvRSLuZGVV1yRep6U225znYMWxZE+Yci531Wx/7CRNYKerKOz0UtTp7q/993X\n8bnffRduuslCHzNl9uwLGDZsBi0KfhvDhs1g9uwLciZTV8GiZYyskKsBXp2NXnr+eZg2zUW+xGLJ\nz/vd77qp6X7+cx+E7mKsWVPH9Olz2bChiQEDujF79gUMHVqca7EiQXvRMqbcjaxQU1PDhAkXsmXL\nkj3b+vQZzVNP3cWYMWN8vXZDQ0OnErlNmeISil1zTeL9Fvpo5As2QtXwnXwa4HXTTc4ir6/fe596\nE17PnGmK3chvTLkbWSFXE4uk4+cfPhzOO8/lQmnLI4/Ae+9Z6KOR/5hbxsgqyVwknXWdpHqtdP38\nmzfDyJGweDEcfrjbtn07fOYz8NvfwoQJWRHRMHzF3DJGYCQa4OVXFE0midz694drr3WJr5q57Tan\n6E2xG1HALHfDV/yMosn03Dt2wIgRdQwbNpdPPmni5Ze78dhjFzBunEVyGPmBWe5GzvAzTXKmfv71\n6+v45JPbeeaZK3nxxVns2HEl3/ve7axZU5exbIaRa1Ky3EVkEm62pW7AHFW9qc3+y4FvAzuBBuBb\nqrrW27cb+CcgQJ2qnpbg/Ga5R4S2vvUg4t/T9eefe+4s/vSnK2k9PH4b06bdwr33JuhtNYyQkZHl\nLi55xx3AROBwYKqIjGxz2FLgKFU9EngQuDlu3zZVHa2qpYkUuxEdEvnWcxVFkwrr1zeRKO/Jhg0p\n5icwjBCTiltmLLBKVetUdSdwHzA5/gBVfVZVP/FWXwIGxu1OnGvYiBQNDQ1UVFxEY+NitmxZQmPj\nYioqLqKhoYGpU8+irm4lTz11F3V1K7Oa/z6TzlrLe2JEmVSe4oHA2rj1dbRW3m2pAB6PW+8hItUi\n8qKITE5WyMhvOvKt+5Emub0PSipY3hMjyqSSyDSR5Z3QQS4i5wJHASfGbR6iqptEZCjwjIi8qqpr\nOi9q+/gRR22kTusRqs637vcI1eYPSmPj3h+UVJ6BoUOLefLJi5k+/Za4vCcXW94TIxKkotzXAUPi\n1gcBG9oeJCLjgWuAEzz3DQCqusn7u0ZEqoBSYC/lPnPmzD3LZWVllJWVpSI/0JI8qrDQKRib+i54\nmn3rFRXlrZJ4+fmhzcYHZejQYus8NfKGqqoqqqqqUjq2w2gZcbMfvAGMAzYC1cBUVV0Rd0wpcD8w\nUVXfjtveD/hYVXeIyP7AC8BkVV3Z5hppR8vkKhuhkZigW1A2p63RlWkvWqZDy11Vd4tIJfAELaGQ\nK0RkFlCjqo8CP8OFHdwvIvEhj6OAu7xwyG7ADW0Ve6Zk2jQ3sktRUVGg//epU89i/PiTzCVnGG3I\n+xGqZrkbhtFVifQI1TDHURuGYeSKvLfcmwnS12uROYaf2PNlpEqkLfdm/IijTkTQ84QaXQt7voxs\nERnLPQjMv98xZnWmjz1fRmfpEpZ7EPiZ4TAKmNWZGfZ8GdnElHsnyKd5QoMm01QAhj1fRnYx5d4J\nLDInOWZ1Zk6Un6+GhgZqamrsYx8g5nNPA/Mr7435i7NH1J4vSw/iH+353E25G1nDUgEYbbGPvr9k\nlH7AMFKlvVQAUbNGjdSw9CC5w3zuRlZJNN7Aomi6LtZJnDvMLWP4ijXLDXPX+Ye5ZYycYc1ywzJ3\n5gZT7mlg/uPUycUMTV2RsD+TQaeCNszn3mnMf9w5ohy7HRaan8ny8u/YM2nswXzuncD8x+njp2UZ\ndqvVTxoaGhg06FB27Pg7zc9kYeEJrFu3KlT/i658j/wk49wyIjJJRFaKyJsiclWC/ZeLyOsi8oqI\nPCkig+P2ne+Ve0NEzku/GrnHRmGmj19ZO7t6S2rZsmXs2FFE/DO5Y8f+LFu2LJditaKr36Ocoart\n/nAfgLeAYqAAeAUY2eaYE4Ge3vKFwH3e8n7A20BfoF/zcoJraD5QX1+vsVh/hX8qqMI/NRbrr/X1\n9bkWrUti90N10aJFCvu2+h/Avrpo0aJci6aqdo/8xtOdCXV3Kpb7WGCVqtap6k7gPmBymw/Es6r6\nibf6EjDQW54IPKGqW1T1Q9w8rJM6+f0JDeY/DhfZaknlc96T0tJSCgq6AWXAaKCMgoJulJaW5lYw\nD3cvBhJ/j2BAl2/tBvHMpaLcBwJr49bX0aK8E1EBPJ6k7PoOyoaeqVPPoq5uJU89dRd1dSsDidfN\nZ+XjJ9kYIJPvLoOioiLmzbuHnj2VXr220bOnMm/ePaExOHr37k1j41vE36PGxrfp3bt3LsXKKYE9\nc8lMem1xmZwJ/C5u/VzgV0mOPRd4ESjw1q8E/itu/4+AyxOU87nxkr/Mn3+fxmL9tW/f0RqL9df5\n8+/LtUihovn/06dPaaf/P1FyGdTX12t1dXXoZK+urtZYbKhCf4VShf7as2eJVldX51q0nJDtZ452\n3DKpxLmvA4bErQ8CNrQ9SETGA9cAJ6hz3zSXLWtTdnGii8ycOXPPcllZGWVlZYkO61LE50h3g4Be\npaKinPHjTwqNZZZrMhkgE6UBVmGNI3etqC3Ag0AvYBsiU7rsOIdMn7mqqiqqqqpSu1gyra8tVnV3\nWjpUC3EdqqPaHFPqHTOszfb4DtXm5X4JrpHWVyvqVFdXa9++o70vvPv16VPaZa2ebBMlyz3MZNK6\nihpBWu4dKndXnknAG8Aq4Gpv2yzgFG/5SWAjsBRYBjwSV/YCr9ybwHlJzp/efyri1NfXa2Fh31YP\nQmFhX1M+WcQUTzCE1W2UC7L5zLWn3G0QU4hpaGhg4MBD2LmzACgBaiko2Mn69atD2QTPV2yAjRE0\n2XrmLHFYnlJbW8u++45gy5a/AbVACbHYxLz0CYeZsPqrjegSxDNnuWVCTEuo30ZgDLDRkm4ZhpES\nptxDjA2aCoYojCOIQh2M7GI+9zzAfML+EYXJm6NQByM9bIJsw0hAFLJ8RqEORvpknBXSMKJIFLJ8\nRqEOhj+YcjfynnT9zVGYvDkKdTD8wZS7kdcsWLCQIUNGUF7+DYYMGdGpJExR6LCOQh0MfzCfu5G3\nuEFew9i5cx9gKLAmrUFeUeiwjkIdjM5jg5iMSLJs2TJ27twNPE/L5NtfYNmyZZx88skpnycKg5ii\nUAcju5hbxshzBtB6IoiDcyiLYYQHU+5G3lJaWkphYQPxnYmFhe+FZhYiw8glptyNvKWoqIi5c+8i\nFiunV6/PE4uVM3fuXeaeMAysQ9WIANaZaHRVbISqYRhGBLERqoZhGF0MU+6GYRgRJCXlLiKTRGSl\niLwpIlcl2H+8iCwRkZ0ickabfbtFZKmILBORR7IluGEYhpGcDgcxiUg34A5gHLABqBGRv6jqyrjD\n6oDzgSsTnGKbqo7OhrCGYRhGaqRiuY8FVqlqnaruBO4DJscfoKrvqOq/gES9ogmd/YZhZA+brMNo\nSyrKfSCwNm59nbctVXqISLWIvCgikzs+3DCMzrBgwUKKi0cyYcKFFBeP7FTyNCO6pJJbJpHl3Zm4\nxSGquklEhgLPiMirqrqm7UEzZ87cs1xWVkZZWVknLmEYXZOGhgYqKi6isXExjY0uv05FRTnjx59k\nMf8RpKqqiqqqqpSOTUW5rwOGxK0PwvneU0JVN3l/14hIFVAKtKvcDcNIjebJOpxih/jJOky5R4+2\nhu+sWbOSHpuKW6YGGC4ixSJSCJwN/E87x++x9EWkn1cGEdkf+CKwPIVrGoaRAjZZh5GMDpW7qu4G\nKoEngNeB+1R1hYjMEpFTAETkaBFZC5wJ/FZEXvOKjwJeFpFlwNPADW2ibAzDyACbrMNIhqUfMIwI\nYPl1uiaWW8YwDCOCWG4ZwzCMLoYpd8MwjAhiyt0wDCOCmHI3DMOIIKbcDcPwHct9Ezym3A3D8BXL\nfZMbLBTSMAzfaGhooLh4JI2NiwGX+yYWK6eubqXF42cBC4U0DCMnNOe+cYod4nPfGP5iyt0wDN+w\n3De5w5S7YRi+Yblvcof53A3D8B3LfeMPllvGMAwjgliHqmEYRhfDlLthGEYEMeVuGIYRQVJS7iIy\nSURWisibInJVgv3Hi8gSEdkpIme02Xe+V+4NETkvW4LHk+qEsflClOoTpbqA1SfsRKk+mdalQ+Uu\nIt2AO4CJwOHAVBEZ2eawOuB84E9tyu4HXAeMAY4BZohI34wkTkCUbihEqz5RqgtYfcJOlOrju3IH\nxgKrVLVOVXcC9wGT4w9Q1XdU9V9A25CXicATqrpFVT/EzcM6KSOJDcMwjA5JRbkPBNbGra/ztqVC\n27LrO1HWMAzDSJMO49xF5EzgZFX9rrd+LjBGVS9NcOwfgP9V1Ye89SuBQlW93lv/EbBNVX/ZppwF\nuRuGYaRBsjj3fVIouw4YErc+CNiQ4nXXAWVtyi5OVTjDMAwjPVJxy9QAw0WkWEQKgbOB/2nn+HhF\nvQiYICJ9vc7VCd42wzAMw0c6VO6quhuoxHWGvg7cp6orRGSWiJwCICJHi8ha4EzgtyLymlf2A2A2\n8DLwD2CW17FqGIZh+EgocssYhmEY2SWvRqiKSGR88yLyKe9vJOrkjYeIBCKyv/c3EvemmajUR0S6\n51qGbCEiXxKRYX6cO/QvpIh8VkQmisg+UUgdKSKjReQBoAIgn+vk1eUcAFVtyrU8mSIipSLyGHA5\n5Pe9ARCRL4jIbSJyAUSiPkeLyB+B6/xSiEHhvTtPAM8AWR/YCSFW7iKyn4jcCdwLfBe4IZ9vqIh8\nWkRuB+7EzTm2j7c976wQccwGngauEJEvedtD+zy1h4h0E5F5wB+A+ap6ba5lyhQvhPkOXEDEeBH5\niYh8NsdipYV3f+4A7sI9cwcDM0Vk39xK1nlEpEBE7gJ+B9yGCzAp8/Zl9f0J88t4JbBdVY8Evo1L\nfZDPzcqbccbTsTir/Ruwp8M6r/AswOXAWcCvcR/fvLXePbn3A5ar6r0AIlKU526Mw4GHVPWPuHfp\nGOBrItIvt2J1Hu/+PAOMU9W5wM9wo+F35VKuNOkBPAscr6qPAg8CozzPRFbfn1ApdxEZGvc1/qmq\nXu4tnwz0Bw5v9lXnA159Yt5qpape4i03AMtF5LAcidZpROTrIvIDEfmit2kh8CTwEtBDRKZ6x+VF\nSySuPsd5m84HThaRH4rIYpxV9TsRyYtpg+Lq8wVv02bcfemrqpuAd3HjVY7NmZCdQESOFZERzeuq\n+pCqfigiE3DRdwcD14vIqJwJmSJt6rJNVeeraqO3vg+wW1V3RdJyF5ESEXkcuAf4o4gcpqofe/vK\ncJbHPOB0nL9tUM6ETYE29bk3vj4eCgwAmusYWgtRRLqLyHVAczbQu0TkDFVt8iz4NcD/AmeJyH5h\nb4kkqM9vROTrXtjur3D+9pm48N9PAdNEJJXBfjkhQX3uFpGJQDVwIHCPiPwZ6A5sBQ7yyoXymROR\nfiLyV5zh8HUR6eVtb5b3A+AcVZ2Ae3/OF5EDcyNt+ySqi6qq59Zs1r3PAqd77040LPc2D9eVwD9U\ndRxuBOvsZv+gqlap6hhV/Q2uOXYAcGjgAndAO/V5Blefw5t3quobwG7aJGALI56yPgy4QlV/AcwA\nKpstJs8CeRGXN+gMgDD3jSSpz/dFZISqzgZGqeqzqvo+sAA4TVVD2/xPUJ+ZwBXAv4FrgAeAv6nq\nVNxYky975cLaudoL54e+2Fs+AVrkVdWXVfUx79jHgFI8IymEJK2LqjZ5Cr7WO+bEbF88l5Z7T4A4\nq+h1AFW9A5eJcqqIHOAdI96+5cD+uH9I2EhWn1/j6nNOc3087gcOEJHuYXvRROQ8ETkxzj/7LrCf\n5xd8COdv/3qz9aGqa3DZQn8sIh/h6hsaUqjPa7j7I6q6Ja7oMOAfYXM1dVCfB4BVwFmqullVF6rq\n773jDgMeyYXM7RFXnz6quh7X2fhn4BPgGBEZkKToUcBGQuR7T7Uu3rPWhKc3vP1ZbVEFrtxFZIKI\nPAnc7DWHd+H8g6Ui8nkR+TzwL6AY52cH2EdEvioiT+Me5PfC0qxMsz7gsmMODosbw2sqHuz5m88H\npgG/FpHewHvAEUBv7/DbcVb6gV7ZUcDduA/acaq6IGj525JGfU6nxWUxTkT+AZwE3B2Ge9TJ+twG\nnCYiB3tlx4nI6zgr9/ngpd+bJPX5jYjsr6qfeG7Mp3Ad3SfFlevjvXM1uPTh18f5r3NCOnXx3DPd\nVXUrLlDk2ObtWRNMVQP7AcNxTcPJuAdtAXARzrc5HXgU9/AdDcwHvu+VG4/zIZ4WpLw+1KcyruxQ\n4Mu5roMnS3fv7wjgXm95H1zY5hygH67peAKwr7d/IXCpt3wwcEqu65GF+lR6y18FTs91PbJ4f4bl\nSX1ux0X4xB97OfATXCx4T2/beGByruuRYV32jdte4IdsvncUxTXdm3DhWEtU9S/evqeAnwP3q+ps\nETlEVVd7+17Ea6oAT6tqKJr6GdTnBeKaXupcGWtyUYdmPBfSj4Hu4gbv9MH1BaCu974S2AT8Avdx\nOhunyBfimsIvecduxH3IckoW6lPjHdteYrzAyOL9eRt4O/AKtCGF+lwCbBCRE1X1Wa/Y3TiF+BQw\nRERKVfWpHIjfigzr8iRQ7NVlg7pJkLKOr24ZEfkmLu3vbG/Tazhfeom3vg/uoWvO777GK/dd4FvA\nMghP50+G9akgRPURkROBJbim4lu4Ou0EykVkLOz5gM0CblbVebjkceeJyDJcXV/LheyJsPpEoj6K\nU5gz44r+B641/ApwhKqmmm7cN7JQl38SRF18bK70xnXeXAosBUZ622/FuS9ewI0+PQL4K3Cgt/8y\nnAU1JtdNrojX53jgG3HrdwL/D7gA1xoB9/E/CBdxMdjbdhBwSK7lt/pEuj5/Bkq8bZOBE3Itfz7W\nxe9/whDv743AQm+5O65j8ThvfTAwF+jhre/rp0xWnz112Rc3Wq7ZZzgNuMFbfgW42Fs+GliQa3mt\nPlafsPzypS6+umVU9R1v8VZgqIhMVBd5sEVVm3vtL8TFqe7yyoQ1ZjVS9VHVj1V1u7ZEgkzAjZwF\n+CZuSPSjuFbJ0lzI2BmsPuEmnfqEJSKuLflSl0BG3qnqJhGZA/wXsEhVd3u+qWuBAuBbGoJws1SJ\nUn3ExXArLqyxuSPx37i6fRZYoy5eNy+w+oSbztRHPfM3rIS9LoFM1iEi3dSNyHoAN+hgO673e5W6\nnvy8Ikr18SyKQlyqhIdxHdnv45qWH+VStnSw+oSbKNUn7HUJynJvEpcQ7ABcessfq+rfgri2H0Sp\nPqqqIlKK8xsOBf6gqnNyLFbaWH3CTZTqE/a6BDbNnohcCQwCrlLV7YFc1EeiVB9xidi+Afwi3+sC\nVp+wE6X6hLkuQSr3bpqn+b4TEbX6GIYRLWyCbMMwjAgSinzuhmEYRnYx5W4YhhFBTLkbhmFEEFPu\nhmEYEcSUu2EYRgQx5W4YhhFBTLkbhmFEkP8PvIWwbHkpja0AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622aa361d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots()\n",
+ "ax.plot_date(radiohead_df['release_date'].values, radiohead_df['gloom'].values, linestyle='-')\n",
+ "\n",
+ "for a in radiohead_df.itertuples():\n",
+ " for t in tracks.find({'album.id': a[1], 'gloom': {'$exists': True}}):\n",
+ " ax.scatter(a.release_date, t['gloom'])\n",
+ "\n",
+ "fig.autofmt_xdate()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Complexity per album<a name=\"complexityovertime\"></a>\n",
+ "Let's generate the same plots for \"complexity\" per album.\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 118,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "defaultdict(int,\n",
+ " {'03Qh833fEdVT30Pfs93ea6': 0.3031378075765009,\n",
+ " '0PYyrqs9NXtxPhf0CZkq2L': 0.3955461017790891,\n",
+ " '19K3IHYeVkUTjcBHGfbCOi': 0.49267873060230916,\n",
+ " '19RUXBFyM4PpmrLRdtqWbp': 0.19682403824100217,\n",
+ " '1DBkJIEoeHrTX4WCBQGcCi': 0.23682091199666255,\n",
+ " '1PULmKbHeOqlkIwcDMNwD4': 0.33137519763673373,\n",
+ " '1oW3v5Har9mvXnGk0x4fHm': 0.29898400325001767,\n",
+ " '2Pqkn9Dq2DFtdfkKAeqgMd': 0.28015413095314634,\n",
+ " '2pCqZLeavM2BMovJXsJEIV': 0.354664325706374,\n",
+ " '36lJLPoPPOKNFddTAcirnc': 0.1704162869852709,\n",
+ " '3OdI6e43crvyAHhaqpxSyz': 0.44772169900647624,\n",
+ " '3nkEsxmIX0zRNXGAexaHAn': 0.5849736696540723,\n",
+ " '47bcKzmKgmMPHXNVOWpLiu': 0.2953681657492741,\n",
+ " '500FEaUzn8lN9zWFyZG5C2': 0.23613033343466053,\n",
+ " '5XfJmldgWzrc1AIdbBaVZn': 0.3884655768099993,\n",
+ " '5ju5Ouzan3QwXqQt1Tihbh': 0.4001232105218359,\n",
+ " '6400dnyeDyD2mIFHfkwHXN': 0.22536295726702718,\n",
+ " '6Eo5EkmdLvZrONzi046iC2': 0.3776567485151355,\n",
+ " '6P9yO0ukhOx3dvmhGKeYoC': 0.2752720160835255,\n",
+ " '6V9YnBmFjWmXCBaUVRCVXP': 0.1561887159181926,\n",
+ " '6vuykQgDLUCiZ7YggIpLM9': 0.12056755508379578,\n",
+ " '71Mwd9tntFQYUk4k2DwA0D': 0.5490106468656754,\n",
+ " '7BgGBZndAvDlKOcwe5rscZ': 0.5087387310808495,\n",
+ " '7dxKtc08dYeRVHt3p9CZJn': 0.16146444373155444,\n",
+ " '7eyQXxuf2nGj9d2367Gi5f': 0.2913466657800584,\n",
+ " '7gDXyW16byCQOgK965BRzn': 0.4732550728695838})"
+ ]
+ },
+ "execution_count": 118,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pipeline = [\n",
+ " {'$match': {'gloom': {'$exists': True}}},\n",
+ " {'$group': {'_id': '$album.id', 'avg_complexity': {'$avg': '$complexity'}}}]\n",
+ "album_complexities = collections.defaultdict(int, {a['_id']: a['avg_complexity'] for a in tracks.aggregate(pipeline)})\n",
+ "album_complexities"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 119,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<div>\n",
+ "<table border=\"1\" class=\"dataframe\">\n",
+ " <thead>\n",
+ " <tr style=\"text-align: right;\">\n",
+ " <th></th>\n",
+ " <th>_id</th>\n",
+ " <th>artist_name</th>\n",
+ " <th>name</th>\n",
+ " <th>release_date</th>\n",
+ " <th>gloom</th>\n",
+ " <th>complexity</th>\n",
+ " </tr>\n",
+ " </thead>\n",
+ " <tbody>\n",
+ " <tr>\n",
+ " <th>15</th>\n",
+ " <td>7gDXyW16byCQOgK965BRzn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Please Please Me (Remastered)</td>\n",
+ " <td>1963-03-22</td>\n",
+ " <td>0.177208</td>\n",
+ " <td>0.473255</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>14</th>\n",
+ " <td>3nkEsxmIX0zRNXGAexaHAn</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>With The Beatles (Remastered)</td>\n",
+ " <td>1963-11-22</td>\n",
+ " <td>0.152913</td>\n",
+ " <td>0.584974</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>12</th>\n",
+ " <td>71Mwd9tntFQYUk4k2DwA0D</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>A Hard Day's Night (Remastered)</td>\n",
+ " <td>1964-07-10</td>\n",
+ " <td>0.215407</td>\n",
+ " <td>0.549011</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>11</th>\n",
+ " <td>7BgGBZndAvDlKOcwe5rscZ</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Beatles For Sale (Remastered)</td>\n",
+ " <td>1964-12-04</td>\n",
+ " <td>0.175109</td>\n",
+ " <td>0.508739</td>\n",
+ " </tr>\n",
+ " <tr>\n",
+ " <th>10</th>\n",
+ " <td>19K3IHYeVkUTjcBHGfbCOi</td>\n",
+ " <td>The Beatles</td>\n",
+ " <td>Help! (Remastered)</td>\n",
+ " <td>1965-08-06</td>\n",
+ " <td>0.220622</td>\n",
+ " <td>0.492679</td>\n",
+ " </tr>\n",
+ " </tbody>\n",
+ "</table>\n",
+ "</div>"
+ ],
+ "text/plain": [
+ " _id artist_name name \\\n",
+ "15 7gDXyW16byCQOgK965BRzn The Beatles Please Please Me (Remastered) \n",
+ "14 3nkEsxmIX0zRNXGAexaHAn The Beatles With The Beatles (Remastered) \n",
+ "12 71Mwd9tntFQYUk4k2DwA0D The Beatles A Hard Day's Night (Remastered) \n",
+ "11 7BgGBZndAvDlKOcwe5rscZ The Beatles Beatles For Sale (Remastered) \n",
+ "10 19K3IHYeVkUTjcBHGfbCOi The Beatles Help! (Remastered) \n",
+ "\n",
+ " release_date gloom complexity \n",
+ "15 1963-03-22 0.177208 0.473255 \n",
+ "14 1963-11-22 0.152913 0.584974 \n",
+ "12 1964-07-10 0.215407 0.549011 \n",
+ "11 1964-12-04 0.175109 0.508739 \n",
+ "10 1965-08-06 0.220622 0.492679 "
+ ]
+ },
+ "execution_count": 119,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "albums_df['complexity'] = albums_df['_id'].apply(lambda i: album_complexities[i])\n",
+ "beatles_df = albums_df[albums_df['release_date'] < datetime(1971, 1, 1)]\n",
+ "radiohead_df = albums_df[(albums_df['artist_name'] == 'Radiohead') & (albums_df['gloom'] > 0)]\n",
+ "albums_df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 120,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n0gWkfWoAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622a814d30>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots()\n",
+ "ax.plot_date(beatles_df['release_date'].values, beatles_df['complexity'].values, linestyle='-')\n",
+ "\n",
+ "fig.autofmt_xdate()\n",
+ "\n",
+ "for a in beatles_df.itertuples():\n",
+ " for t in tracks.find({'album.id': a[1], 'complexity': {'$exists': True}}):\n",
+ " ax.scatter(a.release_date, t['complexity'])\n",
+ "\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 121,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nP7ZvV332WXcTGznSjePSS1WfeUZ127aPt7en0d3x+6ZXMEo+yMfBtWubdNq0Oq2qul6nTavbGaqW\nS6KQRjlXFltbm+q//qvqD37g00AD5I03VPfbz4Uw+sm8eW6lbb5JuHVuvtm5dQYOVD3zzN3dOps2\nbdI+fQYpfEPheoVvaJ8+g0J9LueShoYGLSs7YrebXlnZJzO+6RWEkg/ycXDt2iYdNSp9THIhkyuL\n7brrVCdP7trtEeab4HPPOUX/xhv+HK+93UXwPPusP8fzk85unQkTVK++ukkHD75kt2tm6NCLC/aa\n8TtCryCU/C7lskJhnsIK3x8HW1udy2DyZMsTko5cTEr/9req+++v+tZb6dtEYVLvppuc62b79uyP\n9YtfqB51VPgnn7dvV128WPWww+yaScZZ8iMVBitUKgzW0tKKnFjysSnkXVFRwebNK4AzcUkxb+H9\n99d1WeNVFbZsgbff3n3btCn1vm3b3PL1997LX9bDsFNeXk5t7Ze4664vAAcBb1Bb+9WMw+VaWuD8\n8114YLpFOlEpdD5rFjz/PHzzm3DHHZkfRxVuvhn+/d/Dn5qgpAQmTYIDDuhgzZqPXzMNDR288w7s\ns09ehpc3dq9J7bKGikzNSU3q2Cj5l156GVc44hF2FY74Krff/jpDh5anVdwiTnkktn33dX8/8QkX\nF5y8b9Ag13769F48+ujH84QUFcWmLnrGtLS0MHfuw8BSEjH9c+dWc/313+mxwlWFL38Zpk+HE05I\n3y4qqZ979XJJzI46yhUZOffczI7zu9/BBx+4PDlRIV1unba2XowaBZMnQ20tHH98/tI1B0kiyWFt\n7dTdVujn5HxNZ+LnYyMLd82ECeenfBwcPPgavfRS1TlzVO+9V/WXv1T9y19UX38980LMqXzyQ4de\nrfvv36Q1Narr12csRuTx0yf/n//pwvR27Oi6XdTC85Yvd6t1X301s+8ff7zqT3/q65ByTlfzWO++\nq3r33arjxrkoneuvV123Lt8jDgaLk+8BRx99dScF77ajj74642N2RSK6prp6V3TN1q1ugnCffVwU\niB++16jhl8L9619Vy8tV167tXvsohZiqusiTMWNU33+/Z99raFA96KBonluprpnOLF+uetll7hqa\nOFH1sccsgVp3yLmSx/lJVgFrgFkpPr8Sl2v+JeBZ4KA0x8lYyDAVTXjtNdUvfMFdxGGMfsg12Src\n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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622ad7a048>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots()\n",
+ "ax.plot_date(radiohead_df['release_date'].values, radiohead_df['complexity'].values, linestyle='-')\n",
+ "\n",
+ "fig.autofmt_xdate()\n",
+ "\n",
+ "for a in radiohead_df.itertuples():\n",
+ " for t in tracks.find({'album.id': a[1], 'complexity': {'$exists': True}}):\n",
+ " ax.scatter(a.release_date, t['complexity'])\n",
+ "\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "That isn't what I was expecting. I was expecting the complexity to go up over time, as bands became more adept at contrasting lyrics and melody. It could be because high complexity requires high valence, and bands tend not to become more \"poppy\" over time.\n",
+ "\n",
+ "Let's test that, by also showing the valence of tracks and albums over time."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 122,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "pipeline = [\n",
+ " {'$match': {'valence': {'$exists': True}}},\n",
+ " {'$group': {'_id': '$album.id', 'avg_valence': {'$avg': '$valence'}}}]\n",
+ "album_valences = collections.defaultdict(int, {a['_id']: a['avg_valence'] for a in tracks.aggregate(pipeline)})\n",
+ "albums_df['valence'] = albums_df['_id'].apply(lambda i: album_valences[i])\n",
+ "beatles_df = albums_df[albums_df['release_date'] < datetime(1971, 1, 1)]\n",
+ "radiohead_df = albums_df[(albums_df['artist_name'] == 'Radiohead') & (albums_df['gloom'] > 0)]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 123,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622a722198>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots()\n",
+ "ax.plot_date(beatles_df['release_date'].values, beatles_df['complexity'].values, linestyle='-', color='blue')\n",
+ "ax.plot_date(beatles_df['release_date'].values, beatles_df['valence'].values, linestyle='-', color='orange')\n",
+ "\n",
+ "fig.autofmt_xdate()\n",
+ "\n",
+ "for a in beatles_df.itertuples():\n",
+ " for t in tracks.find({'album.id': a[1], 'complexity': {'$exists': True}}):\n",
+ " ax.scatter(a.release_date, t['complexity'], color='blue')\n",
+ " ax.scatter(a.release_date, t['valence'], color='orange')\n",
+ "\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 124,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\ngg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f622a6696a0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots()\n",
+ "ax.plot_date(radiohead_df['release_date'].values, radiohead_df['complexity'].values, linestyle='-', color='blue')\n",
+ "ax.plot_date(radiohead_df['release_date'].values, radiohead_df['valence'].values, linestyle='-', color='orange')\n",
+ "\n",
+ "fig.autofmt_xdate()\n",
+ "\n",
+ "for a in radiohead_df.itertuples():\n",
+ " for t in tracks.find({'album.id': a[1], 'complexity': {'$exists': True}}):\n",
+ " ax.scatter(a.release_date, t['complexity'], color='blue')\n",
+ " ax.scatter(a.release_date, t['valence'], color='orange')\n",
+ "\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "It definitely looks like the Beatles changed style over time, with the _White Ablum_ / _Yellow Submarine_ (around 1969) being a glitch in the trend. _Hail to the Thief_ and _Com Lag_ are unusual albums for Radiohead."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Conclusion<a name=\"conclusion\"></a>\n",
+ "A couple of things have come out of this. \n",
+ "\n",
+ "One is that the original analysis is very sensitive to how the sentiment of lyrics is determined. That means I'm not too confident about the reliability of results from either fitteR-happieR or this notebook.\n",
+ "\n",
+ "Another is that the Beatles are undoubtedly better than Radiohead. The happiest Beatles sonds are happier than anything Radiohead have done, and their saddest songs are about as sad as Radiohead. In just about every measure, the Beatles' range of music is larger, and covers, Radiohead's.\n",
+ "\n",
+ "QED.\n",
+ "\n",
+ "## Next steps\n",
+ "The obvious next step is to analyse a different group. What would Queen or ELO look like? Is Adele more depressing than Radiohead?\n",
+ "\n",
+ "Another approach would be to apply some machine learning / data mining techniques, perhaps to train a better sentiment analyser, or to cluster songs into groups. Which songs by different artists are most similar to each other?\n",
+ "\n",
+ "* [Top](#top)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "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.5.2+"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}