{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Sad songs\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", "## 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", "* [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": 3, "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": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Open a connection to the Mongo server\n", "client = pymongo.MongoClient('mongodb://localhost:27017/')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DB doesn't exist yet.\n" ] } ], "source": [ "# try:\n", "# client.drop_database(songs_db)\n", "# except NameError:\n", "# print(\"DB doesn't exist yet.\")" ] }, { "cell_type": "code", "execution_count": 5, "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": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['app_name', 'client_id', 'client_secret', 'redirect_uri', 'token']" ] }, "execution_count": 6, "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": 9, "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\n", "We'll download the data on artists, albums, and tracks from Spotify.\n", "\n", "* [Top](#top)" ] }, { "cell_type": "code", "execution_count": 7, "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": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "('4Z8W4fKeB5YxbusRsdQVPb',\n", " [{'id': '4Z8W4fKeB5YxbusRsdQVPb',\n", " 'image': 'https://i.scdn.co/image/afcd616e1ef2d2786f47b3b4a8a6aeea24a72adc',\n", " 'name': 'Radiohead'}])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "artists = get_artists('radiohead')\n", "radiohead_id = artists[0]['id']\n", "radiohead_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": 13, "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": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "48" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "get_albums(beatles_id)\n", "albums.find().count()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "48" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "get_albums(radiohead_id)\n", "albums.find().count()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
01234
_id5XfJmldgWzrc1AIdbBaVZn5ju5Ouzan3QwXqQt1Tihbh2pCqZLeavM2BMovJXsJEIV2Pqkn9Dq2DFtdfkKAeqgMd47bcKzmKgmMPHXNVOWpLiu
album_typealbumalbumalbumalbumalbum
artist_idNaNNaNNaNNaNNaN
artist_nameNaNNaNNaNNaNNaN
artists[{'id': '3WrFJ7ztbogyGnTHbHJFl2', 'name': 'The...[{'id': '3WrFJ7ztbogyGnTHbHJFl2', 'name': 'The...[{'id': '3WrFJ7ztbogyGnTHbHJFl2', 'name': 'The...[{'id': '3WrFJ7ztbogyGnTHbHJFl2', 'name': 'The...[{'id': '3WrFJ7ztbogyGnTHbHJFl2', 'name': 'The...
available_markets[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...
copyrights[{'text': '(C) 2016 Apple Corps Ltd.', 'type':...[{'text': '(C) 2015 Apple Corps Ltd.', 'type':...[{'text': '(C) 2015 Apple Corps Ltd', 'type': ...[{'text': '(C) 2015 Apple Corps Ltd', 'type': ...[{'text': '(C) 2015 Apple Corps Ltd', 'type': ...
external_ids{'upc': '00602557054989'}{'upc': '00602547673503'}{'upc': '00602547670069'}{'upc': '00602547670342'}{'upc': '00602547670328'}
external_urls{'spotify': 'https://open.spotify.com/album/5X...{'spotify': 'https://open.spotify.com/album/5j...{'spotify': 'https://open.spotify.com/album/2p...{'spotify': 'https://open.spotify.com/album/2P...{'spotify': 'https://open.spotify.com/album/47...
genres[][][][][]
hrefhttps://api.spotify.com/v1/albums/5XfJmldgWzrc...https://api.spotify.com/v1/albums/5ju5Ouzan3Qw...https://api.spotify.com/v1/albums/2pCqZLeavM2B...https://api.spotify.com/v1/albums/2Pqkn9Dq2DFt...https://api.spotify.com/v1/albums/47bcKzmKgmMP...
id5XfJmldgWzrc1AIdbBaVZn5ju5Ouzan3QwXqQt1Tihbh2pCqZLeavM2BMovJXsJEIV2Pqkn9Dq2DFtdfkKAeqgMd47bcKzmKgmMPHXNVOWpLiu
images[{'url': 'https://i.scdn.co/image/1b1879c1dd16...[{'url': 'https://i.scdn.co/image/4e6916b16ce5...[{'url': 'https://i.scdn.co/image/809c6f28db64...[{'url': 'https://i.scdn.co/image/9cab76ad73ce...[{'url': 'https://i.scdn.co/image/411d661890b8...
labelDigital Distribution Trinidad and TobagoDigital Distribution Trinidad and TobagoEMI CatalogueEMI CatalogueEMI Catalogue
nameLive At The Hollywood Bowl1 (Remastered)Let It Be (Remastered)Abbey Road (Remastered)Yellow Submarine (Remastered)
popularity5569616851
release_date2016-09-092000-11-131970-05-081969-09-261969-01-17
release_date_precisiondaydaydaydayday
tracks{'offset': 0, 'items': [{'preview_url': 'https...{'offset': 0, 'items': [{'preview_url': 'https...{'offset': 0, 'items': [{'preview_url': 'https...{'offset': 0, 'items': [{'preview_url': 'https...{'offset': 0, 'items': [{'preview_url': 'https...
typealbumalbumalbumalbumalbum
urispotify:album:5XfJmldgWzrc1AIdbBaVZnspotify:album:5ju5Ouzan3QwXqQt1Tihbhspotify:album:2pCqZLeavM2BMovJXsJEIVspotify:album:2Pqkn9Dq2DFtdfkKAeqgMdspotify:album:47bcKzmKgmMPHXNVOWpLiu
\n", "
" ], "text/plain": [ " 0 \\\n", "_id 5XfJmldgWzrc1AIdbBaVZn \n", "album_type album \n", "artist_id NaN \n", "artist_name NaN \n", "artists [{'id': '3WrFJ7ztbogyGnTHbHJFl2', 'name': 'The... \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 [{'url': 'https://i.scdn.co/image/1b1879c1dd16... \n", "label Digital Distribution Trinidad and Tobago \n", "name Live At The Hollywood Bowl \n", "popularity 55 \n", "release_date 2016-09-09 \n", "release_date_precision day \n", "tracks {'offset': 0, 'items': [{'preview_url': 'https... \n", "type album \n", "uri spotify:album:5XfJmldgWzrc1AIdbBaVZn \n", "\n", " 1 \\\n", "_id 5ju5Ouzan3QwXqQt1Tihbh \n", "album_type album \n", "artist_id NaN \n", "artist_name NaN \n", "artists [{'id': '3WrFJ7ztbogyGnTHbHJFl2', 'name': 'The... \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 [{'url': 'https://i.scdn.co/image/4e6916b16ce5... \n", "label Digital Distribution Trinidad and Tobago \n", "name 1 (Remastered) \n", "popularity 69 \n", "release_date 2000-11-13 \n", "release_date_precision day \n", "tracks {'offset': 0, 'items': [{'preview_url': 'https... \n", "type album \n", "uri spotify:album:5ju5Ouzan3QwXqQt1Tihbh \n", "\n", " 2 \\\n", "_id 2pCqZLeavM2BMovJXsJEIV \n", "album_type album \n", "artist_id NaN \n", "artist_name NaN \n", "artists [{'id': '3WrFJ7ztbogyGnTHbHJFl2', 'name': 'The... \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 [{'url': 'https://i.scdn.co/image/809c6f28db64... \n", "label EMI Catalogue \n", "name Let It Be (Remastered) \n", "popularity 61 \n", "release_date 1970-05-08 \n", "release_date_precision day \n", "tracks {'offset': 0, 'items': [{'preview_url': 'https... \n", "type album \n", "uri spotify:album:2pCqZLeavM2BMovJXsJEIV \n", "\n", " 3 \\\n", "_id 2Pqkn9Dq2DFtdfkKAeqgMd \n", "album_type album \n", "artist_id NaN \n", "artist_name NaN \n", "artists [{'id': '3WrFJ7ztbogyGnTHbHJFl2', 'name': 'The... \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 [{'url': 'https://i.scdn.co/image/9cab76ad73ce... \n", "label EMI Catalogue \n", "name Abbey Road (Remastered) \n", "popularity 68 \n", "release_date 1969-09-26 \n", "release_date_precision day \n", "tracks {'offset': 0, 'items': [{'preview_url': 'https... \n", "type album \n", "uri spotify:album:2Pqkn9Dq2DFtdfkKAeqgMd \n", "\n", " 4 \n", "_id 47bcKzmKgmMPHXNVOWpLiu \n", "album_type album \n", "artist_id NaN \n", "artist_name NaN \n", "artists [{'id': '3WrFJ7ztbogyGnTHbHJFl2', 'name': 'The... \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 [{'url': 'https://i.scdn.co/image/411d661890b8... \n", "label EMI Catalogue \n", "name Yellow Submarine (Remastered) \n", "popularity 51 \n", "release_date 1969-01-17 \n", "release_date_precision day \n", "tracks {'offset': 0, 'items': [{'preview_url': 'https... \n", "type album \n", "uri spotify:album:47bcKzmKgmMPHXNVOWpLiu " ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame(list(albums.find())).head().T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tag albums with artists\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": 17, "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": 18, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namename
05XfJmldgWzrc1AIdbBaVZnThe BeatlesLive At The Hollywood Bowl
15ju5Ouzan3QwXqQt1TihbhThe Beatles1 (Remastered)
22pCqZLeavM2BMovJXsJEIVThe BeatlesLet It Be (Remastered)
32Pqkn9Dq2DFtdfkKAeqgMdThe BeatlesAbbey Road (Remastered)
447bcKzmKgmMPHXNVOWpLiuThe BeatlesYellow Submarine (Remastered)
503Qh833fEdVT30Pfs93ea6The BeatlesThe Beatles (Remastered)
66P9yO0ukhOx3dvmhGKeYoCThe BeatlesMagical Mystery Tour (Remastered)
71PULmKbHeOqlkIwcDMNwD4The BeatlesSgt. Pepper's Lonely Hearts Club Band (Remaste...
80PYyrqs9NXtxPhf0CZkq2LThe BeatlesRevolver (Remastered)
93OdI6e43crvyAHhaqpxSyzThe BeatlesRubber Soul (Remastered)
1019K3IHYeVkUTjcBHGfbCOiThe BeatlesHelp! (Remastered)
117BgGBZndAvDlKOcwe5rscZThe BeatlesBeatles For Sale (Remastered)
1271Mwd9tntFQYUk4k2DwA0DThe BeatlesA Hard Day's Night (Remastered)
131DBkJIEoeHrTX4WCBQGcCiRadioheadThe King Of Limbs
143nkEsxmIX0zRNXGAexaHAnThe BeatlesWith The Beatles (Remastered)
157gDXyW16byCQOgK965BRznThe BeatlesPlease Please Me (Remastered)
166vuykQgDLUCiZ7YggIpLM9RadioheadA Moon Shaped Pool
1747xaqCsJcYFWqD1gwujl1TRadioheadTKOL RMX 1234567
187eyQXxuf2nGj9d2367Gi5fRadioheadIn Rainbows
1936lJLPoPPOKNFddTAcirncRadioheadIn Rainbows Disk 2
206Eo5EkmdLvZrONzi046iC2RadioheadCom Lag: 2+2=5
211oW3v5Har9mvXnGk0x4fHmRadioheadHail To the Thief
226svTt5o2lUgIrgYDKVmdnDRadioheadI Might Be Wrong
236V9YnBmFjWmXCBaUVRCVXPRadioheadAmnesiac
2419RUXBFyM4PpmrLRdtqWbpRadioheadKid A
257dxKtc08dYeRVHt3p9CZJnRadioheadOK Computer
26500FEaUzn8lN9zWFyZG5C2RadioheadThe Bends
276400dnyeDyD2mIFHfkwHXNRadioheadPablo Honey
284g9Jfls8z2nbQxj5PiXkiyThe Rolling StonesBlue & Lonesome
294fhWcu56Bbh5wALuTouFVWThe Rolling StonesHavana Moon (Live)
303PbRKFafwE7Of8e4dTee72The Rolling StonesTotally Stripped (Live)
315eTqRwTGKPBUiUuN1rFaXDThe Rolling StonesLive 1965: Music From Charlie Is My Darling (L...
323CHu7qW160uqPZHW3TMZ1lThe Rolling StonesShine A Light
334FTHynKEtuP7eppERNfjyGThe Rolling StonesA Bigger Bang (2009 Re-Mastered)
3450UGtgNA5bq1c0BDjPfmbDThe Rolling StonesLive Licks
350ZGddnvcVzHVHfE3WW1tV5The Rolling StonesBridges To Babylon (2009 Re-Mastered)
364M8Q1L9PZq0xK5tLUpO3jdThe Rolling StonesStripped
3762ZT16LY1phGM0O8x5qW1zThe Rolling StonesVoodoo Lounge (2009 Re-Mastered)
381W1UJulgICjFDyYIMUwRs7The Rolling StonesFlashpoint
3925mfHGJNQkluvIqedXHSx3The Rolling StonesSteel Wheels (2009 Re-Mastered)
401TpcI1LEFVhBvDPSTMPGFGThe Rolling StonesDirty Work
411WSfNoPDPzgyKFN6OSYWUxThe Rolling StonesDirty Work (Remastered 2009)
42064eFGemsrDcMvgRZ0gqtwThe Rolling StonesUndercover (2009 Re-Mastered)
430hxrNynMDh5QeyALlf1CdSThe Rolling StonesStill Life
441YvnuYGlblQ5vLnOhaZzpnThe Rolling StonesTattoo You (2009 Re-Mastered)
452wZgoXS06wSdu9C0ZJOvlcThe Rolling StonesEmotional Rescue (2009 Re-Mastered)
4654sqbAXxR1jFfyXb1WvrHKThe Rolling StonesSome Girls
476FjXxl9VLURGuubdXUn2J3The Rolling StonesSome Girls (Deluxe Version)
\n", "
" ], "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": 18, "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": 19, "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": 20, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Rate limited. Pausing for 2\n", "Rate limited. Pausing for 0\n", "Rate limited. Pausing for 0\n", "Rate limited. Pausing for 0\n", "Rate limited. Pausing for 0\n", "Rate limited. Pausing for 0\n", "Rate limited. Pausing for 0\n" ] }, { "data": { "text/plain": [ "671" ] }, "execution_count": 20, "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": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
01234
_id0Za26pWVLQpKfXmb9FX10S6295nz7PVXm49Ihqwm39Ew0832Tptls5YicHPGgw7ssP6yq33zsqWCd8cYXQdtAFZ95pTWpY8l7B1XcQnijEFGFj
album{'href': 'https://api.spotify.com/v1/albums/54...{'href': 'https://api.spotify.com/v1/albums/54...{'href': 'https://api.spotify.com/v1/albums/54...{'href': 'https://api.spotify.com/v1/albums/54...{'href': 'https://api.spotify.com/v1/albums/6F...
album_id54sqbAXxR1jFfyXb1WvrHK54sqbAXxR1jFfyXb1WvrHK54sqbAXxR1jFfyXb1WvrHK54sqbAXxR1jFfyXb1WvrHK6FjXxl9VLURGuubdXUn2J3
artists[{'id': '22bE4uQ6baNwSHPVcDxLCe', 'name': 'The...[{'id': '22bE4uQ6baNwSHPVcDxLCe', 'name': 'The...[{'id': '22bE4uQ6baNwSHPVcDxLCe', 'name': 'The...[{'id': '22bE4uQ6baNwSHPVcDxLCe', 'name': 'The...[{'id': '22bE4uQ6baNwSHPVcDxLCe', 'name': 'The...
available_markets[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BG, BO, BR, CL, CO, CR, CY, C...
disc_number11111
duration_ms187440204960265173226800288666
explicitFalseFalseFalseFalseFalse
external_ids{'isrc': 'GBCJN7800007'}{'isrc': 'GBCJN7800008'}{'isrc': 'GBCJN7800009'}{'isrc': 'GBCJN7800010'}{'isrc': 'GBCJN7800001'}
external_urls{'spotify': 'https://open.spotify.com/track/0Z...{'spotify': 'https://open.spotify.com/track/62...{'spotify': 'https://open.spotify.com/track/08...{'spotify': 'https://open.spotify.com/track/6y...{'spotify': 'https://open.spotify.com/track/5p...
hrefhttps://api.spotify.com/v1/tracks/0Za26pWVLQpK...https://api.spotify.com/v1/tracks/6295nz7PVXm4...https://api.spotify.com/v1/tracks/0832Tptls5Yi...https://api.spotify.com/v1/tracks/6yq33zsqWCd8...https://api.spotify.com/v1/tracks/5pTWpY8l7B1X...
id0Za26pWVLQpKfXmb9FX10S6295nz7PVXm49Ihqwm39Ew0832Tptls5YicHPGgw7ssP6yq33zsqWCd8cYXQdtAFZ95pTWpY8l7B1XcQnijEFGFj
nameRespectable - RemasteredBefore They Make Me Run - RemasteredBeast Of Burden - RemasteredShattered - RemasteredMiss You - Remastered
popularity3227613150
preview_urlhttps://p.scdn.co/mp3-preview/f5e932d9acc6a359...https://p.scdn.co/mp3-preview/ee5832b597975b27...https://p.scdn.co/mp3-preview/6707390f6c75c161...https://p.scdn.co/mp3-preview/bd736b977c5779dd...https://p.scdn.co/mp3-preview/24d78633a528e097...
track_number789101
typetracktracktracktracktrack
urispotify:track:0Za26pWVLQpKfXmb9FX10Sspotify:track:6295nz7PVXm49Ihqwm39Ewspotify:track:0832Tptls5YicHPGgw7ssPspotify:track:6yq33zsqWCd8cYXQdtAFZ9spotify:track:5pTWpY8l7B1XcQnijEFGFj
\n", "
" ], "text/plain": [ " 0 \\\n", "_id 0Za26pWVLQpKfXmb9FX10S \n", "album {'href': 'https://api.spotify.com/v1/albums/54... \n", "album_id 54sqbAXxR1jFfyXb1WvrHK \n", "artists [{'id': '22bE4uQ6baNwSHPVcDxLCe', 'name': 'The... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "disc_number 1 \n", "duration_ms 187440 \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", "name Respectable - Remastered \n", "popularity 32 \n", "preview_url https://p.scdn.co/mp3-preview/f5e932d9acc6a359... \n", "track_number 7 \n", "type track \n", "uri spotify:track:0Za26pWVLQpKfXmb9FX10S \n", "\n", " 1 \\\n", "_id 6295nz7PVXm49Ihqwm39Ew \n", "album {'href': 'https://api.spotify.com/v1/albums/54... \n", "album_id 54sqbAXxR1jFfyXb1WvrHK \n", "artists [{'id': '22bE4uQ6baNwSHPVcDxLCe', 'name': 'The... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "disc_number 1 \n", "duration_ms 204960 \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", "name Before They Make Me Run - Remastered \n", "popularity 27 \n", "preview_url https://p.scdn.co/mp3-preview/ee5832b597975b27... \n", "track_number 8 \n", "type track \n", "uri spotify:track:6295nz7PVXm49Ihqwm39Ew \n", "\n", " 2 \\\n", "_id 0832Tptls5YicHPGgw7ssP \n", "album {'href': 'https://api.spotify.com/v1/albums/54... \n", "album_id 54sqbAXxR1jFfyXb1WvrHK \n", "artists [{'id': '22bE4uQ6baNwSHPVcDxLCe', 'name': 'The... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "disc_number 1 \n", "duration_ms 265173 \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", "name Beast Of Burden - Remastered \n", "popularity 61 \n", "preview_url https://p.scdn.co/mp3-preview/6707390f6c75c161... \n", "track_number 9 \n", "type track \n", "uri spotify:track:0832Tptls5YicHPGgw7ssP \n", "\n", " 3 \\\n", "_id 6yq33zsqWCd8cYXQdtAFZ9 \n", "album {'href': 'https://api.spotify.com/v1/albums/54... \n", "album_id 54sqbAXxR1jFfyXb1WvrHK \n", "artists [{'id': '22bE4uQ6baNwSHPVcDxLCe', 'name': 'The... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "disc_number 1 \n", "duration_ms 226800 \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", "name Shattered - Remastered \n", "popularity 31 \n", "preview_url https://p.scdn.co/mp3-preview/bd736b977c5779dd... \n", "track_number 10 \n", "type track \n", "uri spotify:track:6yq33zsqWCd8cYXQdtAFZ9 \n", "\n", " 4 \n", "_id 5pTWpY8l7B1XcQnijEFGFj \n", "album {'href': 'https://api.spotify.com/v1/albums/6F... \n", "album_id 6FjXxl9VLURGuubdXUn2J3 \n", "artists [{'id': '22bE4uQ6baNwSHPVcDxLCe', 'name': 'The... \n", "available_markets [AD, AR, AT, AU, BG, BO, BR, CL, CO, CR, CY, C... \n", "disc_number 1 \n", "duration_ms 288666 \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", "name Miss You - Remastered \n", "popularity 50 \n", "preview_url https://p.scdn.co/mp3-preview/24d78633a528e097... \n", "track_number 1 \n", "type track \n", "uri spotify:track:5pTWpY8l7B1XcQnijEFGFj " ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame(list(tracks.find())).head().T" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{'_id': '0Za26pWVLQpKfXmb9FX10S'}" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tracks.find_one({}, 'album.id')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tag tracks with artist\n", "Again, make an easy tag for the artist of each track.\n", "\n", "* [Top](#top)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": true }, "outputs": [], "source": [ "for t in tracks.find({}, ['artists']):\n", " tracks.update_one({'_id': t['_id']}, \n", " {'$set': {'artist_name': t['artists'][0]['name'],\n", " 'artist_id': t['artists'][0]['id']}})" ] }, { "cell_type": "code", "execution_count": 24, "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": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "set(t['artist_name'] for t in tracks.find({}))" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
album_idalbum_nameartist_nametrack_idtrack_name
05XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles4edArG2VehvJdwOZfYOxtKTwist And Shout - Live / Remastered
15XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles150EAeMGWJRubuH8zyx7h8She's A Woman - Live / Remastered
25XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles1fVeHYkyMxrjbjRAD9uWsZDizzy Miss Lizzy - Live / Remastered
35XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles0GRplBEB2FWCKutwMmS6nYTicket To Ride - Live / Remastered
45XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles1eVymk74iroqhsZxm0Vy3gCan't Buy Me Love - Live / Remastered
55XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles2p5a9gu6NECVSvBtGSU1vmThings We Said Today - Live / Remastered
65XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles1HyLh5cctOnP186CBi8bhmRoll Over Beethoven - Live / Remastered
75XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles7fZEWm7TAL2oZDyiYrrgnkBoys - Live / Remastered
85XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles21nhooOxso7CCoHPE73w4LA Hard Day's Night - Live / Remastered
95XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles1alcPfZWUHh01l4Fnoo5JtHelp! - Live / Remastered
105XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles24gUDXSQysdnTaRpbWtYlKAll My Loving - Live / Remastered
115XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles2VmFFbXSJzYxzEJSAeI0lMShe Loves You - Live / Remastered
125XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles6b8lhQ86u5MddlmXulslpDLong Tall Sally - Live / Remastered
135XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles1oKfZ5MTCSrv07hsHqJ0JSYou Can't Do That - Live / Bonus Track
145XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles04gBqA2mubcTgFqL9DomljI Want To Hold Your Hand - Live / Bonus Track
155XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles79QDgDoBbS7pCrOjIH7ByAEverybody’s Trying To Be My Baby - Live / Bonu...
165XfJmldgWzrc1AIdbBaVZnLive At The Hollywood BowlThe Beatles1yV2I5c6efVSqSiuv9H2ADBaby's In Black - Live / Bonus Track
175ju5Ouzan3QwXqQt1Tihbh1 (Remastered)The Beatles5JT7CoUSGNk7mMNkHMQjqrLove Me Do - Mono / Remastered 2015
185ju5Ouzan3QwXqQt1Tihbh1 (Remastered)The Beatles2Q2Gu7Bv8iLenuygtBgDUwFrom Me To You - Mono / Remastered 2015
195ju5Ouzan3QwXqQt1Tihbh1 (Remastered)The Beatles2Fk411Ix3qnMG8t8Qa74ZXShe Loves You - Mono / Remastered 2015
205ju5Ouzan3QwXqQt1Tihbh1 (Remastered)The Beatles4DRBaZ760gyk7LWnaJFqsJI Want To Hold Your Hand - Remastered 2015
215ju5Ouzan3QwXqQt1Tihbh1 (Remastered)The Beatles7pQAq14Z73YUFMtxCyt0bGCan't Buy Me Love - Remastered 2015
225ju5Ouzan3QwXqQt1Tihbh1 (Remastered)The Beatles0mNQUZEATk2uItMUtiLWK5A Hard Day's Night - Remastered 2015
235ju5Ouzan3QwXqQt1Tihbh1 (Remastered)The Beatles0Gm34HBxrXlaAf1jdJMjx2I Feel Fine - Remastered 2015
245ju5Ouzan3QwXqQt1Tihbh1 (Remastered)The Beatles3nhJDVdUrm6DnDW4iBfpKzEight Days A Week - Remastered 2015
255ju5Ouzan3QwXqQt1Tihbh1 (Remastered)The Beatles6pkjW5srxjzRSKKMrl7et8Ticket To Ride - Remastered 2015
265ju5Ouzan3QwXqQt1Tihbh1 (Remastered)The Beatles1dfuJYDSIc41cw5RPsaCF1Help! - Remastered 2015
275ju5Ouzan3QwXqQt1Tihbh1 (Remastered)The Beatles63uskN0xLezVg4281wzeQnYesterday - Remastered 2015
285ju5Ouzan3QwXqQt1Tihbh1 (Remastered)The Beatles0vXGSlE4ft3n5JHZMHHSIjDay Tripper - Remastered 2015
295ju5Ouzan3QwXqQt1Tihbh1 (Remastered)The Beatles0Lckblu9CJUXOeMV0XY3b9We Can Work It Out - Remastered 2015
..................
64154sqbAXxR1jFfyXb1WvrHKSome GirlsThe Rolling Stones5ZesVHq9Nox8YjOR1kCpbNJust My Imagination (Running Away With Me) - R...
64254sqbAXxR1jFfyXb1WvrHKSome GirlsThe Rolling Stones6hLpp90qMxG3TMvMzwJsiQSome Girls - Remastered
64354sqbAXxR1jFfyXb1WvrHKSome GirlsThe Rolling Stones3WqR7lRoHEvG0ExkAqBkPjLies - Remastered
64454sqbAXxR1jFfyXb1WvrHKSome GirlsThe Rolling Stones06PEXSCNl8Xwf2633TdNnxFar Away Eyes - Remastered
64554sqbAXxR1jFfyXb1WvrHKSome GirlsThe Rolling Stones0Za26pWVLQpKfXmb9FX10SRespectable - Remastered
64654sqbAXxR1jFfyXb1WvrHKSome GirlsThe Rolling Stones6295nz7PVXm49Ihqwm39EwBefore They Make Me Run - Remastered
64754sqbAXxR1jFfyXb1WvrHKSome GirlsThe Rolling Stones0832Tptls5YicHPGgw7ssPBeast Of Burden - Remastered
64854sqbAXxR1jFfyXb1WvrHKSome GirlsThe Rolling Stones6yq33zsqWCd8cYXQdtAFZ9Shattered - Remastered
6496FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones5pTWpY8l7B1XcQnijEFGFjMiss You - Remastered
6506FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones4E8qFhiuYAWEYYAsYIf4dWWhen The Whip Comes Down - Remastered
6516FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones7sDQlyQACyT7mNHFwwEMI7Just My Imagination (Running Away With Me) - R...
6526FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones48bJ1sWhJKdB8M43uqi924Some Girls - Remastered
6536FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones6362zAWHGgbrQaoeCFZpuOLies - Remastered
6546FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones4RlD0KvoqPZy5n9Zi76X9lFar Away Eyes - Remastered
6556FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones33PXyHrkIHxp6PBVPlQGx7Respectable - Remastered
6566FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones7vsPbFinz35mfQO5d6oL0lBefore They Make Me Run - Remastered
6576FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones7pfVe0VrMK5QhTaAYzkuYnBeast Of Burden - Remastered
6586FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones2giRM7RrP6utWLAb8jnFFkShattered - Remastered
6596FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones1V25DJ3ghDJs8m58jbVMbfClaudine
6606FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones3rNTjyvxae83nJCLMxoVSWSo Young
6616FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones5oAcuuY504M7eDCln5Xq89Do You Think I Really Care
6626FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones1ZBnd9Z80QPQ58BaL5OWlPWhen You're Gone
6636FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones624njB7Ny3mlA46QokEin9No Spare Parts
6646FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones0WpZfMNsNhiEJ8RSLyjElpDon't Be A Stranger
6656FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones0Baq94uZKy4pPvnc40xjPXWe Had It All
6666FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones4oOU3GgiZblheOI9JUmM1fTallahassee Lassie
6676FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones4LW3JaAze7gF8DpPBb2zzlI Love You Too Much
6686FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones4LSyTg4sm3N99Pcckw9zjfKeep Up Blues
6696FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones3u06WsJ1KtvEqmmmZqy76JYou Win Again
6706FjXxl9VLURGuubdXUn2J3Some Girls (Deluxe Version)The Rolling Stones7DgRvvPcJlxks2lNpudsuTPetrol Blues
\n", "

671 rows × 5 columns

\n", "
" ], "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": 25, "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\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": 26, "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": 1, "metadata": { "collapsed": false }, "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", " \n", " for _ in range(10):\n", " try:\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})\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": 33, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Rate limited. Pausing for 2\n", "Rate limited. Pausing for 0\n", "Rate limited. Pausing for 2\n", "Rate limited. Pausing for 0\n", "Rate limited. Pausing for 2\n", "Rate limited. Pausing for 2\n" ] } ], "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": 10, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789...219220221222223224225226227228
_id2ucFulEWapRAmTn7l6f5Q72z1p43SNSbeowzy8WdYHNk3ckvsHnEffhhS5c0Cs6Gv54edArG2VehvJdwOZfYOxtK150EAeMGWJRubuH8zyx7h81fVeHYkyMxrjbjRAD9uWsZ0GRplBEB2FWCKutwMmS6nY1eVymk74iroqhsZxm0Vy3g2p5a9gu6NECVSvBtGSU1vm1HyLh5cctOnP186CBi8bhm...43feVCF6QfqIt9LnLs9BAH3NwEPV9MDr1z3KcHiAuz9d2Iccm3cKBQHWt5yk0yX9nh2OLMjGIhCNI6j34ysPscbp01n20rdBC5czKAhxmGREkr5gnrZoSS7nbDYtHp32RFiI5FBxWhG0nbBAF6lWgJFklM6tEwCsVtZ5tI8uHNJSHQ3b50jq8RgbDfmNNd0NiRnl4L4Z1fbYp0HuxLBje4MOZcSD
acousticness0.4250.3680.6147.67e-050.006750.01310.003270.008650.08360.00242...0.6070.7670.3340.3860.3890.7780.6080.6980.6290.641
album{'name': 'The Beatles (Remastered)', 'images':...{'name': 'Magical Mystery Tour (Remastered)', ...{'name': 'Beatles For Sale (Remastered)', 'ima...{'name': 'Live At The Hollywood Bowl', 'images...{'name': 'Live At The Hollywood Bowl', 'images...{'name': 'Live At The Hollywood Bowl', 'images...{'name': 'Live At The Hollywood Bowl', 'images...{'name': 'Live At The Hollywood Bowl', 'images...{'name': 'Live At The Hollywood Bowl', 'images...{'name': 'Live At The Hollywood Bowl', 'images......{'name': 'Please Please Me (Remastered)', 'ima...{'name': 'Please Please Me (Remastered)', 'ima...{'name': 'Please Please Me (Remastered)', 'ima...{'name': 'Please Please Me (Remastered)', 'ima...{'name': 'Please Please Me (Remastered)', 'ima...{'name': 'Please Please Me (Remastered)', 'ima...{'name': 'Please Please Me (Remastered)', 'ima...{'name': 'Please Please Me (Remastered)', 'ima...{'name': 'Please Please Me (Remastered)', 'ima...{'name': 'Please Please Me (Remastered)', 'ima...
album_id03Qh833fEdVT30Pfs93ea66P9yO0ukhOx3dvmhGKeYoC7BgGBZndAvDlKOcwe5rscZ5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn...7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn
analysis_urlhttps://api.spotify.com/v1/audio-analysis/2ucF...https://api.spotify.com/v1/audio-analysis/2z1p...https://api.spotify.com/v1/audio-analysis/3ckv...https://api.spotify.com/v1/audio-analysis/4edA...https://api.spotify.com/v1/audio-analysis/150E...https://api.spotify.com/v1/audio-analysis/1fVe...https://api.spotify.com/v1/audio-analysis/0GRp...https://api.spotify.com/v1/audio-analysis/1eVy...https://api.spotify.com/v1/audio-analysis/2p5a...https://api.spotify.com/v1/audio-analysis/1HyL......https://api.spotify.com/v1/audio-analysis/43fe...https://api.spotify.com/v1/audio-analysis/3NwE...https://api.spotify.com/v1/audio-analysis/2Icc...https://api.spotify.com/v1/audio-analysis/2OLM...https://api.spotify.com/v1/audio-analysis/01n2...https://api.spotify.com/v1/audio-analysis/5gnr...https://api.spotify.com/v1/audio-analysis/5FBx...https://api.spotify.com/v1/audio-analysis/6tEw...https://api.spotify.com/v1/audio-analysis/50jq...https://api.spotify.com/v1/audio-analysis/4Z1f...
artist_id3WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl2...3WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl23WrFJ7ztbogyGnTHbHJFl2
artist_nameThe BeatlesThe BeatlesThe BeatlesThe BeatlesThe BeatlesThe BeatlesThe BeatlesThe BeatlesThe BeatlesThe Beatles...The BeatlesThe BeatlesThe BeatlesThe BeatlesThe BeatlesThe BeatlesThe BeatlesThe BeatlesThe BeatlesThe Beatles
artists[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn......[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...[{'name': 'The Beatles', 'id': '3WrFJ7ztbogyGn...
available_markets[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C......[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...[AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C...
complexity0.0598502NaNNaN0.2939460.3163030.4457830.3343030.4939810.249950.467134...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
ctitlewild honey pieflyingkansas city heyheyheyheytwist and shoutshes a womandizzy miss lizzyticket to ridecant buy me lovethings we said todayroll over beethoven...boysask me whyplease please melove me dops i love youbaby its youdo you want to know a secreta taste of honeytheres a placetwist and shout
danceability0.7920.5510.5880.3110.1880.4060.390.20.3070.204...0.4020.6050.5270.520.6350.6080.6730.420.4550.482
disc_number1111111111...1111111111
duration_ms5297313552015814793507192053219733146240134867138733134013...146440146533120853141693124360160520117013123480110493155227
energy0.7630.3950.7240.8220.8850.8670.7790.8490.6370.808...0.860.3940.480.8290.6560.4940.3490.3720.5820.849
explicitFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse...FalseFalseFalseFalseFalseFalseFalseFalseFalseFalse
external_ids{'isrc': 'GBAYE0601648'}{'isrc': 'GBAYE0601635'}{'isrc': 'GBAYE0601457'}{'isrc': 'GBUM71603960'}{'isrc': 'GBUM71603957'}{'isrc': 'GBUM71603952'}{'isrc': 'GBUM71603959'}{'isrc': 'GBUM71603951'}{'isrc': 'GBUM71603958'}{'isrc': 'GBUM71603955'}...{'isrc': 'GBAYE0601414'}{'isrc': 'GBAYE0601415'}{'isrc': 'GBAYE0601416'}{'isrc': 'GBAYE0601417'}{'isrc': 'GBAYE0601418'}{'isrc': 'GBAYE0601419'}{'isrc': 'GBAYE0601420'}{'isrc': 'GBAYE0601421'}{'isrc': 'GBAYE0601422'}{'isrc': 'GBAYE0601423'}
external_urls{'spotify': 'https://open.spotify.com/track/2u...{'spotify': 'https://open.spotify.com/track/2z...{'spotify': 'https://open.spotify.com/track/3c...{'spotify': 'https://open.spotify.com/track/4e...{'spotify': 'https://open.spotify.com/track/15...{'spotify': 'https://open.spotify.com/track/1f...{'spotify': 'https://open.spotify.com/track/0G...{'spotify': 'https://open.spotify.com/track/1e...{'spotify': 'https://open.spotify.com/track/2p...{'spotify': 'https://open.spotify.com/track/1H......{'spotify': 'https://open.spotify.com/track/43...{'spotify': 'https://open.spotify.com/track/3N...{'spotify': 'https://open.spotify.com/track/2I...{'spotify': 'https://open.spotify.com/track/2O...{'spotify': 'https://open.spotify.com/track/01...{'spotify': 'https://open.spotify.com/track/5g...{'spotify': 'https://open.spotify.com/track/5F...{'spotify': 'https://open.spotify.com/track/6t...{'spotify': 'https://open.spotify.com/track/50...{'spotify': 'https://open.spotify.com/track/4Z...
gloom0.418731NaNNaN0.2388150.227270.1542720.352950.2424940.3070750.22049...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
hrefhttps://api.spotify.com/v1/tracks/2ucFulEWapRA...https://api.spotify.com/v1/tracks/2z1p43SNSbeo...https://api.spotify.com/v1/tracks/3ckvsHnEffhh...https://api.spotify.com/v1/tracks/4edArG2VehvJ...https://api.spotify.com/v1/tracks/150EAeMGWJRu...https://api.spotify.com/v1/tracks/1fVeHYkyMxrj...https://api.spotify.com/v1/tracks/0GRplBEB2FWC...https://api.spotify.com/v1/tracks/1eVymk74iroq...https://api.spotify.com/v1/tracks/2p5a9gu6NECV...https://api.spotify.com/v1/tracks/1HyLh5cctOnP......https://api.spotify.com/v1/tracks/43feVCF6QfqI...https://api.spotify.com/v1/tracks/3NwEPV9MDr1z...https://api.spotify.com/v1/tracks/2Iccm3cKBQHW...https://api.spotify.com/v1/tracks/2OLMjGIhCNI6...https://api.spotify.com/v1/tracks/01n20rdBC5cz...https://api.spotify.com/v1/tracks/5gnrZoSS7nbD...https://api.spotify.com/v1/tracks/5FBxWhG0nbBA...https://api.spotify.com/v1/tracks/6tEwCsVtZ5tI...https://api.spotify.com/v1/tracks/50jq8RgbDfmN...https://api.spotify.com/v1/tracks/4Z1fbYp0HuxL...
id2ucFulEWapRAmTn7l6f5Q72z1p43SNSbeowzy8WdYHNk3ckvsHnEffhhS5c0Cs6Gv54edArG2VehvJdwOZfYOxtK150EAeMGWJRubuH8zyx7h81fVeHYkyMxrjbjRAD9uWsZ0GRplBEB2FWCKutwMmS6nY1eVymk74iroqhsZxm0Vy3g2p5a9gu6NECVSvBtGSU1vm1HyLh5cctOnP186CBi8bhm...43feVCF6QfqIt9LnLs9BAH3NwEPV9MDr1z3KcHiAuz9d2Iccm3cKBQHWt5yk0yX9nh2OLMjGIhCNI6j34ysPscbp01n20rdBC5czKAhxmGREkr5gnrZoSS7nbDYtHp32RFiI5FBxWhG0nbBAF6lWgJFklM6tEwCsVtZ5tI8uHNJSHQ3b50jq8RgbDfmNNd0NiRnl4L4Z1fbYp0HuxLBje4MOZcSD
instrumentalness0.6270.888.92e-052.04e-062.42e-050.0001410000...0006.2e-050.001270004.22e-067.74e-06
key20729119552...4440244142
liveness0.7890.09320.8770.5080.850.4960.3660.8940.7560.634...0.7360.09670.07020.2270.08280.09260.380.1040.1720.0414
loudness-11.185-14.755-6.63-8.696-8.189-6.879-8.007-7.606-8.35-7.948...-10.31-11.33-9.61-6.228-8.5-12.211-12.414-11.416-10.009-9.198
lyrical_density0.1698980NaN2.823320.5779650.7964211.853121.475531.297461.7461...0.9013931.010012.192750.7833841.23031.326941.18790.745060.8959841.70075
lyricshoney pie honey pie i love you, honey pieNaNwell shake it up baby now (shake it up baby) t...my love don't give me presents i know that she...{intro} you make me dizzy, miss lizzy the way ...i think i'm going to be sad i think it's today...can't buy me love, love can't buy me love i'll...you say you will love me if i have to go you'l...i'm gonna write a little letter gonna mail it ......i been told when a boy kiss a girl take a trip...i love you, because you tell me things i want ...(lennon/mccartney) last night i said these wor...love, love me do you know i love you i'll alwa...as i write this letter send my love to you rem...sha la la la la la la la sha la la la la la la...you'll never know how much i really love you y...a taste of honey! tasting much sweeter than wi...there is a place where i can go when i feel lo...well shake it up baby now (shake it up baby) t...
mode1111101111...1111101011
nameWild Honey Pie - Remastered 2009Flying - Remastered 2009Kansas City / Hey-Hey-Hey-Hey - Remastered 2009Twist And Shout - Live / RemasteredShe's A Woman - Live / RemasteredDizzy Miss Lizzy - Live / RemasteredTicket To Ride - Live / RemasteredCan't Buy Me Love - Live / RemasteredThings We Said Today - Live / RemasteredRoll Over Beethoven - Live / Remastered...Boys - Remastered 2009Ask Me Why - Remastered 2009Please Please Me - Remastered 2009Love Me Do - Remastered 2009P.S. I Love You - Remastered 2009Baby It's You - Remastered 2009Do You Want To Know A Secret - Remastered 2009A Taste Of Honey - Remastered 2009There's A Place - Remastered 2009Twist And Shout - Remastered 2009
original_lyrics\\n\\nHoney Pie\\nHoney Pie\\nI love you, Honey Pi...\\n\\n[Instrumental]\\n\\nNaN\\n\\n[Verse 1]\\nWell shake it up baby now (shak...\\n\\n[Chorus]\\nMy love don't give me presents\\n...\\n\\n{Intro}\\n\\nYou make me dizzy, Miss Lizzy\\n...\\n\\n[Verse 1]\\nI think I'm going to be sad\\nI ...\\n\\n[Chorus 1]\\nCan't buy me love, love\\nCan't...\\n\\n[Verse 1]\\nYou say you will love me\\nIf I ...\\n\\nI'm gonna write a little letter\\nGonna mai......\\n\\n[Verse 1]\\nI been told when a boy kiss a g...\\n\\n[Verse 1]\\nI love you, because you tell me...\\n\\n(Lennon/McCartney)\\n\\nLast night I said th...\\n\\nLove, love me do\\nYou know I love you\\nI'l...\\n\\nAs I write this letter\\nSend my love to yo...\\n\\n[Intro-The Beatles]\\nSha la la la la la la...\\n\\n[Intro]\\nYou'll never know how much I real...\\n\\n[Intro]\\nA taste of honey! Tasting much sw...\\n\\n[Verse 1]\\nThere is a place\\nWhere I can g...\\n\\n[Verse 1]\\nWell shake it up baby now (shak...
popularity43443848454444444343...42414855434448404364
preview_urlhttps://p.scdn.co/mp3-preview/ddebab4d5e87d46a...https://p.scdn.co/mp3-preview/15f07b753cb7e50c...https://p.scdn.co/mp3-preview/bd13930c7706bdd4...https://p.scdn.co/mp3-preview/cd82d2f8f92a7222...https://p.scdn.co/mp3-preview/37806a7d82c5d2a8...https://p.scdn.co/mp3-preview/5ee6d20e1808908e...https://p.scdn.co/mp3-preview/558bb39228550744...https://p.scdn.co/mp3-preview/c6b9c820e62868db...https://p.scdn.co/mp3-preview/7b71156485b9e3e1...https://p.scdn.co/mp3-preview/318950f70347c556......https://p.scdn.co/mp3-preview/c84bcc2dd65c3d9b...https://p.scdn.co/mp3-preview/f42256fa5367c68f...https://p.scdn.co/mp3-preview/c7974d03d8cd26de...https://p.scdn.co/mp3-preview/c0c7944dcb9d2457...https://p.scdn.co/mp3-preview/5ef1f2ba07489648...https://p.scdn.co/mp3-preview/d7eeb1f68c39066d...https://p.scdn.co/mp3-preview/5bd705943290818c...https://p.scdn.co/mp3-preview/dd94439cdf6e7668...https://p.scdn.co/mp3-preview/5260a1d4f12c23ac...https://p.scdn.co/mp3-preview/b7e3bc96b46e4dcc...
sentiment{'probability': {'pos': 0.6088223652469111, 'n...NaNNaN{'probability': {'pos': 0.500092464930449, 'ne...{'probability': {'pos': 0.437183810867932, 'ne...{'probability': {'pos': 0.4118957822060205, 'n...{'probability': {'pos': 0.1745613462608472, 'n...{'probability': {'pos': 0.2616130113907563, 'n...{'probability': {'pos': 0.3672150785922961, 'n...{'probability': {'pos': 0.35656423276148513, '......{'probability': {'pos': 0.4595305514727438, 'n...{'probability': {'pos': 0.20446882559048601, '...{'probability': {'pos': 0.16446745008480748, '...{'probability': {'pos': 0.5071807762286473, 'n...{'probability': {'pos': 0.6580284675394283, 'n...{'probability': {'pos': 0.3209861049246835, 'n...{'probability': {'pos': 0.440458717583442, 'ne...{'probability': {'pos': 0.6485651627744511, 'n...{'probability': {'pos': 0.3487106796498656, 'n...{'probability': {'pos': 0.500092464930449, 'ne...
speechiness0.05060.05010.03350.03950.06620.04610.04230.05710.03920.0398...0.05040.03780.0280.08060.02910.03450.03680.03270.02920.0452
tempo89.992.929131.36126.441175.86129.417121.216173.283146.636179.24...142.445133.942139.388147.997134.435112.421124.451101.408140.928124.631
time_signature4444444443...4444444344
track_hrefhttps://api.spotify.com/v1/tracks/2ucFulEWapRA...https://api.spotify.com/v1/tracks/2z1p43SNSbeo...https://api.spotify.com/v1/tracks/3ckvsHnEffhh...https://api.spotify.com/v1/tracks/4edArG2VehvJ...https://api.spotify.com/v1/tracks/150EAeMGWJRu...https://api.spotify.com/v1/tracks/1fVeHYkyMxrj...https://api.spotify.com/v1/tracks/0GRplBEB2FWC...https://api.spotify.com/v1/tracks/1eVymk74iroq...https://api.spotify.com/v1/tracks/2p5a9gu6NECV...https://api.spotify.com/v1/tracks/1HyLh5cctOnP......https://api.spotify.com/v1/tracks/43feVCF6QfqI...https://api.spotify.com/v1/tracks/3NwEPV9MDr1z...https://api.spotify.com/v1/tracks/2Iccm3cKBQHW...https://api.spotify.com/v1/tracks/2OLMjGIhCNI6...https://api.spotify.com/v1/tracks/01n20rdBC5cz...https://api.spotify.com/v1/tracks/5gnrZoSS7nbD...https://api.spotify.com/v1/tracks/5FBxWhG0nbBA...https://api.spotify.com/v1/tracks/6tEwCsVtZ5tI...https://api.spotify.com/v1/tracks/50jq8RgbDfmN...https://api.spotify.com/v1/tracks/4Z1fbYp0HuxL...
track_number5371234567...567891011121314
typeaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_features...audio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_features
urispotify:track:2ucFulEWapRAmTn7l6f5Q7spotify:track:2z1p43SNSbeowzy8WdYHNkspotify:track:3ckvsHnEffhhS5c0Cs6Gv5spotify:track:4edArG2VehvJdwOZfYOxtKspotify:track:150EAeMGWJRubuH8zyx7h8spotify:track:1fVeHYkyMxrjbjRAD9uWsZspotify:track:0GRplBEB2FWCKutwMmS6nYspotify:track:1eVymk74iroqhsZxm0Vy3gspotify:track:2p5a9gu6NECVSvBtGSU1vmspotify:track:1HyLh5cctOnP186CBi8bhm...spotify:track:43feVCF6QfqIt9LnLs9BAHspotify:track:3NwEPV9MDr1z3KcHiAuz9dspotify:track:2Iccm3cKBQHWt5yk0yX9nhspotify:track:2OLMjGIhCNI6j34ysPscbpspotify:track:01n20rdBC5czKAhxmGREkrspotify:track:5gnrZoSS7nbDYtHp32RFiIspotify:track:5FBxWhG0nbBAF6lWgJFklMspotify:track:6tEwCsVtZ5tI8uHNJSHQ3bspotify:track:50jq8RgbDfmNNd0NiRnl4Lspotify:track:4Z1fbYp0HuxLBje4MOZcSD
valence0.1530.2460.9290.5880.5620.7580.4050.6690.3950.726...0.8250.6060.7080.7650.780.8890.6360.3780.9280.942
\n", "

41 rows × 229 columns

\n", "
" ], "text/plain": [ " 0 \\\n", "_id 2ucFulEWapRAmTn7l6f5Q7 \n", "acousticness 0.425 \n", "album {'name': 'The Beatles (Remastered)', 'images':... \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', 'id': '3WrFJ7ztbogyGn... \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.418731 \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 43 \n", "preview_url https://p.scdn.co/mp3-preview/ddebab4d5e87d46a... \n", "sentiment {'probability': {'pos': 0.6088223652469111, 'n... \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 {'name': 'Magical Mystery Tour (Remastered)', ... \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', 'id': '3WrFJ7ztbogyGn... \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 44 \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 {'name': 'Beatles For Sale (Remastered)', 'ima... \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', 'id': '3WrFJ7ztbogyGn... \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 38 \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 {'name': 'Live At The Hollywood Bowl', 'images... \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', 'id': '3WrFJ7ztbogyGn... \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.238815 \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 48 \n", "preview_url https://p.scdn.co/mp3-preview/cd82d2f8f92a7222... \n", "sentiment {'probability': {'pos': 0.500092464930449, 'ne... \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 {'name': 'Live At The Hollywood Bowl', 'images... \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', 'id': '3WrFJ7ztbogyGn... \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.22727 \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 45 \n", "preview_url https://p.scdn.co/mp3-preview/37806a7d82c5d2a8... \n", "sentiment {'probability': {'pos': 0.437183810867932, 'ne... \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 {'name': 'Live At The Hollywood Bowl', 'images... \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', 'id': '3WrFJ7ztbogyGn... \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.154272 \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 44 \n", "preview_url https://p.scdn.co/mp3-preview/5ee6d20e1808908e... \n", "sentiment {'probability': {'pos': 0.4118957822060205, 'n... \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 {'name': 'Live At The Hollywood Bowl', 'images... \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', 'id': '3WrFJ7ztbogyGn... \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.35295 \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 44 \n", "preview_url https://p.scdn.co/mp3-preview/558bb39228550744... \n", "sentiment {'probability': {'pos': 0.1745613462608472, 'n... \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 {'name': 'Live At The Hollywood Bowl', 'images... \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', 'id': '3WrFJ7ztbogyGn... \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.242494 \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 44 \n", "preview_url https://p.scdn.co/mp3-preview/c6b9c820e62868db... \n", "sentiment {'probability': {'pos': 0.2616130113907563, 'n... \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 {'name': 'Live At The Hollywood Bowl', 'images... \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', 'id': '3WrFJ7ztbogyGn... \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.307075 \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 43 \n", "preview_url https://p.scdn.co/mp3-preview/7b71156485b9e3e1... \n", "sentiment {'probability': {'pos': 0.3672150785922961, 'n... \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 {'name': 'Live At The Hollywood Bowl', 'images... \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', 'id': '3WrFJ7ztbogyGn... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "complexity 0.467134 \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.22049 \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.7461 \n", "lyrics i'm gonna write a little letter gonna mail it ... \n", "mode 1 \n", "name Roll Over Beethoven - Live / Remastered \n", "original_lyrics \\n\\nI'm gonna write a little letter\\nGonna mai... \n", "popularity 43 \n", "preview_url https://p.scdn.co/mp3-preview/318950f70347c556... \n", "sentiment {'probability': {'pos': 0.35656423276148513, '... \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", " 219 \\\n", "_id 43feVCF6QfqIt9LnLs9BAH \n", "acousticness 0.607 \n", "album {'name': 'Please Please Me (Remastered)', 'ima... \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', 'id': '3WrFJ7ztbogyGn... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "complexity NaN \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 NaN \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 42 \n", "preview_url https://p.scdn.co/mp3-preview/c84bcc2dd65c3d9b... \n", "sentiment {'probability': {'pos': 0.4595305514727438, 'n... \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", " 220 \\\n", "_id 3NwEPV9MDr1z3KcHiAuz9d \n", "acousticness 0.767 \n", "album {'name': 'Please Please Me (Remastered)', 'ima... \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', 'id': '3WrFJ7ztbogyGn... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "complexity NaN \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 NaN \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 41 \n", "preview_url https://p.scdn.co/mp3-preview/f42256fa5367c68f... \n", "sentiment {'probability': {'pos': 0.20446882559048601, '... \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", " 221 \\\n", "_id 2Iccm3cKBQHWt5yk0yX9nh \n", "acousticness 0.334 \n", "album {'name': 'Please Please Me (Remastered)', 'ima... \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', 'id': '3WrFJ7ztbogyGn... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "complexity NaN \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 NaN \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 2.19275 \n", "lyrics (lennon/mccartney) last night i said these wor... \n", "mode 1 \n", "name Please Please Me - Remastered 2009 \n", "original_lyrics \\n\\n(Lennon/McCartney)\\n\\nLast night I said th... \n", "popularity 48 \n", "preview_url https://p.scdn.co/mp3-preview/c7974d03d8cd26de... \n", "sentiment {'probability': {'pos': 0.16446745008480748, '... \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", " 222 \\\n", "_id 2OLMjGIhCNI6j34ysPscbp \n", "acousticness 0.386 \n", "album {'name': 'Please Please Me (Remastered)', 'ima... \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', 'id': '3WrFJ7ztbogyGn... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "complexity NaN \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 NaN \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 55 \n", "preview_url https://p.scdn.co/mp3-preview/c0c7944dcb9d2457... \n", "sentiment {'probability': {'pos': 0.5071807762286473, 'n... \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", " 223 \\\n", "_id 01n20rdBC5czKAhxmGREkr \n", "acousticness 0.389 \n", "album {'name': 'Please Please Me (Remastered)', 'ima... \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', 'id': '3WrFJ7ztbogyGn... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "complexity NaN \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 NaN \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 43 \n", "preview_url https://p.scdn.co/mp3-preview/5ef1f2ba07489648... \n", "sentiment {'probability': {'pos': 0.6580284675394283, 'n... \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", " 224 \\\n", "_id 5gnrZoSS7nbDYtHp32RFiI \n", "acousticness 0.778 \n", "album {'name': 'Please Please Me (Remastered)', 'ima... \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', 'id': '3WrFJ7ztbogyGn... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "complexity NaN \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 NaN \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 44 \n", "preview_url https://p.scdn.co/mp3-preview/d7eeb1f68c39066d... \n", "sentiment {'probability': {'pos': 0.3209861049246835, 'n... \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", " 225 \\\n", "_id 5FBxWhG0nbBAF6lWgJFklM \n", "acousticness 0.608 \n", "album {'name': 'Please Please Me (Remastered)', 'ima... \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', 'id': '3WrFJ7ztbogyGn... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "complexity NaN \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 NaN \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 48 \n", "preview_url https://p.scdn.co/mp3-preview/5bd705943290818c... \n", "sentiment {'probability': {'pos': 0.440458717583442, 'ne... \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", " 226 \\\n", "_id 6tEwCsVtZ5tI8uHNJSHQ3b \n", "acousticness 0.698 \n", "album {'name': 'Please Please Me (Remastered)', 'ima... \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', 'id': '3WrFJ7ztbogyGn... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "complexity NaN \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 NaN \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 40 \n", "preview_url https://p.scdn.co/mp3-preview/dd94439cdf6e7668... \n", "sentiment {'probability': {'pos': 0.6485651627744511, 'n... \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", " 227 \\\n", "_id 50jq8RgbDfmNNd0NiRnl4L \n", "acousticness 0.629 \n", "album {'name': 'Please Please Me (Remastered)', 'ima... \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', 'id': '3WrFJ7ztbogyGn... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "complexity NaN \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 NaN \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 43 \n", "preview_url https://p.scdn.co/mp3-preview/5260a1d4f12c23ac... \n", "sentiment {'probability': {'pos': 0.3487106796498656, 'n... \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", " 228 \n", "_id 4Z1fbYp0HuxLBje4MOZcSD \n", "acousticness 0.641 \n", "album {'name': 'Please Please Me (Remastered)', 'ima... \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', 'id': '3WrFJ7ztbogyGn... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "complexity NaN \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 NaN \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.70075 \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 64 \n", "preview_url https://p.scdn.co/mp3-preview/b7e3bc96b46e4dcc... \n", "sentiment {'probability': {'pos': 0.500092464930449, 'ne... \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 229 columns]" ] }, "execution_count": 10, "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": 11, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789...136137138139140141142143144145
_id0eECFDnWy0RdjMmJ8NOeAL6Unw1AAcpS1ZgZoRlj2jxA5hfzW7LG97Hxv62HHUKgaj64lecUR19lBSu317AzVZv31CxhtUbe1o2PeMM3l5Kch62H7Y8wYixrSlKJoaZ1N2yl3zkFTfcboFcOdno0CHCmTc7KKglMFf5KV0PIDSAOqfnH4raxzmnFq93jfKC8c3xcIv1gaAIZ4vGQ6QvDUgN2Xyus...71wIOoaoVMUwskK5yCXZL42zYmvi3w2T8a9Ckrv21bvW3ovbSnT5NNhl1gzMcw1NRZ4NUc1M0CS7b6zvWoyvibju4nklmaiY4gfQI3SB1sLGsd11qDTSr3Dj4TkPnBcIOqEJ4D6ZExVvYLZxhcAvifX5px48IEDejXX5LH8TAC3VIGpc2B5P22cfUadACK7jLQegU66qttbImnJ5wuA8AtDKEy18
acousticness0.001010.008220.05890.08250.1020.0008010.09550.01470.4430.313...0.0006590.0008490.7040.0001011.93e-050.002810.0008490.009680.0001350.000465
album{'name': 'The King Of Limbs', 'images': [{'wid...{'name': 'TKOL RMX 1234567', 'images': [{'widt...{'name': 'TKOL RMX 1234567', 'images': [{'widt...{'name': 'TKOL RMX 1234567', 'images': [{'widt...{'name': 'TKOL RMX 1234567', 'images': [{'widt...{'name': 'TKOL RMX 1234567', 'images': [{'widt...{'name': 'TKOL RMX 1234567', 'images': [{'widt...{'name': 'TKOL RMX 1234567', 'images': [{'widt...{'name': 'TKOL RMX 1234567', 'images': [{'widt...{'name': 'TKOL RMX 1234567', 'images': [{'widt......{'name': 'Pablo Honey', 'images': [{'width': 6...{'name': 'Pablo Honey', 'images': [{'width': 6...{'name': 'Pablo Honey', 'images': [{'width': 6...{'name': 'Pablo Honey', 'images': [{'width': 6...{'name': 'Pablo Honey', 'images': [{'width': 6...{'name': 'Pablo Honey', 'images': [{'width': 6...{'name': 'Pablo Honey', 'images': [{'width': 6...{'name': 'Pablo Honey', 'images': [{'width': 6...{'name': 'Pablo Honey', 'images': [{'width': 6...{'name': 'Pablo Honey', 'images': [{'width': 6...
album_id1DBkJIEoeHrTX4WCBQGcCi47xaqCsJcYFWqD1gwujl1T47xaqCsJcYFWqD1gwujl1T47xaqCsJcYFWqD1gwujl1T47xaqCsJcYFWqD1gwujl1T47xaqCsJcYFWqD1gwujl1T47xaqCsJcYFWqD1gwujl1T47xaqCsJcYFWqD1gwujl1T47xaqCsJcYFWqD1gwujl1T47xaqCsJcYFWqD1gwujl1T...6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN
analysis_urlhttps://api.spotify.com/v1/audio-analysis/0eEC...https://api.spotify.com/v1/audio-analysis/6Unw...https://api.spotify.com/v1/audio-analysis/5hfz...https://api.spotify.com/v1/audio-analysis/64le...https://api.spotify.com/v1/audio-analysis/1Cxh...https://api.spotify.com/v1/audio-analysis/2H7Y...https://api.spotify.com/v1/audio-analysis/3zkF...https://api.spotify.com/v1/audio-analysis/7KKg...https://api.spotify.com/v1/audio-analysis/4rax...https://api.spotify.com/v1/audio-analysis/1gaA......https://api.spotify.com/v1/audio-analysis/71wI...https://api.spotify.com/v1/audio-analysis/2zYm...https://api.spotify.com/v1/audio-analysis/3ovb...https://api.spotify.com/v1/audio-analysis/4NUc...https://api.spotify.com/v1/audio-analysis/4nkl...https://api.spotify.com/v1/audio-analysis/11qD...https://api.spotify.com/v1/audio-analysis/4D6Z...https://api.spotify.com/v1/audio-analysis/48IE...https://api.spotify.com/v1/audio-analysis/2B5P...https://api.spotify.com/v1/audio-analysis/6qtt...
artist_id4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb...4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb4Z8W4fKeB5YxbusRsdQVPb
artist_nameRadioheadRadioheadRadioheadRadioheadRadioheadRadioheadRadioheadRadioheadRadioheadRadiohead...RadioheadRadioheadRadioheadRadioheadRadioheadRadioheadRadioheadRadioheadRadioheadRadiohead
artists[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR......[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...[{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR...
available_markets[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C......[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...[AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C...
complexity0.349377NaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
ctitleferallittle by little caribou rmxlotus flower jacques greene rmxmorning mr magpie nathan fake rmxbloom harmonic 313 rmxbloom mark pritchard rmxferal lone rmxmorning mr magpie pearson sound scavenger rmxseparator four tet rmxgive up the ghost thriller houseghost remix...how do youstop whisperingthinking about youanyone can play guitarripcordvegetableprove yourselfi cantlurgeeblow out
danceability0.490.80.6290.6610.4430.4140.7610.4810.4610.596...0.1850.2120.3640.2940.2560.3840.250.2840.420.284
disc_number1111111111...1111111111
duration_ms192743340160429947291987304333367280317507278893423000373760...132173325627161533217800189733192667145373253093187867282067
energy0.7770.5860.5920.7070.6650.7120.8770.3360.4550.894...0.9640.6960.370.8130.9060.7170.620.8250.5480.719
explicitFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse...FalseFalseFalseFalseFalseFalseFalseFalseFalseFalse
external_ids{'isrc': 'GBU4B1100006'}{'isrc': 'GBU4B1100013'}{'isrc': 'GBU4B1100014'}{'isrc': 'GBU4B1100015'}{'isrc': 'GBU4B1100016'}{'isrc': 'GBU4B1100017'}{'isrc': 'GBU4B1100018'}{'isrc': 'GBU4B1100020'}{'isrc': 'GBU4B1100019'}{'isrc': 'GBU4B1100031'}...{'isrc': 'GBAYE9300105'}{'isrc': 'GBAYE9300106'}{'isrc': 'GBAYE9200114'}{'isrc': 'GBAYE9300107'}{'isrc': 'GBAYE9300108'}{'isrc': 'GBAYE9300109'}{'isrc': 'GBAYE9200115'}{'isrc': 'GBAYE9300110'}{'isrc': 'GBAYE9200116'}{'isrc': 'GBAYE9300111'}
external_urls{'spotify': 'https://open.spotify.com/track/0e...{'spotify': 'https://open.spotify.com/track/6U...{'spotify': 'https://open.spotify.com/track/5h...{'spotify': 'https://open.spotify.com/track/64...{'spotify': 'https://open.spotify.com/track/1C...{'spotify': 'https://open.spotify.com/track/2H...{'spotify': 'https://open.spotify.com/track/3z...{'spotify': 'https://open.spotify.com/track/7K...{'spotify': 'https://open.spotify.com/track/4r...{'spotify': 'https://open.spotify.com/track/1g......{'spotify': 'https://open.spotify.com/track/71...{'spotify': 'https://open.spotify.com/track/2z...{'spotify': 'https://open.spotify.com/track/3o...{'spotify': 'https://open.spotify.com/track/4N...{'spotify': 'https://open.spotify.com/track/4n...{'spotify': 'https://open.spotify.com/track/11...{'spotify': 'https://open.spotify.com/track/4D...{'spotify': 'https://open.spotify.com/track/48...{'spotify': 'https://open.spotify.com/track/2B...{'spotify': 'https://open.spotify.com/track/6q...
gloom0.1245NaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
hrefhttps://api.spotify.com/v1/tracks/0eECFDnWy0Rd...https://api.spotify.com/v1/tracks/6Unw1AAcpS1Z...https://api.spotify.com/v1/tracks/5hfzW7LG97Hx...https://api.spotify.com/v1/tracks/64lecUR19lBS...https://api.spotify.com/v1/tracks/1CxhtUbe1o2P...https://api.spotify.com/v1/tracks/2H7Y8wYixrSl...https://api.spotify.com/v1/tracks/3zkFTfcboFcO...https://api.spotify.com/v1/tracks/7KKglMFf5KV0...https://api.spotify.com/v1/tracks/4raxzmnFq93j...https://api.spotify.com/v1/tracks/1gaAIZ4vGQ6Q......https://api.spotify.com/v1/tracks/71wIOoaoVMUw...https://api.spotify.com/v1/tracks/2zYmvi3w2T8a...https://api.spotify.com/v1/tracks/3ovbSnT5NNhl...https://api.spotify.com/v1/tracks/4NUc1M0CS7b6...https://api.spotify.com/v1/tracks/4nklmaiY4gfQ...https://api.spotify.com/v1/tracks/11qDTSr3Dj4T...https://api.spotify.com/v1/tracks/4D6ZExVvYLZx...https://api.spotify.com/v1/tracks/48IEDejXX5LH...https://api.spotify.com/v1/tracks/2B5P22cfUadA...https://api.spotify.com/v1/tracks/6qttbImnJ5wu...
id0eECFDnWy0RdjMmJ8NOeAL6Unw1AAcpS1ZgZoRlj2jxA5hfzW7LG97Hxv62HHUKgaj64lecUR19lBSu317AzVZv31CxhtUbe1o2PeMM3l5Kch62H7Y8wYixrSlKJoaZ1N2yl3zkFTfcboFcOdno0CHCmTc7KKglMFf5KV0PIDSAOqfnH4raxzmnFq93jfKC8c3xcIv1gaAIZ4vGQ6QvDUgN2Xyus...71wIOoaoVMUwskK5yCXZL42zYmvi3w2T8a9Ckrv21bvW3ovbSnT5NNhl1gzMcw1NRZ4NUc1M0CS7b6zvWoyvibju4nklmaiY4gfQI3SB1sLGsd11qDTSr3Dj4TkPnBcIOqEJ4D6ZExVvYLZxhcAvifX5px48IEDejXX5LH8TAC3VIGpc2B5P22cfUadACK7jLQegU66qttbImnJ5wuA8AtDKEy18
instrumentalness0.8980.7730.9380.07720.9370.9360.000180.8340.6410.849...0.8790.01657.71e-060.0007560.3660.5690.08480.30.3990.382
key72209070104...92742607011
liveness0.08960.08460.09510.1170.1110.1190.6110.2320.08120.115...0.1070.1290.08830.3330.3220.1870.1750.1180.1110.24
loudness-11.521-9.633-8.405-7.023-13.055-7.97-7.806-12.43-12.403-9.477...-8.316-10.059-14.134-10.772-10.436-8.868-10.915-10.256-12.298-10.739
lyrical_density0.0933886NaNNaNNaNNaNNaNNaNNaNNaNNaN...0.764150.396161.151470.6887050.4796210.7110750.7497950.565010.3992210.340346
lyricsyou are not mine and i am not yours and that's...NaNNaNNaNNaNNaNNaNNaNNaNNaN...he's bitter and twisted he knows what he wants...and the wise man said i don't want to hear you...been thinking about you your records are here ...destiny, destiny protect me from the world des...soul destroyed with clever toys for little boy...i never wanted anything but this i worked hard...i can't afford to breathe in this time nowhere...please forget the words that i just blurted ou...i feel better i feel better now you've gone i ...in my mind and nailed into my heels all the ti...
mode1101011100...1110111110
nameFeralLittle By Little (Caribou Rmx)Lotus Flower (Jacques Greene Rmx)Morning Mr Magpie (Nathan Fake Rmx)Bloom (Harmonic 313 Rmx)Bloom (Mark Pritchard Rmx)Feral (Lone RMX)Morning Mr Magpie (Pearson Sound Scavenger RMX)Separator (Four Tet RMX)Give Up The Ghost (Thriller Houseghost Remix)...How Do You?Stop WhisperingThinking About YouAnyone Can Play GuitarRipcordVegetableProve YourselfI Can'tLurgeeBlow Out
original_lyrics\\n\\n[Verse]\\nYou are not mine\\nAnd I am not yo...NaNNaNNaNNaNNaNNaNNaNNaNNaN...\\n\\n[Verse 1]\\nHe's bitter and twisted\\nHe kno...\\n\\n[Verse 1]\\nAnd the wise man said I don't w...\\n\\n[Verse 1]\\nBeen thinking about you\\nYour r...\\n\\n[Verse 1]\\nDestiny, destiny protect me fro...\\n\\n[Verse 1]\\nSoul destroyed with clever toys...\\n\\n[Verse 1]\\nI never wanted anything but thi...\\n\\n[Verse 1]\\nI can't afford to breathe in th...\\n\\n[Verse 1]\\nPlease forget the words that I ...\\n\\n[Verse 1]\\nI feel better\\nI feel better no...\\n\\n[Verse 1]\\nIn my mind\\nAnd nailed into my ...
popularity43444440393838373837...43454646404040394041
preview_urlhttps://p.scdn.co/mp3-preview/9dc0af2fa010c41d...https://p.scdn.co/mp3-preview/0e4982f830936c3c...https://p.scdn.co/mp3-preview/fb82884344aaffd3...https://p.scdn.co/mp3-preview/e8aa276e76b8e753...https://p.scdn.co/mp3-preview/686816b702063d96...https://p.scdn.co/mp3-preview/7e51561e95c5a3aa...https://p.scdn.co/mp3-preview/3d4ad1a19809193c...https://p.scdn.co/mp3-preview/c62871a98cd382a0...https://p.scdn.co/mp3-preview/d7e13aaa8cf0f949...https://p.scdn.co/mp3-preview/19cf8afa026a7449......https://p.scdn.co/mp3-preview/b99a13688f7d39b0...https://p.scdn.co/mp3-preview/397951413134fe02...https://p.scdn.co/mp3-preview/ec90a4cef1ff0cbf...https://p.scdn.co/mp3-preview/76e430500d399da2...https://p.scdn.co/mp3-preview/a519caf188516bc5...https://p.scdn.co/mp3-preview/22dd1bf01746cb6d...https://p.scdn.co/mp3-preview/6d62fc6cd2849212...https://p.scdn.co/mp3-preview/516d9e9499a86318...https://p.scdn.co/mp3-preview/ae0de4e9b90a15a7...https://p.scdn.co/mp3-preview/69a5564e6733d6d2...
sentiment{'probability': {'pos': 0.5347839139034816, 'n...NaNNaNNaNNaNNaNNaNNaNNaNNaN...{'probability': {'pos': 0.7154238539707657, 'n...{'probability': {'pos': 0.14401774438176765, '...{'probability': {'pos': 0.20834015470559455, '...{'probability': {'pos': 0.37346493338226217, '...{'probability': {'pos': 0.34086279665703845, '...{'probability': {'pos': 0.11670905100312225, '...{'probability': {'pos': 0.1849939345419322, 'n...{'probability': {'pos': 0.15026967254930432, '...{'probability': {'pos': 0.262975963283913, 'ne...{'probability': {'pos': 0.3796885990250341, 'n...
speechiness0.09740.06010.03270.2320.05360.03250.1740.06740.07160.102...0.0840.04720.03310.05470.05480.03390.06110.05950.02680.0506
tempo135.991115.62127.982139.976150.02375.007134.938132.035113.752119.968...147.362122.37103.44150.845137.949105.852114.098106.108101.9141.539
time_signature4444444344...4444444444
track_hrefhttps://api.spotify.com/v1/tracks/0eECFDnWy0Rd...https://api.spotify.com/v1/tracks/6Unw1AAcpS1Z...https://api.spotify.com/v1/tracks/5hfzW7LG97Hx...https://api.spotify.com/v1/tracks/64lecUR19lBS...https://api.spotify.com/v1/tracks/1CxhtUbe1o2P...https://api.spotify.com/v1/tracks/2H7Y8wYixrSl...https://api.spotify.com/v1/tracks/3zkFTfcboFcO...https://api.spotify.com/v1/tracks/7KKglMFf5KV0...https://api.spotify.com/v1/tracks/4raxzmnFq93j...https://api.spotify.com/v1/tracks/1gaAIZ4vGQ6Q......https://api.spotify.com/v1/tracks/71wIOoaoVMUw...https://api.spotify.com/v1/tracks/2zYmvi3w2T8a...https://api.spotify.com/v1/tracks/3ovbSnT5NNhl...https://api.spotify.com/v1/tracks/4NUc1M0CS7b6...https://api.spotify.com/v1/tracks/4nklmaiY4gfQ...https://api.spotify.com/v1/tracks/11qDTSr3Dj4T...https://api.spotify.com/v1/tracks/4D6ZExVvYLZx...https://api.spotify.com/v1/tracks/48IEDejXX5LH...https://api.spotify.com/v1/tracks/2B5P22cfUadA...https://api.spotify.com/v1/tracks/6qttbImnJ5wu...
track_number4123456789...3456789101112
typeaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_features...audio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_featuresaudio_features
urispotify:track:0eECFDnWy0RdjMmJ8NOeALspotify:track:6Unw1AAcpS1ZgZoRlj2jxAspotify:track:5hfzW7LG97Hxv62HHUKgajspotify:track:64lecUR19lBSu317AzVZv3spotify:track:1CxhtUbe1o2PeMM3l5Kch6spotify:track:2H7Y8wYixrSlKJoaZ1N2ylspotify:track:3zkFTfcboFcOdno0CHCmTcspotify:track:7KKglMFf5KV0PIDSAOqfnHspotify:track:4raxzmnFq93jfKC8c3xcIvspotify:track:1gaAIZ4vGQ6QvDUgN2Xyus...spotify:track:71wIOoaoVMUwskK5yCXZL4spotify:track:2zYmvi3w2T8a9Ckrv21bvWspotify:track:3ovbSnT5NNhl1gzMcw1NRZspotify:track:4NUc1M0CS7b6zvWoyvibjuspotify:track:4nklmaiY4gfQI3SB1sLGsdspotify:track:11qDTSr3Dj4TkPnBcIOqEJspotify:track:4D6ZExVvYLZxhcAvifX5pxspotify:track:48IEDejXX5LH8TAC3VIGpcspotify:track:2B5P22cfUadACK7jLQegU6spotify:track:6qttbImnJ5wuA8AtDKEy18
valence0.7510.1310.1710.8370.1720.2870.2080.08940.3090.145...0.2640.2790.4190.5440.2580.3990.2780.2690.3890.287
\n", "

41 rows × 146 columns

\n", "
" ], "text/plain": [ " 0 \\\n", "_id 0eECFDnWy0RdjMmJ8NOeAL \n", "acousticness 0.00101 \n", "album {'name': 'The King Of Limbs', 'images': [{'wid... \n", "album_id 1DBkJIEoeHrTX4WCBQGcCi \n", "analysis_url https://api.spotify.com/v1/audio-analysis/0eEC... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity 0.349377 \n", "ctitle feral \n", "danceability 0.49 \n", "disc_number 1 \n", "duration_ms 192743 \n", "energy 0.777 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100006'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/0e... \n", "gloom 0.1245 \n", "href https://api.spotify.com/v1/tracks/0eECFDnWy0Rd... \n", "id 0eECFDnWy0RdjMmJ8NOeAL \n", "instrumentalness 0.898 \n", "key 7 \n", "liveness 0.0896 \n", "loudness -11.521 \n", "lyrical_density 0.0933886 \n", "lyrics you are not mine and i am not yours and that's... \n", "mode 1 \n", "name Feral \n", "original_lyrics \\n\\n[Verse]\\nYou are not mine\\nAnd I am not yo... \n", "popularity 43 \n", "preview_url https://p.scdn.co/mp3-preview/9dc0af2fa010c41d... \n", "sentiment {'probability': {'pos': 0.5347839139034816, 'n... \n", "speechiness 0.0974 \n", "tempo 135.991 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/0eECFDnWy0Rd... \n", "track_number 4 \n", "type audio_features \n", "uri spotify:track:0eECFDnWy0RdjMmJ8NOeAL \n", "valence 0.751 \n", "\n", " 1 \\\n", "_id 6Unw1AAcpS1ZgZoRlj2jxA \n", "acousticness 0.00822 \n", "album {'name': 'TKOL RMX 1234567', 'images': [{'widt... \n", "album_id 47xaqCsJcYFWqD1gwujl1T \n", "analysis_url https://api.spotify.com/v1/audio-analysis/6Unw... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle little by little caribou rmx \n", "danceability 0.8 \n", "disc_number 1 \n", "duration_ms 340160 \n", "energy 0.586 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100013'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/6U... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/6Unw1AAcpS1Z... \n", "id 6Unw1AAcpS1ZgZoRlj2jxA \n", "instrumentalness 0.773 \n", "key 2 \n", "liveness 0.0846 \n", "loudness -9.633 \n", "lyrical_density NaN \n", "lyrics NaN \n", "mode 1 \n", "name Little By Little (Caribou Rmx) \n", "original_lyrics NaN \n", "popularity 44 \n", "preview_url https://p.scdn.co/mp3-preview/0e4982f830936c3c... \n", "sentiment NaN \n", "speechiness 0.0601 \n", "tempo 115.62 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/6Unw1AAcpS1Z... \n", "track_number 1 \n", "type audio_features \n", "uri spotify:track:6Unw1AAcpS1ZgZoRlj2jxA \n", "valence 0.131 \n", "\n", " 2 \\\n", "_id 5hfzW7LG97Hxv62HHUKgaj \n", "acousticness 0.0589 \n", "album {'name': 'TKOL RMX 1234567', 'images': [{'widt... \n", "album_id 47xaqCsJcYFWqD1gwujl1T \n", "analysis_url https://api.spotify.com/v1/audio-analysis/5hfz... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle lotus flower jacques greene rmx \n", "danceability 0.629 \n", "disc_number 1 \n", "duration_ms 429947 \n", "energy 0.592 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100014'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/5h... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/5hfzW7LG97Hx... \n", "id 5hfzW7LG97Hxv62HHUKgaj \n", "instrumentalness 0.938 \n", "key 2 \n", "liveness 0.0951 \n", "loudness -8.405 \n", "lyrical_density NaN \n", "lyrics NaN \n", "mode 0 \n", "name Lotus Flower (Jacques Greene Rmx) \n", "original_lyrics NaN \n", "popularity 44 \n", "preview_url https://p.scdn.co/mp3-preview/fb82884344aaffd3... \n", "sentiment NaN \n", "speechiness 0.0327 \n", "tempo 127.982 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/5hfzW7LG97Hx... \n", "track_number 2 \n", "type audio_features \n", "uri spotify:track:5hfzW7LG97Hxv62HHUKgaj \n", "valence 0.171 \n", "\n", " 3 \\\n", "_id 64lecUR19lBSu317AzVZv3 \n", "acousticness 0.0825 \n", "album {'name': 'TKOL RMX 1234567', 'images': [{'widt... \n", "album_id 47xaqCsJcYFWqD1gwujl1T \n", "analysis_url https://api.spotify.com/v1/audio-analysis/64le... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle morning mr magpie nathan fake rmx \n", "danceability 0.661 \n", "disc_number 1 \n", "duration_ms 291987 \n", "energy 0.707 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100015'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/64... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/64lecUR19lBS... \n", "id 64lecUR19lBSu317AzVZv3 \n", "instrumentalness 0.0772 \n", "key 0 \n", "liveness 0.117 \n", "loudness -7.023 \n", "lyrical_density NaN \n", "lyrics NaN \n", "mode 1 \n", "name Morning Mr Magpie (Nathan Fake Rmx) \n", "original_lyrics NaN \n", "popularity 40 \n", "preview_url https://p.scdn.co/mp3-preview/e8aa276e76b8e753... \n", "sentiment NaN \n", "speechiness 0.232 \n", "tempo 139.976 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/64lecUR19lBS... \n", "track_number 3 \n", "type audio_features \n", "uri spotify:track:64lecUR19lBSu317AzVZv3 \n", "valence 0.837 \n", "\n", " 4 \\\n", "_id 1CxhtUbe1o2PeMM3l5Kch6 \n", "acousticness 0.102 \n", "album {'name': 'TKOL RMX 1234567', 'images': [{'widt... \n", "album_id 47xaqCsJcYFWqD1gwujl1T \n", "analysis_url https://api.spotify.com/v1/audio-analysis/1Cxh... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle bloom harmonic 313 rmx \n", "danceability 0.443 \n", "disc_number 1 \n", "duration_ms 304333 \n", "energy 0.665 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100016'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/1C... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/1CxhtUbe1o2P... \n", "id 1CxhtUbe1o2PeMM3l5Kch6 \n", "instrumentalness 0.937 \n", "key 9 \n", "liveness 0.111 \n", "loudness -13.055 \n", "lyrical_density NaN \n", "lyrics NaN \n", "mode 0 \n", "name Bloom (Harmonic 313 Rmx) \n", "original_lyrics NaN \n", "popularity 39 \n", "preview_url https://p.scdn.co/mp3-preview/686816b702063d96... \n", "sentiment NaN \n", "speechiness 0.0536 \n", "tempo 150.023 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/1CxhtUbe1o2P... \n", "track_number 4 \n", "type audio_features \n", "uri spotify:track:1CxhtUbe1o2PeMM3l5Kch6 \n", "valence 0.172 \n", "\n", " 5 \\\n", "_id 2H7Y8wYixrSlKJoaZ1N2yl \n", "acousticness 0.000801 \n", "album {'name': 'TKOL RMX 1234567', 'images': [{'widt... \n", "album_id 47xaqCsJcYFWqD1gwujl1T \n", "analysis_url https://api.spotify.com/v1/audio-analysis/2H7Y... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle bloom mark pritchard rmx \n", "danceability 0.414 \n", "disc_number 1 \n", "duration_ms 367280 \n", "energy 0.712 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100017'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/2H... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/2H7Y8wYixrSl... \n", "id 2H7Y8wYixrSlKJoaZ1N2yl \n", "instrumentalness 0.936 \n", "key 0 \n", "liveness 0.119 \n", "loudness -7.97 \n", "lyrical_density NaN \n", "lyrics NaN \n", "mode 1 \n", "name Bloom (Mark Pritchard Rmx) \n", "original_lyrics NaN \n", "popularity 38 \n", "preview_url https://p.scdn.co/mp3-preview/7e51561e95c5a3aa... \n", "sentiment NaN \n", "speechiness 0.0325 \n", "tempo 75.007 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/2H7Y8wYixrSl... \n", "track_number 5 \n", "type audio_features \n", "uri spotify:track:2H7Y8wYixrSlKJoaZ1N2yl \n", "valence 0.287 \n", "\n", " 6 \\\n", "_id 3zkFTfcboFcOdno0CHCmTc \n", "acousticness 0.0955 \n", "album {'name': 'TKOL RMX 1234567', 'images': [{'widt... \n", "album_id 47xaqCsJcYFWqD1gwujl1T \n", "analysis_url https://api.spotify.com/v1/audio-analysis/3zkF... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle feral lone rmx \n", "danceability 0.761 \n", "disc_number 1 \n", "duration_ms 317507 \n", "energy 0.877 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100018'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/3z... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/3zkFTfcboFcO... \n", "id 3zkFTfcboFcOdno0CHCmTc \n", "instrumentalness 0.00018 \n", "key 7 \n", "liveness 0.611 \n", "loudness -7.806 \n", "lyrical_density NaN \n", "lyrics NaN \n", "mode 1 \n", "name Feral (Lone RMX) \n", "original_lyrics NaN \n", "popularity 38 \n", "preview_url https://p.scdn.co/mp3-preview/3d4ad1a19809193c... \n", "sentiment NaN \n", "speechiness 0.174 \n", "tempo 134.938 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/3zkFTfcboFcO... \n", "track_number 6 \n", "type audio_features \n", "uri spotify:track:3zkFTfcboFcOdno0CHCmTc \n", "valence 0.208 \n", "\n", " 7 \\\n", "_id 7KKglMFf5KV0PIDSAOqfnH \n", "acousticness 0.0147 \n", "album {'name': 'TKOL RMX 1234567', 'images': [{'widt... \n", "album_id 47xaqCsJcYFWqD1gwujl1T \n", "analysis_url https://api.spotify.com/v1/audio-analysis/7KKg... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle morning mr magpie pearson sound scavenger rmx \n", "danceability 0.481 \n", "disc_number 1 \n", "duration_ms 278893 \n", "energy 0.336 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100020'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/7K... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/7KKglMFf5KV0... \n", "id 7KKglMFf5KV0PIDSAOqfnH \n", "instrumentalness 0.834 \n", "key 0 \n", "liveness 0.232 \n", "loudness -12.43 \n", "lyrical_density NaN \n", "lyrics NaN \n", "mode 1 \n", "name Morning Mr Magpie (Pearson Sound Scavenger RMX) \n", "original_lyrics NaN \n", "popularity 37 \n", "preview_url https://p.scdn.co/mp3-preview/c62871a98cd382a0... \n", "sentiment NaN \n", "speechiness 0.0674 \n", "tempo 132.035 \n", "time_signature 3 \n", "track_href https://api.spotify.com/v1/tracks/7KKglMFf5KV0... \n", "track_number 7 \n", "type audio_features \n", "uri spotify:track:7KKglMFf5KV0PIDSAOqfnH \n", "valence 0.0894 \n", "\n", " 8 \\\n", "_id 4raxzmnFq93jfKC8c3xcIv \n", "acousticness 0.443 \n", "album {'name': 'TKOL RMX 1234567', 'images': [{'widt... \n", "album_id 47xaqCsJcYFWqD1gwujl1T \n", "analysis_url https://api.spotify.com/v1/audio-analysis/4rax... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle separator four tet rmx \n", "danceability 0.461 \n", "disc_number 1 \n", "duration_ms 423000 \n", "energy 0.455 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100019'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/4r... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/4raxzmnFq93j... \n", "id 4raxzmnFq93jfKC8c3xcIv \n", "instrumentalness 0.641 \n", "key 10 \n", "liveness 0.0812 \n", "loudness -12.403 \n", "lyrical_density NaN \n", "lyrics NaN \n", "mode 0 \n", "name Separator (Four Tet RMX) \n", "original_lyrics NaN \n", "popularity 38 \n", "preview_url https://p.scdn.co/mp3-preview/d7e13aaa8cf0f949... \n", "sentiment NaN \n", "speechiness 0.0716 \n", "tempo 113.752 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/4raxzmnFq93j... \n", "track_number 8 \n", "type audio_features \n", "uri spotify:track:4raxzmnFq93jfKC8c3xcIv \n", "valence 0.309 \n", "\n", " 9 \\\n", "_id 1gaAIZ4vGQ6QvDUgN2Xyus \n", "acousticness 0.313 \n", "album {'name': 'TKOL RMX 1234567', 'images': [{'widt... \n", "album_id 47xaqCsJcYFWqD1gwujl1T \n", "analysis_url https://api.spotify.com/v1/audio-analysis/1gaA... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle give up the ghost thriller houseghost remix \n", "danceability 0.596 \n", "disc_number 1 \n", "duration_ms 373760 \n", "energy 0.894 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100031'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/1g... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/1gaAIZ4vGQ6Q... \n", "id 1gaAIZ4vGQ6QvDUgN2Xyus \n", "instrumentalness 0.849 \n", "key 4 \n", "liveness 0.115 \n", "loudness -9.477 \n", "lyrical_density NaN \n", "lyrics NaN \n", "mode 0 \n", "name Give Up The Ghost (Thriller Houseghost Remix) \n", "original_lyrics NaN \n", "popularity 37 \n", "preview_url https://p.scdn.co/mp3-preview/19cf8afa026a7449... \n", "sentiment NaN \n", "speechiness 0.102 \n", "tempo 119.968 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/1gaAIZ4vGQ6Q... \n", "track_number 9 \n", "type audio_features \n", "uri spotify:track:1gaAIZ4vGQ6QvDUgN2Xyus \n", "valence 0.145 \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", " 136 \\\n", "_id 71wIOoaoVMUwskK5yCXZL4 \n", "acousticness 0.000659 \n", "album {'name': 'Pablo Honey', 'images': [{'width': 6... \n", "album_id 6400dnyeDyD2mIFHfkwHXN \n", "analysis_url https://api.spotify.com/v1/audio-analysis/71wI... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle how do you \n", "danceability 0.185 \n", "disc_number 1 \n", "duration_ms 132173 \n", "energy 0.964 \n", "explicit False \n", "external_ids {'isrc': 'GBAYE9300105'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/71... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/71wIOoaoVMUw... \n", "id 71wIOoaoVMUwskK5yCXZL4 \n", "instrumentalness 0.879 \n", "key 9 \n", "liveness 0.107 \n", "loudness -8.316 \n", "lyrical_density 0.76415 \n", "lyrics he's bitter and twisted he knows what he wants... \n", "mode 1 \n", "name How Do You? \n", "original_lyrics \\n\\n[Verse 1]\\nHe's bitter and twisted\\nHe kno... \n", "popularity 43 \n", "preview_url https://p.scdn.co/mp3-preview/b99a13688f7d39b0... \n", "sentiment {'probability': {'pos': 0.7154238539707657, 'n... \n", "speechiness 0.084 \n", "tempo 147.362 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/71wIOoaoVMUw... \n", "track_number 3 \n", "type audio_features \n", "uri spotify:track:71wIOoaoVMUwskK5yCXZL4 \n", "valence 0.264 \n", "\n", " 137 \\\n", "_id 2zYmvi3w2T8a9Ckrv21bvW \n", "acousticness 0.000849 \n", "album {'name': 'Pablo Honey', 'images': [{'width': 6... \n", "album_id 6400dnyeDyD2mIFHfkwHXN \n", "analysis_url https://api.spotify.com/v1/audio-analysis/2zYm... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle stop whispering \n", "danceability 0.212 \n", "disc_number 1 \n", "duration_ms 325627 \n", "energy 0.696 \n", "explicit False \n", "external_ids {'isrc': 'GBAYE9300106'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/2z... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/2zYmvi3w2T8a... \n", "id 2zYmvi3w2T8a9Ckrv21bvW \n", "instrumentalness 0.0165 \n", "key 2 \n", "liveness 0.129 \n", "loudness -10.059 \n", "lyrical_density 0.39616 \n", "lyrics and the wise man said i don't want to hear you... \n", "mode 1 \n", "name Stop Whispering \n", "original_lyrics \\n\\n[Verse 1]\\nAnd the wise man said I don't w... \n", "popularity 45 \n", "preview_url https://p.scdn.co/mp3-preview/397951413134fe02... \n", "sentiment {'probability': {'pos': 0.14401774438176765, '... \n", "speechiness 0.0472 \n", "tempo 122.37 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/2zYmvi3w2T8a... \n", "track_number 4 \n", "type audio_features \n", "uri spotify:track:2zYmvi3w2T8a9Ckrv21bvW \n", "valence 0.279 \n", "\n", " 138 \\\n", "_id 3ovbSnT5NNhl1gzMcw1NRZ \n", "acousticness 0.704 \n", "album {'name': 'Pablo Honey', 'images': [{'width': 6... \n", "album_id 6400dnyeDyD2mIFHfkwHXN \n", "analysis_url https://api.spotify.com/v1/audio-analysis/3ovb... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle thinking about you \n", "danceability 0.364 \n", "disc_number 1 \n", "duration_ms 161533 \n", "energy 0.37 \n", "explicit False \n", "external_ids {'isrc': 'GBAYE9200114'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/3o... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/3ovbSnT5NNhl... \n", "id 3ovbSnT5NNhl1gzMcw1NRZ \n", "instrumentalness 7.71e-06 \n", "key 7 \n", "liveness 0.0883 \n", "loudness -14.134 \n", "lyrical_density 1.15147 \n", "lyrics been thinking about you your records are here ... \n", "mode 1 \n", "name Thinking About You \n", "original_lyrics \\n\\n[Verse 1]\\nBeen thinking about you\\nYour r... \n", "popularity 46 \n", "preview_url https://p.scdn.co/mp3-preview/ec90a4cef1ff0cbf... \n", "sentiment {'probability': {'pos': 0.20834015470559455, '... \n", "speechiness 0.0331 \n", "tempo 103.44 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/3ovbSnT5NNhl... \n", "track_number 5 \n", "type audio_features \n", "uri spotify:track:3ovbSnT5NNhl1gzMcw1NRZ \n", "valence 0.419 \n", "\n", " 139 \\\n", "_id 4NUc1M0CS7b6zvWoyvibju \n", "acousticness 0.000101 \n", "album {'name': 'Pablo Honey', 'images': [{'width': 6... \n", "album_id 6400dnyeDyD2mIFHfkwHXN \n", "analysis_url https://api.spotify.com/v1/audio-analysis/4NUc... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle anyone can play guitar \n", "danceability 0.294 \n", "disc_number 1 \n", "duration_ms 217800 \n", "energy 0.813 \n", "explicit False \n", "external_ids {'isrc': 'GBAYE9300107'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/4N... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/4NUc1M0CS7b6... \n", "id 4NUc1M0CS7b6zvWoyvibju \n", "instrumentalness 0.000756 \n", "key 4 \n", "liveness 0.333 \n", "loudness -10.772 \n", "lyrical_density 0.688705 \n", "lyrics destiny, destiny protect me from the world des... \n", "mode 0 \n", "name Anyone Can Play Guitar \n", "original_lyrics \\n\\n[Verse 1]\\nDestiny, destiny protect me fro... \n", "popularity 46 \n", "preview_url https://p.scdn.co/mp3-preview/76e430500d399da2... \n", "sentiment {'probability': {'pos': 0.37346493338226217, '... \n", "speechiness 0.0547 \n", "tempo 150.845 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/4NUc1M0CS7b6... \n", "track_number 6 \n", "type audio_features \n", "uri spotify:track:4NUc1M0CS7b6zvWoyvibju \n", "valence 0.544 \n", "\n", " 140 \\\n", "_id 4nklmaiY4gfQI3SB1sLGsd \n", "acousticness 1.93e-05 \n", "album {'name': 'Pablo Honey', 'images': [{'width': 6... \n", "album_id 6400dnyeDyD2mIFHfkwHXN \n", "analysis_url https://api.spotify.com/v1/audio-analysis/4nkl... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle ripcord \n", "danceability 0.256 \n", "disc_number 1 \n", "duration_ms 189733 \n", "energy 0.906 \n", "explicit False \n", "external_ids {'isrc': 'GBAYE9300108'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/4n... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/4nklmaiY4gfQ... \n", "id 4nklmaiY4gfQI3SB1sLGsd \n", "instrumentalness 0.366 \n", "key 2 \n", "liveness 0.322 \n", "loudness -10.436 \n", "lyrical_density 0.479621 \n", "lyrics soul destroyed with clever toys for little boy... \n", "mode 1 \n", "name Ripcord \n", "original_lyrics \\n\\n[Verse 1]\\nSoul destroyed with clever toys... \n", "popularity 40 \n", "preview_url https://p.scdn.co/mp3-preview/a519caf188516bc5... \n", "sentiment {'probability': {'pos': 0.34086279665703845, '... \n", "speechiness 0.0548 \n", "tempo 137.949 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/4nklmaiY4gfQ... \n", "track_number 7 \n", "type audio_features \n", "uri spotify:track:4nklmaiY4gfQI3SB1sLGsd \n", "valence 0.258 \n", "\n", " 141 \\\n", "_id 11qDTSr3Dj4TkPnBcIOqEJ \n", "acousticness 0.00281 \n", "album {'name': 'Pablo Honey', 'images': [{'width': 6... \n", "album_id 6400dnyeDyD2mIFHfkwHXN \n", "analysis_url https://api.spotify.com/v1/audio-analysis/11qD... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle vegetable \n", "danceability 0.384 \n", "disc_number 1 \n", "duration_ms 192667 \n", "energy 0.717 \n", "explicit False \n", "external_ids {'isrc': 'GBAYE9300109'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/11... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/11qDTSr3Dj4T... \n", "id 11qDTSr3Dj4TkPnBcIOqEJ \n", "instrumentalness 0.569 \n", "key 6 \n", "liveness 0.187 \n", "loudness -8.868 \n", "lyrical_density 0.711075 \n", "lyrics i never wanted anything but this i worked hard... \n", "mode 1 \n", "name Vegetable \n", "original_lyrics \\n\\n[Verse 1]\\nI never wanted anything but thi... \n", "popularity 40 \n", "preview_url https://p.scdn.co/mp3-preview/22dd1bf01746cb6d... \n", "sentiment {'probability': {'pos': 0.11670905100312225, '... \n", "speechiness 0.0339 \n", "tempo 105.852 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/11qDTSr3Dj4T... \n", "track_number 8 \n", "type audio_features \n", "uri spotify:track:11qDTSr3Dj4TkPnBcIOqEJ \n", "valence 0.399 \n", "\n", " 142 \\\n", "_id 4D6ZExVvYLZxhcAvifX5px \n", "acousticness 0.000849 \n", "album {'name': 'Pablo Honey', 'images': [{'width': 6... \n", "album_id 6400dnyeDyD2mIFHfkwHXN \n", "analysis_url https://api.spotify.com/v1/audio-analysis/4D6Z... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle prove yourself \n", "danceability 0.25 \n", "disc_number 1 \n", "duration_ms 145373 \n", "energy 0.62 \n", "explicit False \n", "external_ids {'isrc': 'GBAYE9200115'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/4D... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/4D6ZExVvYLZx... \n", "id 4D6ZExVvYLZxhcAvifX5px \n", "instrumentalness 0.0848 \n", "key 0 \n", "liveness 0.175 \n", "loudness -10.915 \n", "lyrical_density 0.749795 \n", "lyrics i can't afford to breathe in this time nowhere... \n", "mode 1 \n", "name Prove Yourself \n", "original_lyrics \\n\\n[Verse 1]\\nI can't afford to breathe in th... \n", "popularity 40 \n", "preview_url https://p.scdn.co/mp3-preview/6d62fc6cd2849212... \n", "sentiment {'probability': {'pos': 0.1849939345419322, 'n... \n", "speechiness 0.0611 \n", "tempo 114.098 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/4D6ZExVvYLZx... \n", "track_number 9 \n", "type audio_features \n", "uri spotify:track:4D6ZExVvYLZxhcAvifX5px \n", "valence 0.278 \n", "\n", " 143 \\\n", "_id 48IEDejXX5LH8TAC3VIGpc \n", "acousticness 0.00968 \n", "album {'name': 'Pablo Honey', 'images': [{'width': 6... \n", "album_id 6400dnyeDyD2mIFHfkwHXN \n", "analysis_url https://api.spotify.com/v1/audio-analysis/48IE... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle i cant \n", "danceability 0.284 \n", "disc_number 1 \n", "duration_ms 253093 \n", "energy 0.825 \n", "explicit False \n", "external_ids {'isrc': 'GBAYE9300110'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/48... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/48IEDejXX5LH... \n", "id 48IEDejXX5LH8TAC3VIGpc \n", "instrumentalness 0.3 \n", "key 7 \n", "liveness 0.118 \n", "loudness -10.256 \n", "lyrical_density 0.56501 \n", "lyrics please forget the words that i just blurted ou... \n", "mode 1 \n", "name I Can't \n", "original_lyrics \\n\\n[Verse 1]\\nPlease forget the words that I ... \n", "popularity 39 \n", "preview_url https://p.scdn.co/mp3-preview/516d9e9499a86318... \n", "sentiment {'probability': {'pos': 0.15026967254930432, '... \n", "speechiness 0.0595 \n", "tempo 106.108 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/48IEDejXX5LH... \n", "track_number 10 \n", "type audio_features \n", "uri spotify:track:48IEDejXX5LH8TAC3VIGpc \n", "valence 0.269 \n", "\n", " 144 \\\n", "_id 2B5P22cfUadACK7jLQegU6 \n", "acousticness 0.000135 \n", "album {'name': 'Pablo Honey', 'images': [{'width': 6... \n", "album_id 6400dnyeDyD2mIFHfkwHXN \n", "analysis_url https://api.spotify.com/v1/audio-analysis/2B5P... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle lurgee \n", "danceability 0.42 \n", "disc_number 1 \n", "duration_ms 187867 \n", "energy 0.548 \n", "explicit False \n", "external_ids {'isrc': 'GBAYE9200116'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/2B... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/2B5P22cfUadA... \n", "id 2B5P22cfUadACK7jLQegU6 \n", "instrumentalness 0.399 \n", "key 0 \n", "liveness 0.111 \n", "loudness -12.298 \n", "lyrical_density 0.399221 \n", "lyrics i feel better i feel better now you've gone i ... \n", "mode 1 \n", "name Lurgee \n", "original_lyrics \\n\\n[Verse 1]\\nI feel better\\nI feel better no... \n", "popularity 40 \n", "preview_url https://p.scdn.co/mp3-preview/ae0de4e9b90a15a7... \n", "sentiment {'probability': {'pos': 0.262975963283913, 'ne... \n", "speechiness 0.0268 \n", "tempo 101.9 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/2B5P22cfUadA... \n", "track_number 11 \n", "type audio_features \n", "uri spotify:track:2B5P22cfUadACK7jLQegU6 \n", "valence 0.389 \n", "\n", " 145 \n", "_id 6qttbImnJ5wuA8AtDKEy18 \n", "acousticness 0.000465 \n", "album {'name': 'Pablo Honey', 'images': [{'width': 6... \n", "album_id 6400dnyeDyD2mIFHfkwHXN \n", "analysis_url https://api.spotify.com/v1/audio-analysis/6qtt... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'name': 'Radiohead', 'id': '4Z8W4fKeB5YxbusR... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "complexity NaN \n", "ctitle blow out \n", "danceability 0.284 \n", "disc_number 1 \n", "duration_ms 282067 \n", "energy 0.719 \n", "explicit False \n", "external_ids {'isrc': 'GBAYE9300111'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/6q... \n", "gloom NaN \n", "href https://api.spotify.com/v1/tracks/6qttbImnJ5wu... \n", "id 6qttbImnJ5wuA8AtDKEy18 \n", "instrumentalness 0.382 \n", "key 11 \n", "liveness 0.24 \n", "loudness -10.739 \n", "lyrical_density 0.340346 \n", "lyrics in my mind and nailed into my heels all the ti... \n", "mode 0 \n", "name Blow Out \n", "original_lyrics \\n\\n[Verse 1]\\nIn my mind\\nAnd nailed into my ... \n", "popularity 41 \n", "preview_url https://p.scdn.co/mp3-preview/69a5564e6733d6d2... \n", "sentiment {'probability': {'pos': 0.3796885990250341, 'n... \n", "speechiness 0.0506 \n", "tempo 141.539 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/6qttbImnJ5wu... \n", "track_number 12 \n", "type audio_features \n", "uri spotify:track:6qttbImnJ5wuA8AtDKEy18 \n", "valence 0.287 \n", "\n", "[41 rows x 146 columns]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "radiohead_tracks = pd.DataFrame(list(tracks.find({'artist_id': radiohead_id})))\n", "radiohead_tracks.T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How happy are the Beatles and Radiohead tracks?" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "beatles_tracks['valence'].hist()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "radiohead_tracks['valence'].hist()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Lyrics search\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": 38, "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": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "586" ] }, "execution_count": 39, "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": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "604" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "response = genius_artist_search('radiohead')\n", "radiohead_genius_id = [hit['result']['primary_artist']['id'] for hit in response['response']['hits']][0]\n", "radiohead_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": 41, "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": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1071" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "genius_song_search(beatles_genius_id)\n", "genius_tracks.find().count()" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1071" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "genius_song_search(radiohead_genius_id)\n", "genius_tracks.find().count()" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{'_id': 1497768,\n", " 'annotation_count': 1,\n", " 'api_path': '/songs/1497768',\n", " 'full_title': 'All Together on the Wireless Machine by\\xa0The\\xa0Beatles',\n", " 'header_image_thumbnail_url': 'https://images.genius.com/ad1f59e8a03be4eb521e88015d15d6e8.200x200x1.jpg',\n", " 'header_image_url': 'https://images.genius.com/ad1f59e8a03be4eb521e88015d15d6e8.200x200x1.jpg',\n", " 'id': 1497768,\n", " 'lyrics_owner_id': 1549345,\n", " 'path': '/The-beatles-all-together-on-the-wireless-machine-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://images.genius.com/ad1f59e8a03be4eb521e88015d15d6e8.200x200x1.jpg',\n", " 'stats': {'hot': False, 'unreviewed_annotations': 0},\n", " 'title': 'All Together on the Wireless Machine',\n", " 'url': 'https://genius.com/The-beatles-all-together-on-the-wireless-machine-lyrics'}" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "genius_tracks.find_one()" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789...1061106210631064106510661067106810691070
_id149776821031512353312353711772221028413363941079151308579123808...8170531048331326931304323893451245984311907310293310289106069
annotation_count1154611611...71114114116
api_path/songs/1497768/songs/210315/songs/123533/songs/123537/songs/117722/songs/210284/songs/1336394/songs/107915/songs/1308579/songs/123808.../songs/81705/songs/310483/songs/313269/songs/313043/songs/2389345/songs/1245984/songs/311907/songs/310293/songs/310289/songs/106069
ctitleNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...you cant always get what you wantyou cant catch meyou dont have to mean ityou got me rockingyou got the silverdont look backeach and every day of the yearim a king beelittle by littlebrown sugar
full_titleAll Together on the Wireless Machine by The Be...A Little Rhyme by The Beatles (Ft. John & Rodn...And I Love Her by The BeatlesAny Time at All by The BeatlesA Taste of Honey by The BeatlesBeatle Greetings by The Beatles (Ft. George Ha...Can You Take Me Back by The BeatlesCarry That Weight by The BeatlesDown in Eastern Australia by The BeatlesEverybody's Trying to Be My Baby by The Beatles...You Can't Always Get What You Want by The Roll...You Can't Catch Me by The Rolling StonesYou Don't Have To Mean It by The Rolling StonesYou Got Me Rocking by The Rolling StonesYou Got the Silver by The Rolling Stones (Ft. ...Don't Look Back by The Rolling StonesEach and every day of the year by The Rolling ...I'm A King Bee by The Rolling StonesLittle By Little by The Rolling StonesBrown Sugar by The Rolling Stones
header_image_thumbnail_urlhttps://images.genius.com/ad1f59e8a03be4eb521e...https://s3.amazonaws.com/rapgenius/110537_cda_...https://images.genius.com/68c11c7f5b6b66194d77...https://images.genius.com/68c11c7f5b6b66194d77...https://s3.amazonaws.com/rapgenius/1360709432_...https://s3.amazonaws.com/rapgenius/110537_cda_...https://images.genius.com/ad1f59e8a03be4eb521e...https://images.genius.com/560d707ac51a528c952d...https://images.genius.com/ad1f59e8a03be4eb521e...https://images.genius.com/4268a08d2b36372eb6e8......https://images.genius.com/7e75133e0e4017798a7a...https://images.genius.com/9c0263f14c39b6df59e5...https://images.genius.com/eb7fd9257058b77179cb...https://images.genius.com/a8ed1f93846da84943a7...https://images.rapgenius.com/ac969979ccb91a0d2...https://images.genius.com/23bbf05f7ee8286a8905...https://images.genius.com/6c322c96140487d56076...https://images.genius.com/076d49bcc219432b68b4...https://images.genius.com/076d49bcc219432b68b4...https://images.genius.com/5b7d4f11893ff2fdeba7...
header_image_urlhttps://images.genius.com/ad1f59e8a03be4eb521e...https://s3.amazonaws.com/rapgenius/110537_cda_...https://images.genius.com/68c11c7f5b6b66194d77...https://images.genius.com/68c11c7f5b6b66194d77...https://s3.amazonaws.com/rapgenius/1360709432_...https://s3.amazonaws.com/rapgenius/110537_cda_...https://images.genius.com/ad1f59e8a03be4eb521e...https://images.genius.com/560d707ac51a528c952d...https://images.genius.com/ad1f59e8a03be4eb521e...https://images.genius.com/4268a08d2b36372eb6e8......https://images.genius.com/7e75133e0e4017798a7a...https://images.genius.com/9c0263f14c39b6df59e5...https://images.genius.com/eb7fd9257058b77179cb...https://images.genius.com/a8ed1f93846da84943a7...https://images.rapgenius.com/ac969979ccb91a0d2...https://images.genius.com/23bbf05f7ee8286a8905...https://images.genius.com/6c322c96140487d56076...https://images.genius.com/076d49bcc219432b68b4...https://images.genius.com/076d49bcc219432b68b4...https://images.genius.com/5b7d4f11893ff2fdeba7...
id149776821031512353312353711772221028413363941079151308579123808...8170531048331326931304323893451245984311907310293310289106069
lyricsNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...i saw her today at the reception a glass of wi...i bought a brand new air mobile it was custom ...you don't have to mean it you just got to say ...i was a butcher cutting up meat my hands were ...hey babe, what's in your eyes? i saw them flas...if it's love that you're running from there's ...do i miss her kiss at night time arms around m...well i am a king bee buzzing around your hive ...tried to trail you last night, baby, trail you...gold coast slave ship bound for cotton fields ...
lyrics_owner_id15493452509624687146871707992509621549345116340154934522533...7793543833546083543821217557154934535438535438335438316
original_lyricsNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...\\n\\n[Intro: London Bach Choir]\\nI saw her toda...\\n\\n[Verse 1]\\nI bought a brand new air mobile...\\n\\n[Verse 1]\\nYou don't have to mean it\\nYou ...\\n\\n[Verse 1]\\nI was a butcher\\nCutting up mea...\\n\\n[Verse 1]\\nHey babe, what's in your eyes?\\...\\n\\nIf it's love that you're running from\\nThe...\\n\\n[Verse 1]\\nDo I miss her kiss at night tim...\\n\\n[Chorus]\\nWell I am a king bee\\nBuzzing ar...\\n\\n[Verse 1]\\nTried to trail you last night, ...\\n\\n[Verse 1]\\nGold coast slave ship bound for...
path/The-beatles-all-together-on-the-wireless-mach.../The-beatles-a-little-rhyme-lyrics/The-beatles-and-i-love-her-lyrics/The-beatles-any-time-at-all-lyrics/The-beatles-a-taste-of-honey-lyrics/The-beatles-beatle-greetings-lyrics/The-beatles-can-you-take-me-back-lyrics/The-beatles-carry-that-weight-lyrics/The-beatles-down-in-eastern-australia-lyrics/The-beatles-everybodys-trying-to-be-my-baby-l....../The-rolling-stones-you-cant-always-get-what-y.../The-rolling-stones-you-cant-catch-me-lyrics/The-rolling-stones-you-dont-have-to-mean-it-l.../The-rolling-stones-you-got-me-rocking-lyrics/The-rolling-stones-you-got-the-silver-lyrics/The-rolling-stones-dont-look-back-lyrics/The-rolling-stones-each-and-every-day-of-the-.../The-rolling-stones-im-a-king-bee-lyrics/The-rolling-stones-little-by-little-lyrics/The-rolling-stones-brown-sugar-lyrics
primary_artist{'image_url': 'https://images.genius.com/ad1f5...{'image_url': 'https://images.genius.com/ad1f5...{'image_url': 'https://images.genius.com/ad1f5...{'image_url': 'https://images.genius.com/ad1f5...{'image_url': 'https://images.genius.com/ad1f5...{'image_url': 'https://images.genius.com/ad1f5...{'image_url': 'https://images.genius.com/ad1f5...{'image_url': 'https://images.genius.com/ad1f5...{'image_url': 'https://images.genius.com/ad1f5...{'image_url': 'https://images.genius.com/ad1f5......{'image_url': 'https://images.genius.com/23bbf...{'image_url': 'https://images.genius.com/23bbf...{'image_url': 'https://images.genius.com/23bbf...{'image_url': 'https://images.genius.com/23bbf...{'image_url': 'https://images.genius.com/23bbf...{'image_url': 'https://images.genius.com/23bbf...{'image_url': 'https://images.genius.com/23bbf...{'image_url': 'https://images.genius.com/23bbf...{'image_url': 'https://images.genius.com/23bbf...{'image_url': 'https://images.genius.com/23bbf...
pyongs_countNaNNaN152NaNNaNNaN1NaNNaN...15NaNNaNNaNNaNNaNNaNNaNNaN7
song_art_image_thumbnail_urlhttps://images.genius.com/ad1f59e8a03be4eb521e...https://s3.amazonaws.com/rapgenius/110537_cda_...https://images.genius.com/68c11c7f5b6b66194d77...https://images.genius.com/68c11c7f5b6b66194d77...https://s3.amazonaws.com/rapgenius/1360709432_...https://s3.amazonaws.com/rapgenius/110537_cda_...https://images.genius.com/ad1f59e8a03be4eb521e...https://images.genius.com/560d707ac51a528c952d...https://images.genius.com/ad1f59e8a03be4eb521e...https://images.genius.com/4268a08d2b36372eb6e8......https://images.genius.com/7e75133e0e4017798a7a...https://images.genius.com/9c0263f14c39b6df59e5...https://images.genius.com/eb7fd9257058b77179cb...https://images.genius.com/a8ed1f93846da84943a7...https://images.rapgenius.com/ac969979ccb91a0d2...https://images.genius.com/23bbf05f7ee8286a8905...https://images.genius.com/6c322c96140487d56076...https://images.genius.com/076d49bcc219432b68b4...https://images.genius.com/076d49bcc219432b68b4...https://images.genius.com/5b7d4f11893ff2fdeba7...
stats{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False, 'p...{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False, 'p...{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False}...{'unreviewed_annotations': 0, 'hot': False, 'p...{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False}{'unreviewed_annotations': 0, 'hot': False, 'p...
titleAll Together on the Wireless MachineA Little RhymeAnd I Love HerAny Time at AllA Taste of HoneyBeatle GreetingsCan You Take Me BackCarry That WeightDown in Eastern AustraliaEverybody's Trying to Be My Baby...You Can't Always Get What You WantYou Can't Catch MeYou Don't Have To Mean ItYou Got Me RockingYou Got the SilverDon't Look BackEach and every day of the yearI'm A King BeeLittle By LittleBrown Sugar
urlhttps://genius.com/The-beatles-all-together-on...https://genius.com/The-beatles-a-little-rhyme-...https://genius.com/The-beatles-and-i-love-her-...https://genius.com/The-beatles-any-time-at-all...https://genius.com/The-beatles-a-taste-of-hone...https://genius.com/The-beatles-beatle-greeting...https://genius.com/The-beatles-can-you-take-me...https://genius.com/The-beatles-carry-that-weig...https://genius.com/The-beatles-down-in-eastern...https://genius.com/The-beatles-everybodys-tryi......https://genius.com/The-rolling-stones-you-cant...https://genius.com/The-rolling-stones-you-cant...https://genius.com/The-rolling-stones-you-dont...https://genius.com/The-rolling-stones-you-got-...https://genius.com/The-rolling-stones-you-got-...https://genius.com/The-rolling-stones-dont-loo...https://genius.com/The-rolling-stones-each-and...https://genius.com/The-rolling-stones-im-a-kin...https://genius.com/The-rolling-stones-little-b...https://genius.com/The-rolling-stones-brown-su...
\n", "

18 rows × 1071 columns

\n", "
" ], "text/plain": [ " 0 \\\n", "_id 1497768 \n", "annotation_count 1 \n", "api_path /songs/1497768 \n", "ctitle NaN \n", "full_title All Together on the Wireless Machine by The Be... \n", "header_image_thumbnail_url https://images.genius.com/ad1f59e8a03be4eb521e... \n", "header_image_url https://images.genius.com/ad1f59e8a03be4eb521e... \n", "id 1497768 \n", "lyrics NaN \n", "lyrics_owner_id 1549345 \n", "original_lyrics NaN \n", "path /The-beatles-all-together-on-the-wireless-mach... \n", "primary_artist {'image_url': 'https://images.genius.com/ad1f5... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/ad1f59e8a03be4eb521e... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title All Together on the Wireless Machine \n", "url https://genius.com/The-beatles-all-together-on... \n", "\n", " 1 \\\n", "_id 210315 \n", "annotation_count 1 \n", "api_path /songs/210315 \n", "ctitle NaN \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 NaN \n", "lyrics_owner_id 250962 \n", "original_lyrics NaN \n", "path /The-beatles-a-little-rhyme-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/ad1f5... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/110537_cda_... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title A Little Rhyme \n", "url https://genius.com/The-beatles-a-little-rhyme-... \n", "\n", " 2 \\\n", "_id 123533 \n", "annotation_count 5 \n", "api_path /songs/123533 \n", "ctitle NaN \n", "full_title And I Love Her by The Beatles \n", "header_image_thumbnail_url https://images.genius.com/68c11c7f5b6b66194d77... \n", "header_image_url https://images.genius.com/68c11c7f5b6b66194d77... \n", "id 123533 \n", "lyrics NaN \n", "lyrics_owner_id 46871 \n", "original_lyrics NaN \n", "path /The-beatles-and-i-love-her-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/ad1f5... \n", "pyongs_count 15 \n", "song_art_image_thumbnail_url https://images.genius.com/68c11c7f5b6b66194d77... \n", "stats {'unreviewed_annotations': 0, 'hot': False, 'p... \n", "title And I Love Her \n", "url https://genius.com/The-beatles-and-i-love-her-... \n", "\n", " 3 \\\n", "_id 123537 \n", "annotation_count 4 \n", "api_path /songs/123537 \n", "ctitle NaN \n", "full_title Any Time at All by The Beatles \n", "header_image_thumbnail_url https://images.genius.com/68c11c7f5b6b66194d77... \n", "header_image_url https://images.genius.com/68c11c7f5b6b66194d77... \n", "id 123537 \n", "lyrics NaN \n", "lyrics_owner_id 46871 \n", "original_lyrics NaN \n", "path /The-beatles-any-time-at-all-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/ad1f5... \n", "pyongs_count 2 \n", "song_art_image_thumbnail_url https://images.genius.com/68c11c7f5b6b66194d77... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title Any Time at All \n", "url https://genius.com/The-beatles-any-time-at-all... \n", "\n", " 4 \\\n", "_id 117722 \n", "annotation_count 6 \n", "api_path /songs/117722 \n", "ctitle NaN \n", "full_title A Taste of Honey by The Beatles \n", "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/1360709432_... \n", "header_image_url https://s3.amazonaws.com/rapgenius/1360709432_... \n", "id 117722 \n", "lyrics NaN \n", "lyrics_owner_id 70799 \n", "original_lyrics NaN \n", "path /The-beatles-a-taste-of-honey-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/ad1f5... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/1360709432_... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title A Taste of Honey \n", "url https://genius.com/The-beatles-a-taste-of-hone... \n", "\n", " 5 \\\n", "_id 210284 \n", "annotation_count 1 \n", "api_path /songs/210284 \n", "ctitle NaN \n", "full_title Beatle Greetings by The Beatles (Ft. George Ha... \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 210284 \n", "lyrics NaN \n", "lyrics_owner_id 250962 \n", "original_lyrics NaN \n", "path /The-beatles-beatle-greetings-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/ad1f5... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/110537_cda_... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title Beatle Greetings \n", "url https://genius.com/The-beatles-beatle-greeting... \n", "\n", " 6 \\\n", "_id 1336394 \n", "annotation_count 1 \n", "api_path /songs/1336394 \n", "ctitle NaN \n", "full_title Can You Take Me Back by The Beatles \n", "header_image_thumbnail_url https://images.genius.com/ad1f59e8a03be4eb521e... \n", "header_image_url https://images.genius.com/ad1f59e8a03be4eb521e... \n", "id 1336394 \n", "lyrics NaN \n", "lyrics_owner_id 1549345 \n", "original_lyrics NaN \n", "path /The-beatles-can-you-take-me-back-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/ad1f5... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/ad1f59e8a03be4eb521e... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title Can You Take Me Back \n", "url https://genius.com/The-beatles-can-you-take-me... \n", "\n", " 7 \\\n", "_id 107915 \n", "annotation_count 6 \n", "api_path /songs/107915 \n", "ctitle NaN \n", "full_title Carry That Weight by The Beatles \n", "header_image_thumbnail_url https://images.genius.com/560d707ac51a528c952d... \n", "header_image_url https://images.genius.com/560d707ac51a528c952d... \n", "id 107915 \n", "lyrics NaN \n", "lyrics_owner_id 116340 \n", "original_lyrics NaN \n", "path /The-beatles-carry-that-weight-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/ad1f5... \n", "pyongs_count 1 \n", "song_art_image_thumbnail_url https://images.genius.com/560d707ac51a528c952d... \n", "stats {'unreviewed_annotations': 0, 'hot': False, 'p... \n", "title Carry That Weight \n", "url https://genius.com/The-beatles-carry-that-weig... \n", "\n", " 8 \\\n", "_id 1308579 \n", "annotation_count 1 \n", "api_path /songs/1308579 \n", "ctitle NaN \n", "full_title Down in Eastern Australia by The Beatles \n", "header_image_thumbnail_url https://images.genius.com/ad1f59e8a03be4eb521e... \n", "header_image_url https://images.genius.com/ad1f59e8a03be4eb521e... \n", "id 1308579 \n", "lyrics NaN \n", "lyrics_owner_id 1549345 \n", "original_lyrics NaN \n", "path /The-beatles-down-in-eastern-australia-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/ad1f5... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/ad1f59e8a03be4eb521e... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title Down in Eastern Australia \n", "url https://genius.com/The-beatles-down-in-eastern... \n", "\n", " 9 \\\n", "_id 123808 \n", "annotation_count 1 \n", "api_path /songs/123808 \n", "ctitle NaN \n", "full_title Everybody's Trying to Be My Baby by The Beatles \n", "header_image_thumbnail_url https://images.genius.com/4268a08d2b36372eb6e8... \n", "header_image_url https://images.genius.com/4268a08d2b36372eb6e8... \n", "id 123808 \n", "lyrics NaN \n", "lyrics_owner_id 22533 \n", "original_lyrics NaN \n", "path /The-beatles-everybodys-trying-to-be-my-baby-l... \n", "primary_artist {'image_url': 'https://images.genius.com/ad1f5... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/4268a08d2b36372eb6e8... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title Everybody's Trying to Be My Baby \n", "url https://genius.com/The-beatles-everybodys-tryi... \n", "\n", " ... \\\n", "_id ... \n", "annotation_count ... \n", "api_path ... \n", "ctitle ... \n", "full_title ... \n", "header_image_thumbnail_url ... \n", "header_image_url ... \n", "id ... \n", "lyrics ... \n", "lyrics_owner_id ... \n", "original_lyrics ... \n", "path ... \n", "primary_artist ... \n", "pyongs_count ... \n", "song_art_image_thumbnail_url ... \n", "stats ... \n", "title ... \n", "url ... \n", "\n", " 1061 \\\n", "_id 81705 \n", "annotation_count 7 \n", "api_path /songs/81705 \n", "ctitle you cant always get what you want \n", "full_title You Can't Always Get What You Want by The Roll... \n", "header_image_thumbnail_url https://images.genius.com/7e75133e0e4017798a7a... \n", "header_image_url https://images.genius.com/7e75133e0e4017798a7a... \n", "id 81705 \n", "lyrics i saw her today at the reception a glass of wi... \n", "lyrics_owner_id 779 \n", "original_lyrics \\n\\n[Intro: London Bach Choir]\\nI saw her toda... \n", "path /The-rolling-stones-you-cant-always-get-what-y... \n", "primary_artist {'image_url': 'https://images.genius.com/23bbf... \n", "pyongs_count 15 \n", "song_art_image_thumbnail_url https://images.genius.com/7e75133e0e4017798a7a... \n", "stats {'unreviewed_annotations': 0, 'hot': False, 'p... \n", "title You Can't Always Get What You Want \n", "url https://genius.com/The-rolling-stones-you-cant... \n", "\n", " 1062 \\\n", "_id 310483 \n", "annotation_count 1 \n", "api_path /songs/310483 \n", "ctitle you cant catch me \n", "full_title You Can't Catch Me by The Rolling Stones \n", "header_image_thumbnail_url https://images.genius.com/9c0263f14c39b6df59e5... \n", "header_image_url https://images.genius.com/9c0263f14c39b6df59e5... \n", "id 310483 \n", "lyrics i bought a brand new air mobile it was custom ... \n", "lyrics_owner_id 354383 \n", "original_lyrics \\n\\n[Verse 1]\\nI bought a brand new air mobile... \n", "path /The-rolling-stones-you-cant-catch-me-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/23bbf... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/9c0263f14c39b6df59e5... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title You Can't Catch Me \n", "url https://genius.com/The-rolling-stones-you-cant... \n", "\n", " 1063 \\\n", "_id 313269 \n", "annotation_count 1 \n", "api_path /songs/313269 \n", "ctitle you dont have to mean it \n", "full_title You Don't Have To Mean It by The Rolling Stones \n", "header_image_thumbnail_url https://images.genius.com/eb7fd9257058b77179cb... \n", "header_image_url https://images.genius.com/eb7fd9257058b77179cb... \n", "id 313269 \n", "lyrics you don't have to mean it you just got to say ... \n", "lyrics_owner_id 354608 \n", "original_lyrics \\n\\n[Verse 1]\\nYou don't have to mean it\\nYou ... \n", "path /The-rolling-stones-you-dont-have-to-mean-it-l... \n", "primary_artist {'image_url': 'https://images.genius.com/23bbf... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/eb7fd9257058b77179cb... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title You Don't Have To Mean It \n", "url https://genius.com/The-rolling-stones-you-dont... \n", "\n", " 1064 \\\n", "_id 313043 \n", "annotation_count 1 \n", "api_path /songs/313043 \n", "ctitle you got me rocking \n", "full_title You Got Me Rocking by The Rolling Stones \n", "header_image_thumbnail_url https://images.genius.com/a8ed1f93846da84943a7... \n", "header_image_url https://images.genius.com/a8ed1f93846da84943a7... \n", "id 313043 \n", "lyrics i was a butcher cutting up meat my hands were ... \n", "lyrics_owner_id 354382 \n", "original_lyrics \\n\\n[Verse 1]\\nI was a butcher\\nCutting up mea... \n", "path /The-rolling-stones-you-got-me-rocking-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/23bbf... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/a8ed1f93846da84943a7... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title You Got Me Rocking \n", "url https://genius.com/The-rolling-stones-you-got-... \n", "\n", " 1065 \\\n", "_id 2389345 \n", "annotation_count 4 \n", "api_path /songs/2389345 \n", "ctitle you got the silver \n", "full_title You Got the Silver by The Rolling Stones (Ft. ... \n", "header_image_thumbnail_url https://images.rapgenius.com/ac969979ccb91a0d2... \n", "header_image_url https://images.rapgenius.com/ac969979ccb91a0d2... \n", "id 2389345 \n", "lyrics hey babe, what's in your eyes? i saw them flas... \n", "lyrics_owner_id 1217557 \n", "original_lyrics \\n\\n[Verse 1]\\nHey babe, what's in your eyes?\\... \n", "path /The-rolling-stones-you-got-the-silver-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/23bbf... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.rapgenius.com/ac969979ccb91a0d2... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title You Got the Silver \n", "url https://genius.com/The-rolling-stones-you-got-... \n", "\n", " 1066 \\\n", "_id 1245984 \n", "annotation_count 1 \n", "api_path /songs/1245984 \n", "ctitle dont look back \n", "full_title Don't Look Back by The Rolling Stones \n", "header_image_thumbnail_url https://images.genius.com/23bbf05f7ee8286a8905... \n", "header_image_url https://images.genius.com/23bbf05f7ee8286a8905... \n", "id 1245984 \n", "lyrics if it's love that you're running from there's ... \n", "lyrics_owner_id 1549345 \n", "original_lyrics \\n\\nIf it's love that you're running from\\nThe... \n", "path /The-rolling-stones-dont-look-back-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/23bbf... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/23bbf05f7ee8286a8905... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title Don't Look Back \n", "url https://genius.com/The-rolling-stones-dont-loo... \n", "\n", " 1067 \\\n", "_id 311907 \n", "annotation_count 1 \n", "api_path /songs/311907 \n", "ctitle each and every day of the year \n", "full_title Each and every day of the year by The Rolling ... \n", "header_image_thumbnail_url https://images.genius.com/6c322c96140487d56076... \n", "header_image_url https://images.genius.com/6c322c96140487d56076... \n", "id 311907 \n", "lyrics do i miss her kiss at night time arms around m... \n", "lyrics_owner_id 354385 \n", "original_lyrics \\n\\n[Verse 1]\\nDo I miss her kiss at night tim... \n", "path /The-rolling-stones-each-and-every-day-of-the-... \n", "primary_artist {'image_url': 'https://images.genius.com/23bbf... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/6c322c96140487d56076... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title Each and every day of the year \n", "url https://genius.com/The-rolling-stones-each-and... \n", "\n", " 1068 \\\n", "_id 310293 \n", "annotation_count 4 \n", "api_path /songs/310293 \n", "ctitle im a king bee \n", "full_title I'm A King Bee by The Rolling Stones \n", "header_image_thumbnail_url https://images.genius.com/076d49bcc219432b68b4... \n", "header_image_url https://images.genius.com/076d49bcc219432b68b4... \n", "id 310293 \n", "lyrics well i am a king bee buzzing around your hive ... \n", "lyrics_owner_id 354383 \n", "original_lyrics \\n\\n[Chorus]\\nWell I am a king bee\\nBuzzing ar... \n", "path /The-rolling-stones-im-a-king-bee-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/23bbf... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/076d49bcc219432b68b4... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title I'm A King Bee \n", "url https://genius.com/The-rolling-stones-im-a-kin... \n", "\n", " 1069 \\\n", "_id 310289 \n", "annotation_count 1 \n", "api_path /songs/310289 \n", "ctitle little by little \n", "full_title Little By Little by The Rolling Stones \n", "header_image_thumbnail_url https://images.genius.com/076d49bcc219432b68b4... \n", "header_image_url https://images.genius.com/076d49bcc219432b68b4... \n", "id 310289 \n", "lyrics tried to trail you last night, baby, trail you... \n", "lyrics_owner_id 354383 \n", "original_lyrics \\n\\n[Verse 1]\\nTried to trail you last night, ... \n", "path /The-rolling-stones-little-by-little-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/23bbf... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/076d49bcc219432b68b4... \n", "stats {'unreviewed_annotations': 0, 'hot': False} \n", "title Little By Little \n", "url https://genius.com/The-rolling-stones-little-b... \n", "\n", " 1070 \n", "_id 106069 \n", "annotation_count 16 \n", "api_path /songs/106069 \n", "ctitle brown sugar \n", "full_title Brown Sugar by The Rolling Stones \n", "header_image_thumbnail_url https://images.genius.com/5b7d4f11893ff2fdeba7... \n", "header_image_url https://images.genius.com/5b7d4f11893ff2fdeba7... \n", "id 106069 \n", "lyrics gold coast slave ship bound for cotton fields ... \n", "lyrics_owner_id 16 \n", "original_lyrics \\n\\n[Verse 1]\\nGold coast slave ship bound for... \n", "path /The-rolling-stones-brown-sugar-lyrics \n", "primary_artist {'image_url': 'https://images.genius.com/23bbf... \n", "pyongs_count 7 \n", "song_art_image_thumbnail_url https://images.genius.com/5b7d4f11893ff2fdeba7... \n", "stats {'unreviewed_annotations': 0, 'hot': False, 'p... \n", "title Brown Sugar \n", "url https://genius.com/The-rolling-stones-brown-su... \n", "\n", "[18 rows x 1071 columns]" ] }, "execution_count": 45, "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": 46, "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": 47, "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": 47, "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": 48, "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": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for gsong in genius_tracks.find({}, ['url']):\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": "markdown", "metadata": {}, "source": [ "## Matching datasets\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": 49, "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": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'a hard days night'" ] }, "execution_count": 50, "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": 51, "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": 52, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(489, 559, 57)" ] }, "execution_count": 52, "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": 53, "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": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spotify_only" ] }, { "cell_type": "code", "execution_count": 54, "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": 54, "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": 55, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 55, "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": 56, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(494, 554, 52)" ] }, "execution_count": 56, "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\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": 57, "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\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": 58, "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": 59, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "dict_keys(['sentiment', 'preview_url', 'external_ids', 'duration_ms', 'disc_number', 'track_number', 'album_id', 'href', 'album', 'original_lyrics', 'explicit', 'artist_name', 'lyrics', 'lyrical_density', 'name', 'artist_id', 'type', 'artists', 'external_urls', 'available_markets', 'id', '_id', 'uri', 'popularity', 'ctitle'])" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tracks.find_one({'sentiment': {'$exists': True}}).keys()" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{'_id': '3u06WsJ1KtvEqmmmZqy76J',\n", " 'album': {'album_type': 'album',\n", " 'artists': [{'external_urls': {'spotify': 'https://open.spotify.com/artist/22bE4uQ6baNwSHPVcDxLCe'},\n", " 'href': 'https://api.spotify.com/v1/artists/22bE4uQ6baNwSHPVcDxLCe',\n", " 'id': '22bE4uQ6baNwSHPVcDxLCe',\n", " 'name': 'The Rolling Stones',\n", " 'type': 'artist',\n", " 'uri': 'spotify:artist:22bE4uQ6baNwSHPVcDxLCe'}],\n", " 'available_markets': ['AD',\n", " 'AR',\n", " 'AT',\n", " 'AU',\n", " 'BG',\n", " 'BO',\n", " 'BR',\n", " 'CL',\n", " 'CO',\n", " 'CR',\n", " 'CY',\n", " 'CZ',\n", " 'DE',\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", " '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", " 'external_urls': {'spotify': 'https://open.spotify.com/album/6FjXxl9VLURGuubdXUn2J3'},\n", " 'href': 'https://api.spotify.com/v1/albums/6FjXxl9VLURGuubdXUn2J3',\n", " 'id': '6FjXxl9VLURGuubdXUn2J3',\n", " 'images': [{'height': 640,\n", " 'url': 'https://i.scdn.co/image/adcf79a6adae4e1a44d0e34860cc103e28ee4372',\n", " 'width': 640},\n", " {'height': 300,\n", " 'url': 'https://i.scdn.co/image/e15ffec01bd7c4e902d2b0c94ba270f45ca63d00',\n", " 'width': 300},\n", " {'height': 64,\n", " 'url': 'https://i.scdn.co/image/be6aeb6d09c0ceca229dcfa236deda3bbd6e9015',\n", " 'width': 64}],\n", " 'name': 'Some Girls (Deluxe Version)',\n", " 'type': 'album',\n", " 'uri': 'spotify:album:6FjXxl9VLURGuubdXUn2J3'},\n", " 'album_id': '6FjXxl9VLURGuubdXUn2J3',\n", " 'artist_id': '22bE4uQ6baNwSHPVcDxLCe',\n", " 'artist_name': 'The Rolling Stones',\n", " 'artists': [{'external_urls': {'spotify': 'https://open.spotify.com/artist/22bE4uQ6baNwSHPVcDxLCe'},\n", " 'href': 'https://api.spotify.com/v1/artists/22bE4uQ6baNwSHPVcDxLCe',\n", " 'id': '22bE4uQ6baNwSHPVcDxLCe',\n", " 'name': 'The Rolling Stones',\n", " 'type': 'artist',\n", " 'uri': 'spotify:artist:22bE4uQ6baNwSHPVcDxLCe'}],\n", " 'available_markets': ['AD',\n", " 'AR',\n", " 'AT',\n", " 'AU',\n", " 'BG',\n", " 'BO',\n", " 'BR',\n", " 'CL',\n", " 'CO',\n", " 'CR',\n", " 'CY',\n", " 'CZ',\n", " 'DE',\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", " '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", " 'ctitle': 'you win again',\n", " 'disc_number': 2,\n", " 'duration_ms': 180280,\n", " 'explicit': False,\n", " 'external_ids': {'isrc': 'GBUM71109053'},\n", " 'external_urls': {'spotify': 'https://open.spotify.com/track/3u06WsJ1KtvEqmmmZqy76J'},\n", " 'href': 'https://api.spotify.com/v1/tracks/3u06WsJ1KtvEqmmmZqy76J',\n", " 'id': '3u06WsJ1KtvEqmmmZqy76J',\n", " 'lyrical_density': 0.4603949412025738,\n", " 'lyrics': \"the news is out all over town that you've been seen out runnin' around i know that i should leave but then i just can't go you win again this heart of mine could never see what everybody knows but me just trusting in you was my great sin what can i do? you win again yes, this heart of mine could never see what everybody knows but me just trusting you was my great sin what can i do? you win again\",\n", " 'name': 'You Win Again',\n", " 'original_lyrics': \"\\n\\nThe news is out all over town\\nThat you've been seen out runnin' around\\nI know that I should leave but then\\nI just can't go\\nYou win again\\nThis heart of mine could never see\\nWhat everybody knows but me\\nJust trusting in you was my great sin\\nWhat can I do?\\nYou win again\\nYes, this heart of mine could never see\\nWhat everybody knows but me\\nJust trusting you was my great sin\\nWhat can I do?\\nYou win again\\n\\n\",\n", " 'popularity': 17,\n", " 'preview_url': 'https://p.scdn.co/mp3-preview/21de20d8795c3d60a6814064c73e763357fd2fb8?cid=null',\n", " 'sentiment': {'label': 'neg',\n", " 'probability': {'neg': 0.6893093993296692,\n", " 'neutral': 0.178805966723781,\n", " 'pos': 0.31069060067033083}},\n", " 'track_number': 11,\n", " 'type': 'track',\n", " 'uri': 'spotify:track:3u06WsJ1KtvEqmmmZqy76J'}" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tracks.find_one({'sentiment': {'$exists': True}})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Analysis\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": 61, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namename
00B5CEdw4WBs91yn444ZP27The Rolling StonesStreet Fighting Man - Live
17FagS2T3y5XwDpYvyHfvmcThe Rolling StonesJumpin' Jack Flash - Live
24HKaTAMIXT88muGU1JN9lIThe Rolling StonesI Go Wild - Live
31jgefM2ZP7RnPVShhy1eUMThe Rolling StonesNot Fade Away - Live
474tlMxJ8wF0sNp93GBEPdKThe Rolling StonesHonky Tonk Women - Live
53u06WsJ1KtvEqmmmZqy76JThe Rolling StonesYou Win Again
67jZX0QSP4YClL1smfBt1ylGeorge MartinSea Of Time - Remastered 2009
74rkGGQEqxHIXVJ4oXjOHgFGeorge MartinSea Of Holes - Remastered 2009
82PbwmAMaxIBIWis8XLViatGeorge MartinSea Of Monsters - Remastered 2009
97M0HjPZ5KZMik1FYHOU6sRGeorge MartinMarch Of The Meanies - Remastered 2009
1049JPfRfsAfjWYRN6lbC3myGeorge MartinPepperland Laid Waste - Remastered 2009
1147DgFAFnhfwoSko23P7pz5George MartinYellow Submarine In Pepperland - Remastered 2009
1272StxiucOrubnIMjrUd0WrThe Rolling StonesLittle T&A - 2009 Re-Mastered Digital Version
136enjRsW81z7K8zk7XIGIizThe Rolling StonesSlave - 2009 Re-Mastered Digital Version
146HazgW4PjOxihpQPAAnLyaJimi HendrixOutro - Star Spangled Banner - Live - 2009 Re-...
151oluhsJUDe1uAVGwfsFpfgThe Rolling StonesKey To The Highway - Piano Instrumental/Remast...
165yneY9DxScLNVshnxdOLLlThe Rolling StonesKey To The Highway - Piano Instrumental
175hfzW7LG97Hxv62HHUKgajRadioheadLotus Flower (Jacques Greene Rmx)
1864lecUR19lBSu317AzVZv3RadioheadMorning Mr Magpie (Nathan Fake Rmx)
191CxhtUbe1o2PeMM3l5Kch6RadioheadBloom (Harmonic 313 Rmx)
\n", "
" ], "text/plain": [ " _id artist_name \\\n", "0 0B5CEdw4WBs91yn444ZP27 The Rolling Stones \n", "1 7FagS2T3y5XwDpYvyHfvmc The Rolling Stones \n", "2 4HKaTAMIXT88muGU1JN9lI The Rolling Stones \n", "3 1jgefM2ZP7RnPVShhy1eUM The Rolling Stones \n", "4 74tlMxJ8wF0sNp93GBEPdK The Rolling Stones \n", "5 3u06WsJ1KtvEqmmmZqy76J The Rolling Stones \n", "6 7jZX0QSP4YClL1smfBt1yl George Martin \n", "7 4rkGGQEqxHIXVJ4oXjOHgF George Martin \n", "8 2PbwmAMaxIBIWis8XLViat George Martin \n", "9 7M0HjPZ5KZMik1FYHOU6sR George Martin \n", "10 49JPfRfsAfjWYRN6lbC3my George Martin \n", "11 47DgFAFnhfwoSko23P7pz5 George Martin \n", "12 72StxiucOrubnIMjrUd0Wr The Rolling Stones \n", "13 6enjRsW81z7K8zk7XIGIiz The Rolling Stones \n", "14 6HazgW4PjOxihpQPAAnLya Jimi Hendrix \n", "15 1oluhsJUDe1uAVGwfsFpfg The Rolling Stones \n", "16 5yneY9DxScLNVshnxdOLLl The Rolling Stones \n", "17 5hfzW7LG97Hxv62HHUKgaj Radiohead \n", "18 64lecUR19lBSu317AzVZv3 Radiohead \n", "19 1CxhtUbe1o2PeMM3l5Kch6 Radiohead \n", "\n", " name \n", "0 Street Fighting Man - Live \n", "1 Jumpin' Jack Flash - Live \n", "2 I Go Wild - Live \n", "3 Not Fade Away - Live \n", "4 Honky Tonk Women - Live \n", "5 You Win Again \n", "6 Sea Of Time - Remastered 2009 \n", "7 Sea Of Holes - Remastered 2009 \n", "8 Sea Of Monsters - Remastered 2009 \n", "9 March Of The Meanies - Remastered 2009 \n", "10 Pepperland Laid Waste - Remastered 2009 \n", "11 Yellow Submarine In Pepperland - Remastered 2009 \n", "12 Little T&A - 2009 Re-Mastered Digital Version \n", "13 Slave - 2009 Re-Mastered Digital Version \n", "14 Outro - Star Spangled Banner - Live - 2009 Re-... \n", "15 Key To The Highway - Piano Instrumental/Remast... \n", "16 Key To The Highway - Piano Instrumental \n", "17 Lotus Flower (Jacques Greene Rmx) \n", "18 Morning Mr Magpie (Nathan Fake Rmx) \n", "19 Bloom (Harmonic 313 Rmx) " ] }, "execution_count": 61, "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": 62, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namenamevalence
02ucFulEWapRAmTn7l6f5Q7The BeatlesWild Honey Pie - Remastered 20090.153
664cLoL5KPfE1hAwfsO84FX7The BeatlesBecause - Remastered 20090.162
447iABnSNZciNepqGtjMQxxdThe BeatlesCome Together - Remastered 20150.178
590MKqeOVdZcUFGJvWpGCKbGThe BeatlesCome Together - Remastered 20090.179
683jPXnX4SskFgAcC4YBKOwNThe BeatlesSun King - Remastered 20090.197
740SAqxgrtLO0GzXBeilxHQsThe BeatlesThe End - Remastered 20090.207
414ajbplh2IXiJkXjQiq5aqqThe BeatlesGet Back - Remastered 20150.212
6771Ij3VBYQWMrng61Ae4tBuThe BeatlesYou Never Give Me Your Money - Remastered 20090.226
12z1p43SNSbeowzy8WdYHNkThe BeatlesFlying - Remastered 20090.246
721llzkEveIzvSXmqqyh7AiBThe BeatlesGolden Slumbers - Remastered 20090.250
\n", "
" ], "text/plain": [ " _id artist_name \\\n", "0 2ucFulEWapRAmTn7l6f5Q7 The Beatles \n", "66 4cLoL5KPfE1hAwfsO84FX7 The Beatles \n", "44 7iABnSNZciNepqGtjMQxxd The Beatles \n", "59 0MKqeOVdZcUFGJvWpGCKbG The Beatles \n", "68 3jPXnX4SskFgAcC4YBKOwN The Beatles \n", "74 0SAqxgrtLO0GzXBeilxHQs The Beatles \n", "41 4ajbplh2IXiJkXjQiq5aqq The Beatles \n", "67 71Ij3VBYQWMrng61Ae4tBu The Beatles \n", "1 2z1p43SNSbeowzy8WdYHNk The Beatles \n", "72 1llzkEveIzvSXmqqyh7AiB The Beatles \n", "\n", " name valence \n", "0 Wild Honey Pie - Remastered 2009 0.153 \n", "66 Because - Remastered 2009 0.162 \n", "44 Come Together - Remastered 2015 0.178 \n", "59 Come Together - Remastered 2009 0.179 \n", "68 Sun King - Remastered 2009 0.197 \n", "74 The End - Remastered 2009 0.207 \n", "41 Get Back - Remastered 2015 0.212 \n", "67 You Never Give Me Your Money - Remastered 2009 0.226 \n", "1 Flying - Remastered 2009 0.246 \n", "72 Golden Slumbers - Remastered 2009 0.250 " ] }, "execution_count": 62, "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": 63, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "beatles_df['valence'].hist()" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namenamevalence
203gKuywOm38axM8sJGq6LaqRadioheadMK 10.0391
394DPQvbgSM0IdX4O3HOACwLRadioheadTreefingers0.0585
372mvmuCtmmrERnm03ULdDyeRadioheadDollars & Cents0.0943
16Unw1AAcpS1ZgZoRlj2jxARadioheadLittle By Little (Caribou Rmx)0.1310
12205evePUsIT1cmIURp1hgu6RadioheadPlanet Telex0.2720
293bk7mfQWZ0acgp0hXzYQKSRadioheadThe National Anthem (Live in France)0.2870
1341MyqLTRhgyWPw7v107BEuIRadioheadYou0.3050
223Y0ZPYdFsJ1ynQxpWZLNDjRadiohead2 + 2 = 5 (Live at Earls Court)0.3430
7837kUGdEJJ7NaMl5LFW4EA4Radiohead2 + 2 = 50.3650
483pcCifdPTc2BbqmWpEhtUdRadioheadBurn the Witch0.6250
\n", "
" ], "text/plain": [ " _id artist_name name \\\n", "20 3gKuywOm38axM8sJGq6Laq Radiohead MK 1 \n", "39 4DPQvbgSM0IdX4O3HOACwL Radiohead Treefingers \n", "37 2mvmuCtmmrERnm03ULdDye Radiohead Dollars & Cents \n", "1 6Unw1AAcpS1ZgZoRlj2jxA Radiohead Little By Little (Caribou Rmx) \n", "122 05evePUsIT1cmIURp1hgu6 Radiohead Planet Telex \n", "29 3bk7mfQWZ0acgp0hXzYQKS Radiohead The National Anthem (Live in France) \n", "134 1MyqLTRhgyWPw7v107BEuI Radiohead You \n", "22 3Y0ZPYdFsJ1ynQxpWZLNDj Radiohead 2 + 2 = 5 (Live at Earls Court) \n", "78 37kUGdEJJ7NaMl5LFW4EA4 Radiohead 2 + 2 = 5 \n", "48 3pcCifdPTc2BbqmWpEhtUd Radiohead Burn the Witch \n", "\n", " valence \n", "20 0.0391 \n", "39 0.0585 \n", "37 0.0943 \n", "1 0.1310 \n", "122 0.2720 \n", "29 0.2870 \n", "134 0.3050 \n", "22 0.3430 \n", "78 0.3650 \n", "48 0.6250 " ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "radiohead_df = pd.DataFrame(list(tracks.find({'artist_id': radiohead_id}, \n", " ['artist_name', 'name', 'valence'])))\n", "radiohead_df.sort_values('valence').head(10)" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAEACAYAAABWLgY0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGbpJREFUeJzt3X+sZHdZx/H30y4tYrdsgbhof+xNaAtFs1yKqU2Qdgwm\nbVWoFvpLkV4gChjEqjEg0awVQwSjVgIEC5VLMbiLDZHfBKT7hWCh1nYvLQuFbWSh5VfVthGsYrd9\n/GPO3Xudc2bm3Jlzzve5535eyaRz7pyd72fPufvM3M+dmZq7IyIi/XRM7gAiItIeDXkRkR7TkBcR\n6TENeRGRHtOQFxHpMQ15EZEemzrkzex4M7vFzA6Y2Z1mtqdin+PMbK+ZHTKzz5nZae3EFRGRjZg6\n5N39B8DPuPszgUXgIjM7Z2S3lwH3u/sZwLXAmxpPKiIiG1arrnH3h4qrxwPbgNF3UF0MvLu4fiPw\n3EbSiYjIXGoNeTM7xswOAN8BPunut47scjJwD4C7PwI8aGZPaDSpiIhsWN1n8o8Wdc0pwE+Z2dNH\ndrGKbX1egohIZts2srO7/6eZJeBC4EvrbroHOBX4lpkdC5zo7g+M/nkz0+AXEZmBu48+ma6lzqtr\nnmRmjy+u/xDws8BdI7t9CLiquH4pcNOEoBu+7N59HpAY/nDQ9GXP2Nu2b7+Uffv2zZR53suePXuy\nrFucpQ0fq/kvs31v5DpOytTfXBEzzaPOM/kfBd5tZscwfFDY5+4fNbNrgFvd/cPA9cB7zOwQ8B/A\nFXOl6tTh3AEqHT58OHeECodzByiJeJyUqb6IuSJmmsfUIe/udwJnV3x9z7rrPwAuazaaiIjMS+94\nZSl3gEpLS0u5I1RYyh2gJOJxUqb6IuaKmGkeNm/fs6HFzHyW9Z7xjPO5444/Bs5vPtQE27dfxjvf\n+UIuu2zr/JBiluuFUTZ39yjSV2aGt/WL1/5LuQNUSinljlAh5Q5QEvE4KVN9EXNFzDQPDXkRkR5T\nXTOB6ppOV1ZdIzKG6hoREamkIR+wZ4aovWDKHaAk4nFSpvoi5oqYaR4a8iIiPaZOfgJ18p2urE5e\nZAx18iIiUklDPmDPDFF7wZQ7QEnE46RM9UXMFTHTPDTkRUR6TJ38BOrkO11ZnbzIGOrkRUSkkoZ8\nwJ4ZovaCKXeAkojHSZnqi5grYqZ5aMiLiPSYOvkJ1Ml3urI6eZEx1MmLiEglDfmAPTNE7QVT7gAl\nEY+TMtUXMVfETPPQkBcR6TF18hOok+90ZXXyImOokxcRkUoa8gF7ZojaC6bcAUoiHidlqi9iroiZ\n5qEhLyLSY+rkJ1An3+nK6uRFxlAnLyIilTTkA/bMELUXTLkDlEQ8TspUX8RcETPNQ0NeRKTHpnby\nZnYKcAPwZOAR4B3u/uaRfc4HPgD8a/Gl97v7n1Tclzr54NTJi8QzTye/rcY+R4DfcfcVMzsBuM3M\nPuHud43s9xl3f/4sIUREpB1T6xp3/467rxTXvw98GTi5YteZHmXyS7kDVIrZC6bcAUoiHidlqi9i\nroiZ5rGhTt7MFoBF4JaKm881swNm9hEze3oD2UREZE61XydfVDUJeL27f6Ditkfd/SEzuwj4K3c/\ns+I+1MkHp05eJJ62O3nMbBtwI/Ce0QEPR2uc1esfM7O3mdkT3P3+0X2XlpZYWFgAYMeOHSwuLjIY\nDIC1H5NGt9esbg862T5y5D4OHjy4tvqYfH3bXrO6PehkO8rfX9vazr2dUmJ5eRng6LycmbtPvTB8\ndc1fTLh957rr5wCHx+zns9i9+zyH5OAtXPaPvW379kt93759M2We1/79+7OsC8x0rOa/zPa9kes4\nTaJM9UXMFTFT8e+j1rwevUx9Jm9mzwZ+BbjTzA4MhwCvA3YVC18HvNDMXgk8DPw3cPl8Dz0iItIE\nfXbNBOrkO11ZnbzIGPrsGhERqaQhH/C13xD1tbopd4CSiMdJmeqLmCtipnloyIuI9Jg6+QnUyXe6\nsjp5kTHUyYuISCUN+YA9M0TtBVPuACURj5My1RcxV8RM89CQFxHpMXXyE6iT73RldfIiY6iTFxGR\nShryAXtmiNoLptwBSiIeJ2WqL2KuiJnmoSEvItJj6uQnUCff6crq5EXGUCcvIiKVNOQD9swQtRdM\nuQOURDxOylRfxFwRM81DQ15EpMfUyU+gTr7TldXJi4yhTl5ERCppyAfsmSFqL5hyByiJeJyUqb6I\nuSJmmoeGvIhIj6mTn0CdfKcrq5MXGUOdvIiIVNKQD9gzQ9ReMOUOUBLxOClTfRFzRcw0Dw15EZEe\nUyc/gTr5TldWJy8yhjp5ERGppCEfsGeGqL1gyh2gJOJxUqb6IuaKmGkeGvIiIj2mTn4CdfKdrqxO\nXmQMdfIiIlJp6pA3s1PM7CYz+5KZ3Wlmrx6z35vN7JCZrZjZYvNR25JyB6gUsxdMuQOURDxOylRf\nxFwRM81jW419jgC/4+4rZnYCcJuZfcLd71rdwcwuAp7i7meY2U8BbwfObSeyiIjUNfWZvLt/x91X\niuvfB74MnDyy28XADcU+twCPN7OdDWdtySB3gEqDwSB3hAqD3AFKIh4nZaovYq6ImeaxoU7ezBaA\nReCWkZtOBu5Zt/1Nyg8EIiLSsTp1DQBFVXMj8FvFM/r/d3PFH6l8qcTS0hILCwsA7Nixg8XFxaOP\nnKtd2Oj2mtXtQYPbK8DVlbcfOXIfBw8eXFt9TL42ttf/3btYb/32mtXtQfHfaxk+xg/G3D7f9ix5\nV1ZWuPrqq2f+821sr34tSp71WS655AoeeOC7dG3nzl3s3btcyqfzN/58LS8vAxydlzNz96kXhg8G\nH2c44Ktufztw+brtu4CdFfv5LHbvPs8hOXgLl/1jb9u+/VLft2/fTJnntX///izrAjMdq/kvs31v\n5DpOk0TONPn8tnmpPr+Rj1UkxfGrNa9HL3Xrmr8BvuTufzXm9g8CLwYws3OBB929+6cLMxnkDlAp\nZi84yB2gJOJxUqb6IuaKmGkeU+saM3s28CvAnWZ2gGEN8zpgF8NHl+vc/aNm9nNmdjfwX8BL2gwt\nIiL11Hl1zT+5+7Huvujuz3T3s9394+7+1+5+3br9XuXup7v7M9z99nZjNynlDlAp5mt1U+4AJRGP\nkzLVFzFXxEzz0DteRUR6TJ9dM4E+u6bTlfXZNR3Q+d2c9Nk1IiJSSUM+YM8MUXvBlDtAScTjpEz1\nRcwVMdM8NORFRHpMnfwE6uQ7XVmdbQd0fjcndfIiIlJJQz5gzwxRe8GUO0BJxOOkTPVFzBUx0zw0\n5EVEekyd/ATq5DtdWZ1tB3R+Nyd18iIiUklDPmDPDFF7wZQ7QEnE46RM9UXMFTHTPDTkRUR6TJ38\nBOrkO11ZnW0HdH43J3XyIiJSSUM+YM8MUXvBlDtAScTjpEz1RcwVMdM8NORFRHpMnfwE6uQ7XVmd\nbQd0fjcndfIiIlJJQz5gzwxRe8GUO0BJxOOkTPVFzBUx0zw05EVEekyd/ATq5DtdWZ1tB3R+Nyd1\n8iIiUklDPmDPDFF7wZQ7QEnE46RM9UXMFTHTPDTkRUR6TJ38BOrkO11ZnW0HdH43J3XyIiJSSUM+\nYM8MUXvBlDtAScTjpEz1RcwVMdM8pg55M7vezL5rZneMuf18M3vQzG4vLn/QfEwREZnF1E7ezH4a\n+D5wg7vvrrj9fOB33f35UxdTJx+eOtt+0/ndnFrt5N39s8AD0zLMsriIiLSrqU7+XDM7YGYfMbOn\nN3SfHUm5A1SK2Qum3AFKIh4nZaovYq6ImeaxrYH7uA3Y5e4PmdlFwD8AZ47beWlpiYWFBQB27NjB\n4uIig8EAWDu4o9trVrcHDW6vjL39yJH7OHjw4NrqY/L1bXvN6vag+O/KyPbo7fNtz5J3ZWUl+/Ea\nd/yi5On239P4bZ2/+tspJZaXlwGOzstZ1XqdvJntAj5U1clX7Ps14Fnufn/Fberkg1Nn2286v5tT\nF6+TN8b07ma2c931cxg+cJQGvIiIdK/OSyjfC9wMnGlm3zCzl5jZy83s14tdXmhmXzSzA8C1wOUt\n5m1Byh2gUsxeMOUOUBLxOClTfRFzRcw0j6mdvLv/8pTb3wq8tbFEIiLSGH12zQTq5DtdWZ1tB3R+\nNyd9do2IiFTSkA/YM0PUXjDlDlAS8TgpU30Rc0XMNA8NeRGRHlMnP4E6+U5XVmfbAZ3fzUmdvIiI\nVNKQD9gzQ9ReMOUOUBLxOClTfRFzRcw0Dw15EZEeUyc/gTr5TldWZ9sBnd/NSZ28iIhU0pAP2DND\n1F4w5Q5QEvE4KVN9EXNFzDQPDXkRkR5TJz+BOvlOV1Zn2wGd381JnbyIiFTSkA/YM0PUXjDlDlAS\n8TgpU30Rc0XMNA8NeRGRHlMnP4E6+U5XVmfbAZ3fzUmdvIiIVNKQD9gzQ9ReMOUOUBLxOClTfRFz\nRcw0Dw15EZEeUyc/gTr5TldWZ9sBnd/NSZ28iIhU0pAP2DND1F4w5Q5QEvE4KVN9EXNFzDQPDXkR\nkR5TJz+BOvlOV1Zn2wGd381JnbyIiFTSkA/YM0PUXjDlDlAS8TgpU30Rc0XMNA8NeRGRHps65M3s\nejP7rpndMWGfN5vZITNbMbPFZiO2bZA7QKXBYJA7QoVB7gAlEY+TMtUXMVfETPOo80z+XcAF4240\ns4uAp7j7GcDLgbc3lE1EROY0dci7+2eBBybscjFwQ7HvLcDjzWxnM/G6kHIHqBSzF0y5A5REPE7K\nVF/EXBEzzaOJTv5k4J51298sviYiIplta+A+ql67OfYFsUtLSywsLACwY8cOFhcXj3Zgq4+go9tr\nVrcHDW9X3/+RI/fx0pe+gssvv3z0r9G6Y455HI8++lDn6/5/qfjvYORrgzG3z7N9fPEa7m6ddNJO\n7r//O8M0Y77/+rA9GAw6/PdUtZ3n/EK+f0snnbST979/70znK6XE8vIywNF5Oatab4Yys13Ah9x9\nd8Vtbwf2u/u+Yvsu4Hx3/27FvpvuzVDf+97fk+vNI1q3m3W30pt0cr4ZKs+6Oddu7nurizdDGdXP\n2AE+CLy4CHIu8GDVgI8r5Q6wiaTcASqk3AFKIna6ETMNpdwBKqTcARo1ta4xs/cy/HnriWb2DWAP\ncBzg7n6du3/UzH7OzO4G/gt4SZuBRUSkPn12zQSqa7bGuqprOlk507o5195cdY2IiGxCGvI969/a\nlXIHqJByByiJ2H9HzDSUcgeokHIHaJSGvIhIj6mTn0Cd/NZYV518JytnWjfn2urkRUSkZRryPevf\n2pVyB6iQcgcoidh/R8w0lHIHqJByB2iUhryISI+pk59AnfzWWFedfCcrZ1o359rq5EVEpGUa8j3r\n39qVcgeokHIHKInYf0fMNJRyB6iQcgdolIa8iEiPqZOfQJ381lhXnXwnK2daN+fa6uRFRKRlGvI9\n69/alXIHqJByByiJ2H9HzDSUcgeokHIHaJSGvIhIj6mTn0Cd/NZYV518JytnWjfn2urkRUSkZRry\nPevf2pVyB6iQcgcoidh/R8w0lHIHqJByB2iUhryISI+pk59AnfzWWFedfCcrZ1o359rq5EVEpGUa\n8j3r39qVcgeokHIHKInYf0fMNJRyB6iQcgdolIa8iEiPqZOfQJ381lhXnXwnK2daN+fa6uRFRKRl\nGvI969/alXIHqJByByiJ2H9HzDSUcgeokHIHaJSGvIhIj6mTn0Cd/NZYV518JytnWjfn2puokzez\nC83sLjP7qpm9puL2q8zsPjO7vbi8dJYwIiLSrKlD3syOAd4CXAD8OHClmT2tYte97n52cfmbhnO2\nKOUOsImk3AEqpNwBSiL23xEzDaXcASqk3AEaVeeZ/DnAIXf/urs/DOwFLq7Yb6YfJUREpD11hvzJ\nwD3rtu8tvjbqEjNbMbP3mdkpjaTrxCB3gE1kkDtAhUHuACWDwSB3hJKImYYGuQNUGOQO0Kg6Q77q\nGfrobxM+CCy4+yLwKeDd8wYTEZH5bauxz73Aaeu2TwG+tX4Hd39g3eY7gDeOu7OlpSUWFhYA2LFj\nB4uLi0efZaz2hqPba1a3Bw1urwBXV95+5Mh9HawfcZsxt18LLAbIt357/Pnb6N933PffRrdXv9bU\n/TWxXd3Jr35tkHG7ifM3bZspt1ftP2hg/eE5mPV8LS8vAxydlzNz94kX4FjgbmAXcBzDs3LWyD5P\nXnf9l4Cbx9yXz2L37vMckoO3cNk/9rbt2y91oKV1p10irjv+WOX7+86biZm+JyfZv39/4/c5r9VM\n8b6v2vyemvV7q6lMzX1vFffFLJepz+Td/REzexXwCYb1zvXu/mUzuwa41d0/DLzazJ4PPAzcDyzN\n99DTpUHuAJvIIHeACoPcAUoi9t8RMw0NcgeoMMgdoFF16hrc/ePAU0e+tmfd9dcBr2s2moiIzEsf\na9Cz18S2K+UOUCHlDlAS8TXpETMNpdwBKqTcARqlIS8i0mP67JoJ9Nk1W2PdLv8N5KbPrul23aa+\nt/R58iIiUklDvmf9W7tS7gAVUu4AJRH774iZhlLuABVS7gCN0pAXEekxdfITqJPfGuuqk+9k5Uzr\n5lxbnbyIiLRMQ75n/Vu7Uu4AFVLuACUR+++ImYZS7gAVUu4AjdKQFxHpMXXyE6iT3xrrqpPvZOVM\n6+ZcW528iIi0TEO+Z/1bu1LuABVS7gAlEfvviJmGUu4AFVLuAI3SkBcR6TF18hOok98a66qT72Tl\nTOvmXFudvIiItExDvmf9W7tS7gAVUu4AJRH774iZhlLuABVS7gCN0pAXEekxdfITqJPfGuuqk+9k\n5Uzr5lxbnbyIiLRMQ75n/Vu7Uu4AFVLuACUR+++ImYZS7gAVUu4AjdKQFxHpMXXyE6iT3xrrqpPv\nZOVM6+ZcW528iIi0TEO+Z/1bu1LuABVS7gAlEfvviJmGUu4AFVLuAI3SkBcR6TF18hOok98a66qT\n72TlTOvmXFudvIiItKzWkDezC83sLjP7qpm9puL248xsr5kdMrPPmdlpzUdtS8odYBNJuQNUSLkD\nlETsvyNmGkq5A1RIuQM0auqQN7NjgLcAFwA/DlxpZk8b2e1lwP3ufgZwLfCmpoO2ZyV3gE0k4rGK\nl2llRZnqi5grYqbZ1Xkmfw5wyN2/7u4PA3uBi0f2uRh4d3H9RuC5zUVs24O5A2wiEY9VvEwPPqhM\n9UXMFTHT7OoM+ZOBe9Zt31t8rXIfd38EeNDMntBIQhERmdm2GvtU/UZ39FfGo/s0+uvs449/DD/8\nw7/Pscc+sam7POqhhw7wuMfdVnnb//7vvzS+3uZ2OHeACodzByg5fPhw7gglETMNHc4doMLh3AEa\nNfUllGZ2LvBH7n5hsf1awN39jev2+Vixzy1mdizwbXf/kYr72jqvVRMRadCsL6Gs80z+VuB0M9sF\nfBu4ArhyZJ8PAVcBtwCXAjc1GVJERGYzdci7+yNm9irgEww7/Ovd/ctmdg1wq7t/GLgeeI+ZHQL+\ng+EDgYiIZNbpO15FRKRbrbzjNeKbp2pkeo6Z3WZmD5vZJW3nqZnpt83soJmtmNknzezUILlebmZ3\nmNkBM/tMxfsmOs+0br8XmtmjZnZ27kxmdpWZ3WdmtxeXl+bOVOxzWfF9daeZ/W3uTGb2F8X30u1m\n9hUzu7/tTDVznWpmNxW5VszsogCZTjOzfzSzLxTZfmzqnbp7oxeGDxx3A7uAxzB8Z8HTRvZ5JfC2\n4vrlwN6mc8yQ6TTgJ4Bl4JI282wg0/nAY4vrr2j7OG0g1wnrrj8P+FjuTKu5gE8DNwNn587E8PdU\nb277nG0w0+nAbcCJxfaTcmca2f9VwDuDHKu/Bl5eXD8L+FqATO8DXlRcHwA3TLvfNp7JR3zz1NRM\n7v4Nd/8i3X2SUZ1Mn3b3/yk2P0/5/Qm5cn1/3eYJwKO5MxVeD7wR+EHLeTaSqcsXG9TJ9GvAW939\nPwHc/d8DZFrvSuDvWs5UN9ejwInF9R3ANwNkejrFC1vcPVXcXtLGkI/45qk6mbq20UwvAz7WaqKh\nWrnM7DfM7G7gT4FX585kZovAKe7+0Zaz1M5UuKT4Uf99ZnZKgExnAk81s8+a2c1mdkGATMCwigAW\nGPPqvIbVyXUN8Ktmdg/wYeA3A2RaAV4AUNTKJ5jZSZPutI0hn/3NUxXqZOpa7Uxm9iLgWcCftZqo\nWK7ia6Vc7v42dz8deA3whzkz2fDzc/8S+N0pf6azTIUPAgvuvgh8irWfXnNm2sawsjkP+GXgnWZ2\nYulPdZtp1RXAjV50ES2rk+tK4F3ufirw80Dbv7+ok+n3gIGZ3QY8h+FPF0cm3WkbQ/5ehv32qlOA\nb43scw9wKkDx5qkT3f2BFrJsJFPXamUys58Ffh94XvEjXIhc6+wDfrHVRNMzbWf44XnJzL4GnAt8\noOVfvk49Tu7+wLpz9g6GD9RtqnPu7gU+4O6Puvth4CvAGZkzrbqCbqoaqJfrZQw7cNz988BjzexJ\nOTO5+7fd/QXu/izgD4qvfW/ivbbwy4NjWfvlwXEMf7w4a2Sf32DtF69X0P4vXqdmWrfvu4AXtJln\nA8fpmcU+T2k7zwZznb7u+vOAf86daWT//cAzc2cCnrzu+i8BNwfIdAGwXFx/EvB14KTc5w54KvCv\nbR6fGY7VR4CriutnAfcGyPRE1l76/icMP2lg8v22FPZChs8QDgGvLb52DfALxfXjGT5CHmL4C8WF\nDk7qtEw/yfAnjO8B/wbcGSDTJxm+y/h24ADwD21nqpnrWuCLRa5PTRq4XWUa2fcmWn51Tc3j9Ibi\nOB0ojtOZuTMV238OHAS+AFwaJNMe4A1tZ9ng+TsL+GwxbG8Hnhsg0wuArwJ3AdcBj5l2n3ozlIhI\nj+l//yci0mMa8iIiPaYhLyLSYxryIiI9piEvItJjGvIiIj2mIS8i0mMa8iIiPfZ/NPjaXsgh3QUA\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "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": 67, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAEACAYAAABMEua6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFztJREFUeJzt3X+Q3HV9x/HXOwQNiuR0NGQqCSsqYm3hClOlU0qj4BBt\nLRlHC2rUtY61HX9FZ1qxnaFnnOlAZzJiq5nqyHDayDAt7URttQUGl2nAaNvkSOSoxepyINmUIEcM\nBAzk3T9u797HTZLb/X52P7v55PmYycx9N9/dz2df99n3ffd9372vubsAAGVYMugJAAB6h6IOAAWh\nqANAQSjqAFAQijoAFISiDgAFWbSom9n1ZrbXzHbNu+2vzOxeM5sws380s9P6O00AQCc6OVK/QdJl\nC267RdJr3H1U0n2SPtXriQEAurdoUXf3bZIeXXDbbe5+uL25XdIZfZgbAKBLveip/4Gkb/fgcQAA\niZKKupn9uaRD7n5jj+YDAEiwtOodzey9kt4s6Q2L7McflwGACtzdur1Pp0Xd2v9mNszWSvpTSRe7\n+1MdTKzbeRVpbGxMY2Njg57GUCCLcLxkUa+PqVYb6+sYjcaY1qwZU7M5pvHx/o417My6rueSOjul\n8UZJd0k628ymzOx9kv5G0qmSbjWzHWa2udLoJ5hmsznoKQwNsghkEaanm4OewnFv0SN1d3/nEW6+\noQ9zAQAk4hOlGdXr9UFPYWiQRSCLMDpaH/QUjnsU9YzWrFkz6CkMDbIIZBFqtTWDnsJxj6KeUaPR\nGPQUhgZZBLIIzWZj0FM47lHUAaAgFPWMeJsdyCKQRaD9ko6iDgAFoahnRO80kEUgi0BPPR1FHQAK\nQlHPiN5pIItAFoGeejqKOgAUhKKeEb3TQBaBLAI99XQUdQAoCEU9I3qngSwCWQR66uko6gBQkMpX\nPkL3Go0GR2VtObO4+urrNDU1nWWs1atHtHHjhq7uUzWLnM9LknbunFSt1t8xms3GQI7Wh32NdIOi\njuJNTU33/Yo9s5rNPONIeZ+XJG3bti7bWLmVtEZov2TEUXogi0AWgZ56Ooo6ABSEop4R5yMHsghk\nEThPPR1FHQAKQlHPiN5pIItAFoGeejqKOgAUhKKeEb3TQBaBLAI99XQUdQAoCEU9I3qngSwCWQR6\n6uko6gBQEIp6RvROA1kEsgj01NNR1AGgIIsWdTO73sz2mtmuebe90MxuMbMfmtm/mdny/k6zDPRO\nA1kEsgj01NN1cqR+g6TLFtx2laTb3P1Vkm6X9KleTwwA0L1Fi7q7b5P06IKbL5f0lfbXX5FU7t/k\n7CF6p4EsAlkEeurpqvbUV7j7Xkly95akl/RuSgCAqvhFaUb0TgNZBLII9NTTVb3y0V4zO93d95rZ\nSkn/d6yd6/W6au3rYI2MjGh0dHRuIc++9WSb7X5tt1rNucuwzb69ny0evd5utZrPujxdv59fv5/P\noLZn5Vovs3I8v1arecTn12g0ND4+3t6/pqrM3Rffyawm6Zvu/qvt7Wsl/czdrzWzT0p6obtfdZT7\neidjnAjmv9hPdDmzqNfHsl6qbHy8u7GqZpHzeUnSli3rtH791r6OMXuN0io5phjGNWJmcnfr9vE7\nOaXxRkl3STrbzKbM7H2SrpH0RjP7oaRL29sAgAFbtP3i7u88yn9d2uO5FI+j9EAWgSwCPfV0/KIU\nAApCUc+I85EDWQSyCJynno6iDgAFoahnRO80kEUgi0BPPR1FHQAKQlHPiN5pIItAFoGeejqKOgAU\nhKKeEb3TQBaBLAI99XQUdQAoCEU9I3qngSwCWQR66uko6gBQEIp6RvROA1kEsgj01NNR1AGgIBT1\njOidBrIIZBHoqaejqANAQSjqGdE7DWQRyCLQU09HUQeAglDUM6J3GsgikEWgp56Oog4ABaGoZ0Tv\nNJBFIItATz0dRR0ACkJRz4jeaSCLQBaBnno6ijoAFISinhG900AWgSwCPfV0FHUAKAhFPSN6p4Es\nAlkEeurpKOoAUBCKekb0TgNZBLII9NTTUdQBoCBJRd3MPm5mPzCzXWb2NTN7Tq8mViJ6p4EsAlkE\neurpKhd1M/slSR+RdL67nytpqaQrezUxAED3libe/yRJzzezw5KeJ+mh9CmVi95pIItAFoGeerrK\nRd3dHzKzTZKmJD0h6RZ3v61nMxsyTz31lLZv3y53zzLeqaeeqgsuuEBmlmU8AGWoXNTNbETS5ZLO\nlPSYpJvN7J3ufuPCfev1umq1miRpZGREo6Ojc0cns/3EYd9esWKFvvCF3dq//2lJ0sqVo5KkVmui\n4+3ZrzvZ//TTD+iLX/wVbd++fSief6+3Z2/LMV6r1VR7+c31bGePCHu93Wo11Wg0uprfxMSENmzY\nUOn59fv55N7evv06rVw5qp0771a9PqZWqylJWrmyJkl9296z5wnVanme7+yY0rO/n41GQ+Pj4+39\n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\n", "text/plain": [ "" ] }, "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\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": 68, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namenamenegneutralposvalence
626gLmFcRwyQCQT23Df2Re9GThe BeatlesI Want You (She's So Heavy) - Remastered 20090.8826420.0918190.1173580.416
1679QDgDoBbS7pCrOjIH7ByAThe BeatlesEverybody’s Trying To Be My Baby - Live / Bonu...0.8669850.9143320.1330150.639
534311wT21Et0q3vepFwXjTuThe BeatlesOne After 909 - Remastered 20090.8657370.1584700.1342630.904
2863uskN0xLezVg4281wzeQnThe BeatlesYesterday - Remastered 20150.8521560.1327960.1478440.348
6059CLXQLZKxRPzMW8S8Gt9NThe BeatlesOh! Darling - Remastered 20090.8346240.2373720.1653760.518
7869d54YOS8TOQiUYjX57XeAThe BeatlesA Hard Day's Night - Remastered 20090.8333090.1887050.1666910.802
921nhooOxso7CCoHPE73w4LThe BeatlesA Hard Day's Night - Live / Remastered0.8333090.1887050.1666910.635
230mNQUZEATk2uItMUtiLWK5The BeatlesA Hard Day's Night - Remastered 20150.8333090.1887050.1666910.752
360wFW5NQJdNDJPcZyfYSExxThe BeatlesHello, Goodbye - Remastered 20150.8271390.1638250.1728610.654
40GRplBEB2FWCKutwMmS6nYThe BeatlesTicket To Ride - Live / Remastered0.8254390.1247860.1745610.405
\n", "
" ], "text/plain": [ " _id artist_name \\\n", "62 6gLmFcRwyQCQT23Df2Re9G The Beatles \n", "16 79QDgDoBbS7pCrOjIH7ByA The Beatles \n", "53 4311wT21Et0q3vepFwXjTu The Beatles \n", "28 63uskN0xLezVg4281wzeQn The Beatles \n", "60 59CLXQLZKxRPzMW8S8Gt9N The Beatles \n", "78 69d54YOS8TOQiUYjX57XeA The Beatles \n", "9 21nhooOxso7CCoHPE73w4L The Beatles \n", "23 0mNQUZEATk2uItMUtiLWK5 The Beatles \n", "36 0wFW5NQJdNDJPcZyfYSExx The Beatles \n", "4 0GRplBEB2FWCKutwMmS6nY The Beatles \n", "\n", " name neg neutral \\\n", "62 I Want You (She's So Heavy) - Remastered 2009 0.882642 0.091819 \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", "28 Yesterday - Remastered 2015 0.852156 0.132796 \n", "60 Oh! Darling - Remastered 2009 0.834624 0.237372 \n", "78 A Hard Day's Night - Remastered 2009 0.833309 0.188705 \n", "9 A Hard Day's Night - Live / Remastered 0.833309 0.188705 \n", "23 A Hard Day's Night - Remastered 2015 0.833309 0.188705 \n", "36 Hello, Goodbye - Remastered 2015 0.827139 0.163825 \n", "4 Ticket To Ride - Live / Remastered 0.825439 0.124786 \n", "\n", " pos valence \n", "62 0.117358 0.416 \n", "16 0.133015 0.639 \n", "53 0.134263 0.904 \n", "28 0.147844 0.348 \n", "60 0.165376 0.518 \n", "78 0.166691 0.802 \n", "9 0.166691 0.635 \n", "23 0.166691 0.752 \n", "36 0.172861 0.654 \n", "4 0.174561 0.405 " ] }, "execution_count": 68, "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": 69, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namenamenegneutralposvalence
26dsq7Nt5mIFzvm5kIYNORyRadiohead15 Step0.8354880.1609280.1645120.848
61MyqLTRhgyWPw7v107BEuIRadioheadYou0.6886830.3406760.3113170.305
505evePUsIT1cmIURp1hgu6RadioheadPlanet Telex0.6463490.2339640.3536510.272
43OsUjkcv1C1v5udFhgRSFgRadioheadAirbag0.6423480.9194110.3576520.642
337kUGdEJJ7NaMl5LFW4EA4Radiohead2 + 2 = 50.6376560.3749240.3623440.365
13pcCifdPTc2BbqmWpEhtUdRadioheadBurn the Witch0.5826020.2652490.4173980.625
00eECFDnWy0RdjMmJ8NOeALRadioheadFeral0.4652160.1672660.5347840.751
\n", "
" ], "text/plain": [ " _id artist_name name neg neutral \\\n", "2 6dsq7Nt5mIFzvm5kIYNORy Radiohead 15 Step 0.835488 0.160928 \n", "6 1MyqLTRhgyWPw7v107BEuI Radiohead You 0.688683 0.340676 \n", "5 05evePUsIT1cmIURp1hgu6 Radiohead Planet Telex 0.646349 0.233964 \n", "4 3OsUjkcv1C1v5udFhgRSFg Radiohead Airbag 0.642348 0.919411 \n", "3 37kUGdEJJ7NaMl5LFW4EA4 Radiohead 2 + 2 = 5 0.637656 0.374924 \n", "1 3pcCifdPTc2BbqmWpEhtUd Radiohead Burn the Witch 0.582602 0.265249 \n", "0 0eECFDnWy0RdjMmJ8NOeAL Radiohead Feral 0.465216 0.167266 \n", "\n", " pos valence \n", "2 0.164512 0.848 \n", "6 0.311317 0.305 \n", "5 0.353651 0.272 \n", "4 0.357652 0.642 \n", "3 0.362344 0.365 \n", "1 0.417398 0.625 \n", "0 0.534784 0.751 " ] }, "execution_count": 69, "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": 70, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "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": 71, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\niaUEISIisf4/1627HoNm2ywAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "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": 72, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "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\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": 73, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namegloomlyrical_densitynamenegvalence
50GRplBEB2FWCKutwMmS6nYThe Beatles1.4750371.853118Ticket To Ride - Live / Remastered0.8254390.405
956j3En9AD8FEAQQhhtkKBR9The Rolling Stones1.4050043.749956Continental Drift - Live - 2009 Re-Mastered Di...0.4082160.129
745H9q6ctIlamkqukdTrNt3kThe Beatles1.2615392.616693Her Majesty - Remastered 20090.5566080.490
240mNQUZEATk2uItMUtiLWK5The Beatles1.2136451.615224A Hard Day's Night - Remastered 20150.8333090.752
785ou2BiQ9FxIYkxsYvYHpATThe Beatles1.2103781.648037Help! - Remastered 20090.8239150.761
111alcPfZWUHh01l4Fnoo5JtThe Beatles1.2034161.332561Help! - Live / Remastered0.8239150.515
281dfuJYDSIc41cw5RPsaCF1The Beatles1.1874381.651824Help! - Remastered 20150.8239150.810
7969d54YOS8TOQiUYjX57XeAThe Beatles1.1830591.601816A Hard Day's Night - Remastered 20090.8333090.802
2963uskN0xLezVg4281wzeQnThe Beatles1.1804681.005426Yesterday - Remastered 20150.8521560.348
5303v6sgKUUFliGse1h04ecCThe Beatles1.1634911.061776I've Got A Feeling - Remastered 20090.8177330.359
\n", "
" ], "text/plain": [ " _id artist_name gloom lyrical_density \\\n", "5 0GRplBEB2FWCKutwMmS6nY The Beatles 1.475037 1.853118 \n", "95 6j3En9AD8FEAQQhhtkKBR9 The Rolling Stones 1.405004 3.749956 \n", "74 5H9q6ctIlamkqukdTrNt3k The Beatles 1.261539 2.616693 \n", "24 0mNQUZEATk2uItMUtiLWK5 The Beatles 1.213645 1.615224 \n", "78 5ou2BiQ9FxIYkxsYvYHpAT The Beatles 1.210378 1.648037 \n", "11 1alcPfZWUHh01l4Fnoo5Jt The Beatles 1.203416 1.332561 \n", "28 1dfuJYDSIc41cw5RPsaCF1 The Beatles 1.187438 1.651824 \n", "79 69d54YOS8TOQiUYjX57XeA The Beatles 1.183059 1.601816 \n", "29 63uskN0xLezVg4281wzeQn The Beatles 1.180468 1.005426 \n", "53 03v6sgKUUFliGse1h04ecC The Beatles 1.163491 1.061776 \n", "\n", " name neg valence \n", "5 Ticket To Ride - Live / Remastered 0.825439 0.405 \n", "95 Continental Drift - Live - 2009 Re-Mastered Di... 0.408216 0.129 \n", "74 Her Majesty - Remastered 2009 0.556608 0.490 \n", "24 A Hard Day's Night - Remastered 2015 0.833309 0.752 \n", "78 Help! - Remastered 2009 0.823915 0.761 \n", "11 Help! - Live / Remastered 0.823915 0.515 \n", "28 Help! - Remastered 2015 0.823915 0.810 \n", "79 A Hard Day's Night - Remastered 2009 0.833309 0.802 \n", "29 Yesterday - Remastered 2015 0.852156 0.348 \n", "53 I've Got A Feeling - Remastered 2009 0.817733 0.359 " ] }, "execution_count": 73, "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": 74, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namegloomlyrical_densitynamenegvalence
337kUGdEJJ7NaMl5LFW4EA4Radiohead0.9817671.0834672 + 2 = 50.6376560.365
61MyqLTRhgyWPw7v107BEuIRadiohead0.8337580.412140You0.6886830.305
505evePUsIT1cmIURp1hgu6Radiohead0.8280650.435957Planet Telex0.6463490.272
26dsq7Nt5mIFzvm5kIYNORyRadiohead0.7754170.67427215 Step0.8354880.848
13pcCifdPTc2BbqmWpEhtUdRadiohead0.6068840.439692Burn the Witch0.5826020.625
43OsUjkcv1C1v5udFhgRSFgRadiohead0.6061610.329999Airbag0.6423480.642
00eECFDnWy0RdjMmJ8NOeALRadiohead0.3788310.093389Feral0.4652160.751
\n", "
" ], "text/plain": [ " _id artist_name gloom lyrical_density \\\n", "3 37kUGdEJJ7NaMl5LFW4EA4 Radiohead 0.981767 1.083467 \n", "6 1MyqLTRhgyWPw7v107BEuI Radiohead 0.833758 0.412140 \n", "5 05evePUsIT1cmIURp1hgu6 Radiohead 0.828065 0.435957 \n", "2 6dsq7Nt5mIFzvm5kIYNORy Radiohead 0.775417 0.674272 \n", "1 3pcCifdPTc2BbqmWpEhtUd Radiohead 0.606884 0.439692 \n", "4 3OsUjkcv1C1v5udFhgRSFg Radiohead 0.606161 0.329999 \n", "0 0eECFDnWy0RdjMmJ8NOeAL Radiohead 0.378831 0.093389 \n", "\n", " name neg valence \n", "3 2 + 2 = 5 0.637656 0.365 \n", "6 You 0.688683 0.305 \n", "5 Planet Telex 0.646349 0.272 \n", "2 15 Step 0.835488 0.848 \n", "1 Burn the Witch 0.582602 0.625 \n", "4 Airbag 0.642348 0.642 \n", "0 Feral 0.465216 0.751 " ] }, "execution_count": 74, "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": 75, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namegloomlyrical_densitynamenegvalence
40GRplBEB2FWCKutwMmS6nYThe Beatles1.4750371.853118Ticket To Ride - Live / Remastered0.8254390.405
735H9q6ctIlamkqukdTrNt3kThe Beatles1.2615392.616693Her Majesty - Remastered 20090.5566080.490
230mNQUZEATk2uItMUtiLWK5The Beatles1.2136451.615224A Hard Day's Night - Remastered 20150.8333090.752
775ou2BiQ9FxIYkxsYvYHpATThe Beatles1.2103781.648037Help! - Remastered 20090.8239150.761
101alcPfZWUHh01l4Fnoo5JtThe Beatles1.2034161.332561Help! - Live / Remastered0.8239150.515
271dfuJYDSIc41cw5RPsaCF1The Beatles1.1874381.651824Help! - Remastered 20150.8239150.810
7869d54YOS8TOQiUYjX57XeAThe Beatles1.1830591.601816A Hard Day's Night - Remastered 20090.8333090.802
2863uskN0xLezVg4281wzeQnThe Beatles1.1804681.005426Yesterday - Remastered 20150.8521560.348
5203v6sgKUUFliGse1h04ecCThe Beatles1.1634911.061776I've Got A Feeling - Remastered 20090.8177330.359
14edArG2VehvJdwOZfYOxtKThe Beatles1.1616532.823318Twist And Shout - Live / Remastered0.4999080.588
\n", "
" ], "text/plain": [ " _id artist_name gloom lyrical_density \\\n", "4 0GRplBEB2FWCKutwMmS6nY The Beatles 1.475037 1.853118 \n", "73 5H9q6ctIlamkqukdTrNt3k The Beatles 1.261539 2.616693 \n", "23 0mNQUZEATk2uItMUtiLWK5 The Beatles 1.213645 1.615224 \n", "77 5ou2BiQ9FxIYkxsYvYHpAT The Beatles 1.210378 1.648037 \n", "10 1alcPfZWUHh01l4Fnoo5Jt The Beatles 1.203416 1.332561 \n", "27 1dfuJYDSIc41cw5RPsaCF1 The Beatles 1.187438 1.651824 \n", "78 69d54YOS8TOQiUYjX57XeA The Beatles 1.183059 1.601816 \n", "28 63uskN0xLezVg4281wzeQn The Beatles 1.180468 1.005426 \n", "52 03v6sgKUUFliGse1h04ecC The Beatles 1.163491 1.061776 \n", "1 4edArG2VehvJdwOZfYOxtK The Beatles 1.161653 2.823318 \n", "\n", " name neg valence \n", "4 Ticket To Ride - Live / Remastered 0.825439 0.405 \n", "73 Her Majesty - Remastered 2009 0.556608 0.490 \n", "23 A Hard Day's Night - Remastered 2015 0.833309 0.752 \n", "77 Help! - Remastered 2009 0.823915 0.761 \n", "10 Help! - Live / Remastered 0.823915 0.515 \n", "27 Help! - Remastered 2015 0.823915 0.810 \n", "78 A Hard Day's Night - Remastered 2009 0.833309 0.802 \n", "28 Yesterday - Remastered 2015 0.852156 0.348 \n", "52 I've Got A Feeling - Remastered 2009 0.817733 0.359 \n", "1 Twist And Shout - Live / Remastered 0.499908 0.588 " ] }, "execution_count": 75, "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\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": 76, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namelyrical_densitynamenegvalencescaled_ldgloom
02ucFulEWapRAmTn7l6f5Q7The Beatles0.169898Wild Honey Pie - Remastered 20090.3911780.1530.0209240.418731
654cLoL5KPfE1hAwfsO84FX7The Beatles0.325955Because - Remastered 20090.4662540.1620.0636020.407178
673jPXnX4SskFgAcC4YBKOwNThe Beatles0.273472Sun King - Remastered 20090.3008090.1970.0492490.389134
9120eJRZyvdYZ5Bx7nHs570iThe Rolling Stones0.711824Neighbours - Live Licks Tour - 2009 Re-Mastere...0.7285270.2120.1691300.388971
437iABnSNZciNepqGtjMQxxdThe Beatles0.800176Come Together - Remastered 20150.5625520.1780.1932930.385925
580MKqeOVdZcUFGJvWpGCKbGThe Beatles0.796316Come Together - Remastered 20090.5625520.1790.1922370.385658
6671Ij3VBYQWMrng61Ae4tBuThe Beatles0.592658You Never Give Me Your Money - Remastered 20090.7534480.2260.1365410.385597
730SAqxgrtLO0GzXBeilxHQsThe Beatles0.543735The End - Remastered 20090.4786100.2070.1231610.377140
8605evePUsIT1cmIURp1hgu6Radiohead0.435957Planet Telex0.6463490.2720.0936860.360175
404ajbplh2IXiJkXjQiq5aqqThe Beatles1.168048Get Back - Remastered 20150.5388100.2120.2938980.357382
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density \\\n", "0 2ucFulEWapRAmTn7l6f5Q7 The Beatles 0.169898 \n", "65 4cLoL5KPfE1hAwfsO84FX7 The Beatles 0.325955 \n", "67 3jPXnX4SskFgAcC4YBKOwN The Beatles 0.273472 \n", "91 20eJRZyvdYZ5Bx7nHs570i The Rolling Stones 0.711824 \n", "43 7iABnSNZciNepqGtjMQxxd The Beatles 0.800176 \n", "58 0MKqeOVdZcUFGJvWpGCKbG The Beatles 0.796316 \n", "66 71Ij3VBYQWMrng61Ae4tBu The Beatles 0.592658 \n", "73 0SAqxgrtLO0GzXBeilxHQs The Beatles 0.543735 \n", "86 05evePUsIT1cmIURp1hgu6 Radiohead 0.435957 \n", "40 4ajbplh2IXiJkXjQiq5aqq The Beatles 1.168048 \n", "\n", " name neg valence \\\n", "0 Wild Honey Pie - Remastered 2009 0.391178 0.153 \n", "65 Because - Remastered 2009 0.466254 0.162 \n", "67 Sun King - Remastered 2009 0.300809 0.197 \n", "91 Neighbours - Live Licks Tour - 2009 Re-Mastere... 0.728527 0.212 \n", "43 Come Together - Remastered 2015 0.562552 0.178 \n", "58 Come Together - Remastered 2009 0.562552 0.179 \n", "66 You Never Give Me Your Money - Remastered 2009 0.753448 0.226 \n", "73 The End - Remastered 2009 0.478610 0.207 \n", "86 Planet Telex 0.646349 0.272 \n", "40 Get Back - Remastered 2015 0.538810 0.212 \n", "\n", " scaled_ld gloom \n", "0 0.020924 0.418731 \n", "65 0.063602 0.407178 \n", "67 0.049249 0.389134 \n", "91 0.169130 0.388971 \n", "43 0.193293 0.385925 \n", "58 0.192237 0.385658 \n", "66 0.136541 0.385597 \n", "73 0.123161 0.377140 \n", "86 0.093686 0.360175 \n", "40 0.293898 0.357382 " ] }, "execution_count": 76, "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": 77, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namelyrical_densitynamenegvalencescaled_ldgloom
8605evePUsIT1cmIURp1hgu6Radiohead0.435957Planet Telex0.6463490.2720.0936860.360175
871MyqLTRhgyWPw7v107BEuIRadiohead0.412140You0.6886830.3050.0871720.347225
8437kUGdEJJ7NaMl5LFW4EA4Radiohead1.0834672 + 2 = 50.6376560.3650.2707670.317860
823pcCifdPTc2BbqmWpEhtUdRadiohead0.439692Burn the Witch0.5826020.6250.0947070.197331
853OsUjkcv1C1v5udFhgRSFgRadiohead0.329999Airbag0.6423480.6420.0647080.188200
836dsq7Nt5mIFzvm5kIYNORyRadiohead0.67427215 Step0.8354880.8480.1588600.130290
10eECFDnWy0RdjMmJ8NOeALRadiohead0.093389Feral0.4652160.7510.0000000.124500
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density name \\\n", "86 05evePUsIT1cmIURp1hgu6 Radiohead 0.435957 Planet Telex \n", "87 1MyqLTRhgyWPw7v107BEuI Radiohead 0.412140 You \n", "84 37kUGdEJJ7NaMl5LFW4EA4 Radiohead 1.083467 2 + 2 = 5 \n", "82 3pcCifdPTc2BbqmWpEhtUd Radiohead 0.439692 Burn the Witch \n", "85 3OsUjkcv1C1v5udFhgRSFg Radiohead 0.329999 Airbag \n", "83 6dsq7Nt5mIFzvm5kIYNORy Radiohead 0.674272 15 Step \n", "1 0eECFDnWy0RdjMmJ8NOeAL Radiohead 0.093389 Feral \n", "\n", " neg valence scaled_ld gloom \n", "86 0.646349 0.272 0.093686 0.360175 \n", "87 0.688683 0.305 0.087172 0.347225 \n", "84 0.637656 0.365 0.270767 0.317860 \n", "82 0.582602 0.625 0.094707 0.197331 \n", "85 0.642348 0.642 0.064708 0.188200 \n", "83 0.835488 0.848 0.158860 0.130290 \n", "1 0.465216 0.751 0.000000 0.124500 " ] }, "execution_count": 77, "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": 78, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namelyrical_densitynamenegvalencescaled_ldgloom
02ucFulEWapRAmTn7l6f5Q7The Beatles0.169898Wild Honey Pie - Remastered 20090.3911780.1530.0209240.418731
654cLoL5KPfE1hAwfsO84FX7The Beatles0.325955Because - Remastered 20090.4662540.1620.0636020.407178
673jPXnX4SskFgAcC4YBKOwNThe Beatles0.273472Sun King - Remastered 20090.3008090.1970.0492490.389134
437iABnSNZciNepqGtjMQxxdThe Beatles0.800176Come Together - Remastered 20150.5625520.1780.1932930.385925
580MKqeOVdZcUFGJvWpGCKbGThe Beatles0.796316Come Together - Remastered 20090.5625520.1790.1922370.385658
6671Ij3VBYQWMrng61Ae4tBuThe Beatles0.592658You Never Give Me Your Money - Remastered 20090.7534480.2260.1365410.385597
730SAqxgrtLO0GzXBeilxHQsThe Beatles0.543735The End - Remastered 20090.4786100.2070.1231610.377140
404ajbplh2IXiJkXjQiq5aqqThe Beatles1.168048Get Back - Remastered 20150.5388100.2120.2938980.357382
50GRplBEB2FWCKutwMmS6nYThe Beatles1.853118Ticket To Ride - Live / Remastered0.8254390.4050.4812520.352950
2963uskN0xLezVg4281wzeQnThe Beatles1.005426Yesterday - Remastered 20150.8521560.3480.2494250.350962
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density \\\n", "0 2ucFulEWapRAmTn7l6f5Q7 The Beatles 0.169898 \n", "65 4cLoL5KPfE1hAwfsO84FX7 The Beatles 0.325955 \n", "67 3jPXnX4SskFgAcC4YBKOwN The Beatles 0.273472 \n", "43 7iABnSNZciNepqGtjMQxxd The Beatles 0.800176 \n", "58 0MKqeOVdZcUFGJvWpGCKbG The Beatles 0.796316 \n", "66 71Ij3VBYQWMrng61Ae4tBu The Beatles 0.592658 \n", "73 0SAqxgrtLO0GzXBeilxHQs The Beatles 0.543735 \n", "40 4ajbplh2IXiJkXjQiq5aqq The Beatles 1.168048 \n", "5 0GRplBEB2FWCKutwMmS6nY The Beatles 1.853118 \n", "29 63uskN0xLezVg4281wzeQn The Beatles 1.005426 \n", "\n", " name neg valence \\\n", "0 Wild Honey Pie - Remastered 2009 0.391178 0.153 \n", "65 Because - Remastered 2009 0.466254 0.162 \n", "67 Sun King - Remastered 2009 0.300809 0.197 \n", "43 Come Together - Remastered 2015 0.562552 0.178 \n", "58 Come Together - Remastered 2009 0.562552 0.179 \n", "66 You Never Give Me Your Money - Remastered 2009 0.753448 0.226 \n", "73 The End - Remastered 2009 0.478610 0.207 \n", "40 Get Back - Remastered 2015 0.538810 0.212 \n", "5 Ticket To Ride - Live / Remastered 0.825439 0.405 \n", "29 Yesterday - Remastered 2015 0.852156 0.348 \n", "\n", " scaled_ld gloom \n", "0 0.020924 0.418731 \n", "65 0.063602 0.407178 \n", "67 0.049249 0.389134 \n", "43 0.193293 0.385925 \n", "58 0.192237 0.385658 \n", "66 0.136541 0.385597 \n", "73 0.123161 0.377140 \n", "40 0.293898 0.357382 \n", "5 0.481252 0.352950 \n", "29 0.249425 0.350962 " ] }, "execution_count": 78, "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": 79, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namelyrical_densitynamenegvalencescaled_ldgloom
2963uskN0xLezVg4281wzeQnThe Beatles1.005426Yesterday - Remastered 20150.8521560.3480.2494250.350962
340TRkjwb4uY3CHb5zhr9bBdThe Beatles1.628703Eleanor Rigby - Remastered 20150.8032320.8450.4198790.213589
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density \\\n", "29 63uskN0xLezVg4281wzeQn The Beatles 1.005426 \n", "34 0TRkjwb4uY3CHb5zhr9bBd The Beatles 1.628703 \n", "\n", " name neg valence scaled_ld gloom \n", "29 Yesterday - Remastered 2015 0.852156 0.348 0.249425 0.350962 \n", "34 Eleanor Rigby - Remastered 2015 0.803232 0.845 0.419879 0.213589 " ] }, "execution_count": 79, "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\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": 80, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namelyrical_densitynamenegvalencescaled_ldgloom
560cJ053ljI4BuP5P8tJnK5jThe Beatles0.893485For You Blue - Remastered 20090.4718270.9580.2188110.068025
1014Q75gU2hFVL4oxqFpTiT3cThe Rolling Stones0.501468Dance (pt 1) - 2009 Re-Mastered Digital Version0.6974060.9050.1116020.081115
202Q2Gu7Bv8iLenuygtBgDUwThe Beatles1.058884From Me To You - Mono / Remastered 20150.5294150.9680.2640440.081670
4872Ob0wrObCXgvGYhFs8vipThe Beatles0.938049Across The Universe - Remastered 20090.2955250.8620.2309980.087194
250Gm34HBxrXlaAf1jdJMjx2The Beatles1.184094I Feel Fine - Remastered 20150.3982520.9180.2982870.088167
1006ml6iL8HUdQKgtMaehAZc8The Rolling Stones1.215580Start Me Up - 2009 Re-Mastered Digital Version0.5247950.9710.3068980.090579
8163nTBScSLXWwyeizXi9RmiThe Beatles1.103784I Saw Her Standing There - Remastered 20090.5839510.9710.2763240.091173
880Za26pWVLQpKfXmb9FX10SThe Rolling Stones1.013658Respectable - Remastered0.4751560.8990.2516760.097583
4657n1teNb2tkcfiYagPmUWrThe Beatles0.885556Two Of Us - Remastered 20090.7110800.9230.2166420.107184
544311wT21Et0q3vepFwXjTuThe Beatles0.718556One After 909 - Remastered 20090.8657370.9040.1709710.113801
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density \\\n", "56 0cJ053ljI4BuP5P8tJnK5j The Beatles 0.893485 \n", "101 4Q75gU2hFVL4oxqFpTiT3c The Rolling Stones 0.501468 \n", "20 2Q2Gu7Bv8iLenuygtBgDUw The Beatles 1.058884 \n", "48 72Ob0wrObCXgvGYhFs8vip The Beatles 0.938049 \n", "25 0Gm34HBxrXlaAf1jdJMjx2 The Beatles 1.184094 \n", "100 6ml6iL8HUdQKgtMaehAZc8 The Rolling Stones 1.215580 \n", "81 63nTBScSLXWwyeizXi9Rmi The Beatles 1.103784 \n", "88 0Za26pWVLQpKfXmb9FX10S The Rolling Stones 1.013658 \n", "46 57n1teNb2tkcfiYagPmUWr The Beatles 0.885556 \n", "54 4311wT21Et0q3vepFwXjTu The Beatles 0.718556 \n", "\n", " name neg valence \\\n", "56 For You Blue - Remastered 2009 0.471827 0.958 \n", "101 Dance (pt 1) - 2009 Re-Mastered Digital Version 0.697406 0.905 \n", "20 From Me To You - Mono / Remastered 2015 0.529415 0.968 \n", "48 Across The Universe - Remastered 2009 0.295525 0.862 \n", "25 I Feel Fine - Remastered 2015 0.398252 0.918 \n", "100 Start Me Up - 2009 Re-Mastered Digital Version 0.524795 0.971 \n", "81 I Saw Her Standing There - Remastered 2009 0.583951 0.971 \n", "88 Respectable - Remastered 0.475156 0.899 \n", "46 Two Of Us - Remastered 2009 0.711080 0.923 \n", "54 One After 909 - Remastered 2009 0.865737 0.904 \n", "\n", " scaled_ld gloom \n", "56 0.218811 0.068025 \n", "101 0.111602 0.081115 \n", "20 0.264044 0.081670 \n", "48 0.230998 0.087194 \n", "25 0.298287 0.088167 \n", "100 0.306898 0.090579 \n", "81 0.276324 0.091173 \n", "88 0.251676 0.097583 \n", "46 0.216642 0.107184 \n", "54 0.170971 0.113801 " ] }, "execution_count": 80, "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": 81, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namelyrical_densitynamenegvalencescaled_ldgloom
10eECFDnWy0RdjMmJ8NOeALRadiohead0.093389Feral0.4652160.7510.0000000.124500
836dsq7Nt5mIFzvm5kIYNORyRadiohead0.67427215 Step0.8354880.8480.1588600.130290
853OsUjkcv1C1v5udFhgRSFgRadiohead0.329999Airbag0.6423480.6420.0647080.188200
823pcCifdPTc2BbqmWpEhtUdRadiohead0.439692Burn the Witch0.5826020.6250.0947070.197331
8437kUGdEJJ7NaMl5LFW4EA4Radiohead1.0834672 + 2 = 50.6376560.3650.2707670.317860
871MyqLTRhgyWPw7v107BEuIRadiohead0.412140You0.6886830.3050.0871720.347225
8605evePUsIT1cmIURp1hgu6Radiohead0.435957Planet Telex0.6463490.2720.0936860.360175
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density name \\\n", "1 0eECFDnWy0RdjMmJ8NOeAL Radiohead 0.093389 Feral \n", "83 6dsq7Nt5mIFzvm5kIYNORy Radiohead 0.674272 15 Step \n", "85 3OsUjkcv1C1v5udFhgRSFg Radiohead 0.329999 Airbag \n", "82 3pcCifdPTc2BbqmWpEhtUd Radiohead 0.439692 Burn the Witch \n", "84 37kUGdEJJ7NaMl5LFW4EA4 Radiohead 1.083467 2 + 2 = 5 \n", "87 1MyqLTRhgyWPw7v107BEuI Radiohead 0.412140 You \n", "86 05evePUsIT1cmIURp1hgu6 Radiohead 0.435957 Planet Telex \n", "\n", " neg valence scaled_ld gloom \n", "1 0.465216 0.751 0.000000 0.124500 \n", "83 0.835488 0.848 0.158860 0.130290 \n", "85 0.642348 0.642 0.064708 0.188200 \n", "82 0.582602 0.625 0.094707 0.197331 \n", "84 0.637656 0.365 0.270767 0.317860 \n", "87 0.688683 0.305 0.087172 0.347225 \n", "86 0.646349 0.272 0.093686 0.360175 " ] }, "execution_count": 81, "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\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": 82, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEPCAYAAABY9lNGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmYFOW1+PHvYRYYZJFlVAIKKiiDiQGMuMRlUIxrNCpE\nx8QkSNTkXu69uWbRqIkQTTTmMd4bsqgJLokCiv6iCK5cHJfEBQTUyCCggqCgjSi7MzBzfn9UNzTT\nNdPVPV1b9/k8zzwz/XZ11anunjpV71aiqhhjjDGtdQo7AGOMMdFkCcIYY4wrSxDGGGNcWYIwxhjj\nyhKEMcYYV5YgjDHGuPI1QYjIVBH5UEReb2eZ34nIchFZLCLD/YzHGGOMd35fQdwFnNrWkyJyOnCw\nqg4BLgdu8zkeY4wxHvmaIFT1BeCTdhY5B/hrctmXgZ4isq+fMRljjPEm7DaI/sDqtMfvJ8uMMcaE\nLOwEIS5lNveHMcZEQHnI218D7J/2eADwgduCImKJwxhj8qCqbifjWQVxBSG4XykAzAK+BSAiRwOf\nquqHba1IVYv257rrrgs9Bts/2zfbv+L76QhfryBEZBpQC/QRkfeA64BKQFX1DlV9TETOEJEVwFZg\nvJ/xGGOM8c7XBKGqF3lYZqKfMRhjjMlP2I3UJqm2tjbsEHxVzPtXzPsGtn+lTDpaRxUUEdG4xGqM\nMVEhImiEG6mNMcbEkCUIY4wxrsIeB2GMKSGqytota2lINNCwvoGl65eyYfsGGpsbaWpuonFnIy3a\nQmVZJZ3LO9O5rDNdK7oyuPdgavrWUFNdw8G9DqairCLsXSkJliCMMb7YtmMb9SvreePDN1j68dJd\nSWFT46YOrbe8UzlDeg9haN+hu5JG7aBaBvQYUKDITYo1UhtjCmbbjm08tvwxZi6ZyZxlc9i6Y2tg\n2z5mwDGMGzaOscPGsn/P/bO/oER0pJHaEoQxpkO2Nm3dnRSWz2Hbjm1hh8RR/Y/alSwG7j0w7HBC\nZQnCGBO4hkQD1z93PQ8vfZjtO7eHHU6bRvUfxY+O+RFjh41FJK/jZKxZgjDGBGb1xtVMqp/E3a/d\nTYu25Pz6qvIqp/2guoaavjUM7DmQLuVddjVKiwhNzU27Gq0T2xK72i8a1jfw0daP8or7iH5HcNOY\nmxhz0Ji8Xh9XliCMMb77eNvH3PTCTUx5ZQqNzY2eXtOrSy/OPORMRuw3YleD8gE9D6CT5N/DfsP2\nDbsSxpLEEp5Y8QQN6xs8v37MQWO46eSbOOJzR+QdQ5xYgjDG+GZr01b+9+X/5df/+LWnHki9q3rz\ntUO/xrjDxnHSgSdRWVbpe4xLEkuY+eZMZi6ZyZuJNz29Ztywcdxw0g0c0ucQn6MLlyUIY4wv5r07\nj4v/fjEfbHa9Tcsufar6cO7Qcxl32DhGDxod6jiFhkQDDy55kAeWPMC/PvpXu8uWSRnXHH8NPz/x\n55R1KgsowmBZgjDGFFRzSzM3PHcDk5+djLZzk8deXXpx9fFX8+9H/jtVFVUBRpidqjL3nblc9X9X\nsXDtwnaXrR1Uy7TzptGve7+AoguOJQhjTMEktia48KELmffuvDaXqSqv4gdH/4CffPkn7N1l7wCj\ny12LtvDgkge5Zt41rNiwos3lqrtWM2PsDE468KQAo/OfJQhjTEE0JBo4c9qZvPvpu67Pl0kZl468\nlJ+f+PPYnW3vaN7B1EVTmfzsZNZtWee6THmncv505p/47sjvBhydfyxBGGM6bN678zjv/vPY2LjR\n9fnaQbXccdYdDOkzJODICmtr01ZufOFGfvX8r9qsPrvyy1fyq5N/1aHeVlFhCcIY0yGPLX+Mc2ac\nw86WnRnPCcLPT/w5PzvhZ0XVkDvv3Xlc9NBFfLj1Q9fnJ4yYwJ+/+ufYD66zBGGMydvidYs5/q7j\n2dK0JeO53lW9uX/s/UU7uGzdlnVc8OAFPLfqOdfnbxh9A9eccE3AURWWJQgTK4kErFwJgwZBdXXY\n0ZS2NZvWcNRfjnLtxjqk9xDmXDQn9lVK2TQ1N3HZo5dxz2v3uD5/33n3cdEXLgo4qsKxO8qZ2Jg+\nHQYOhFNOcX5Pnx52RKVrc+Nmzpp2lmtyOO6A43hxwotFnxwAKssqueucu7h+9PWuz49/ZDzPr3o+\n4Kiiwa4gTGASCScpbE+b162qClatsiuJoKkqZ884m9nLZmc89/l9Ps8L41+gZ5eeIUQWriufvpKb\n/3lzRnnvqt4suHQBB/Y6MISoOsauIEwsrFwJla1mXaiocMpLQSIB8+c7v8P254V/dk0O+3XbjzkX\nzSnJ5ABw45gbGTdsXEb5hu0bmDBrQl6TE8aZJQgTmEGDoKlpz7IdO5zyYhelqrVVn67ih0/9MKO8\na0VXZtfN5oCeB4QQ1W5hJtJO0ol7vnYPxww4JuO5Z1Y+w20Lbgs+qBBZgjCBqa6GqVOdaqUePZzf\nU6cWf/VSIgETJjhVaxs3Or8nTAjnAKiqXDb7MtceS/eee2/oM5xGIZFWVVTxyIWPsH+PzLvS/eTp\nn7Dq01XBBxUSSxAmUHV1TpvD3LnO77q6sCPyX5Sq1p5+52meevupjPJLhl/CuTXnBh9Qmigl0uq9\nqpl69tSM8q07tjL52cnBBxQSSxDGk0Je9ldXw5FHFv+VQ0pUqtZUlWvmZfbp79+9P7ecekuwwbiI\nUiIFOOXgU7h05KUZ5fe8dg9vrX8rhIiCZwnCZBWFy/44i0rV2qy3ZrHggwUZ5beeemskJtyLSiJN\n95tTfkPvqt57lLVoC9fVXxdSRMGybq6mXdY1tXDCHiBYe3ctz656do+yEfuNYMFlCyIz59D06U61\nUkWFkxymTg2/GvLmf9zMlXOv3KOsk3TivR+8R/8e/UOKyjvr5mp8E7XL/jgLs2rtnU/eyUgOADec\ndIM/ySHPOskotlFNHDWR/brtt0dZi7bw19f+GlJEwbEEYdoVxcv+fIQ9BiHs7d+9+O6MskP7HMrp\ng0/P+tqcY+9gnWTU2qi6VnTle0d8L6P8zsV3Uuy1GpYgTLuiUn/eEWG3obS3/aASxx0vZu70+OHj\ns85UmvN7F6WuSAX07eHfzihbsWGFa5tOMbEEYbIqxGV/WGfQYR+v2tt+UIlr0Tvv8eGOVndSa+nE\n0V0vbjfup57KjH38eGhoaGdjRVonOWjvQa53mntm5TMhRBMcSxDGk/TL/lwP9mGewd9++54N7BDs\n8aqt4+WiRXkcfPM06/XMtgfWHsGpx37O9bNIfV7nnZf53jU2wogR7XyGxVIn6eKsIWdllNWvrA8+\nkABZgjA5yfVgH+YZfCIBv/xlZnmQx6u2jpeQmTiyHnzztKyxPrNw5Yk0NmZ+Fumf19at7utze90u\nxVAn2YYTB52YUfb8e8+73mSpWFiCMJ7lc7APs8Zh5Uro3Dmz/OqrgztetXW8HDEiM3FAloNvnt7e\n/GZm4aoTgMzPwu3zctPuZxjFrkgF8MV9v0iPzj32KNvStIXVG1eHFJH/fE8QInKaiCwVkWUicqXL\n8/uLyDwRWSgii0Uke7cKE4p8DvZh1ji4bbtLF7j8cv+3nc7teJlKHG4JrNAJdNVGl7mDEsOAzM/C\n7T3r3DkzzqyfYdS6IhVAWacyDu1zaEa56/tbJHxNECLSCfg9cCpwGFAnIkNbLXYtcL+qjgTqgD/6\nGZPJXz4H+zBrHNy2feed4Ryz3I6XdXVOW0TOB98cbN+xnXVb1u1ZqEJ33d/1s3B7z+66y/nx+hmG\n3aXXT4P2HpRRtvLTlYHHEZRyn9c/CliuqqsARGQGcA6wNG2ZFiB13bY38L7PMZk8pQ4erUe6Zjvg\n1tXBmDHhjCIOc9te1NQ4B99c31Ov1m5Zm1HWr9vneOSpyjbfj7beMy/vY2okdGWlczIRhZHQhTSw\n58CMsjWb1oQQSTD8ThD9gfQKujU4SSPdZOApEflPoCtQnHdHLxL5HnCrq8M7OIe5bS/8TGKf7fws\no6xnVXeOPLL917m9Z9nex/Q2qlTvpwkTnH2L8vufi26V3TLKGnc2hhBJMPxOEG6jcFoPPawD7lLV\nW0XkaOBenOqoDJMmTdr1d21tLbW1tYWJ0uQk6gfcOPLrPXW7A5pf8y6l2qjSu8am2lOK5fvi9t5F\n7S5z9fX11NfXF2RdfieINUD67akGAK3vkD4Bp40CVX1JRLqISF9VXd96ZekJwhiTXUWnioyypmaX\n7lMFkK2NKuzJCgvB7b2rKMt8j8PU+uR58uT871/hdy+m+cBgERkoIpXAhcCsVsusIlmtJCI1QGe3\n5GCMyV2vql4ZZeu2rPNlDqH2OiSEPd1JoWQ0+EMkpkr3i68JQlWbgYnAU8CbwAxVbRCRySKSGpb4\nI+BSEVkM3AdkTnpijMlLdddqqsqr9ijb0rSFDds3+LI9ty69YU93UkgrN67MKHPr2VQs/K5iQlWf\nAA5tVXZd2t8NwHF+x2FMKRIRBu49kKXrl+5R/s4n79Cnax9fttm6PaWY2ibe/eTdjLJiThA2ktqY\nIndQr4Myyl5+/+XAtl8s0zMltiZ4+5O3M8otQRhjYuuYAcdklAU5yVyxTM/03KrnMsqGVQ8r6jYI\n36uYjDHhqh1Um1FWv7Ke5pZmyjqVBRJD1AcsejHv3XkZZbUDa4MPJEB2BRFxxTxtgQnGqP6jMhqq\nP97+MU+/83SgccR5eqYdzTuYuWRmRvnoA0eHEE1wLEFEWLF0DTThqiyr5CsHfyWj/K7Fd4UQTTzN\nWT6HxLY9z9I6l3Xm5ANPDimiYFiCiKhi6hpowjd++PiMsoeXPsyHWz4MIZr4uePVOzLKvjb0a67j\nTIqJJYiIKtI7N5os/KpSPGPIGeyz1z57lDU1N3HTCzcVdkMh8+P9e3nNyzy+4vGM8ktGXFK4jUSU\nJYiIKpaugca79qoUO3rgqyir4Dtf/E5G+Z8W/KloZiP1q0r22meuzSgb2HNg0VcvgSWIyCqWroEm\nu0QCnnoKLrnEvUqxUAe+Hx77Q7pWdN2jrLG5kZ/+308LsBfh8qtK9vHljzP3nbkZ5T874WeB9QAL\nkyWICCvSOzeaNKmD/3nnwWetZuauqHBuKFSoA98+e+3Dfx31Xxnl975+L4++9WieexANflTJfvrZ\np1z66KUZ5YN7D+bbw0tjRiBLEBEX566Bpn3pZ71bt2Y+39QEb70F5a1GK3k98LlVS/342B+7Duy6\nfPblvs3PFAQ/qmSvePIK3t+cef+yybWTKe9UGkPIsiYIEZkoIsXdVF/iOlq/HcexGlGI2e2sF2Cv\nvZwk0NIC11wDmzfv+byXA19b1VK9qnpxy1duyVh+7Za1XPDgBexo3pHXvoSt0FWyd7x6h2s34DEH\njaHu86VzKe/lCmI/YL6IPCAip4mI202ATEx1tH47jmM1UjGPHh1uzG5nvan7ZpeXO8+lJ4du3bwd\n+LLVx48fPp7TBp+W8bq578zl+3O+78tU4IWQLakXqkr2yRVP8m9z/i2jvHtld/7y1b9QSodA8fJl\nSCaFrwDjgS8BDwBTVTVz5iqfiIhG9YsbV4mEc4BMn2Wzqsr55/Jy5tXR14chkYABA/Y8MFdWwpo1\n4cScuodz+v2oBw92Eu7GjbuX694dpkyBM87IHuf8+Zmv79HDOXCmbjW6ZtMaDvvjYWxq3JTx+htP\nvpGrjruqAHtXOEHd6/r1D1/nuDuPY3PT5oznbj/rdi474rLCb9RnIoKq5pXVPLVBJI/M65I/O4Fe\nwIMicnM+GzXR0NGGvTiO1Vi0KPOsvanJKQ+D21mv25XFzp3ekgN4q48f0GMA08+f7noLzZ/+30+5\n7/X7ct0V3+TbQynXasTVG1dz5rQzXZPDd4Z/h0tHZjZYFzsvbRD/KSKvAjcD/wC+oKrfB44Azvc5\nPuOjjjbs2ViNwmjdEaGj9eleX3/GkDOYcvoU13Vc/PeLueWft0SiuimfE5Fcqz5f/eBVjvrLUa5j\nQk468CRuP+v2kqpaSslaxSQiv8CpTlrl8lxN8oY/vrMqJn+4VXHkcune0dcHLZGA/v2dWFMqKuD9\n96NXLdbRezh7ff0Pn/whv33pt67PXX7E5Uw5fUqo913OtSoz1+VnvTWLuofq2LZjW8Zzw6qH8Y9L\n/hHrKb07UsXkJUH8TVUvzlbmN0sQBZZ29EhQHciBKCqmT3cGpZWVQXOz0ygc5aTmtxZtYewDY/n7\n0r+7Pn/cAccx/fzpDOgxIODIdsvlRMRLGwzAzpadTKqfxK+e/xVK5rFl37325aXvvhT7GwL5nSAW\nqurItMdlwBuqOiyfDebLEkQBBdXiF2FxS2r5yGUft+3Yxtdnfp05y+e4Pt+nqg9/O/dvnD7k9ILH\n6ZXX/fFyBfH+pvepe6iO59973nUd/br147FvPMbw/YYXLP6w+JIgROSnwNVAFZC69hKgCbhDVQMd\nn28JokDi2PXI5Cyfc4CdLTu54skrmPKKe7sEQN3n67h+9PUc3PvgAkdcWG1dcWzbsY3fv/J7bnzh\nRj797FPX1x6+7+HMrpvN/j33Dzhqf/h9BXFj0MmgjTgsQRSC1+tvE1sdPQeY8vIUfvDkD2jRFtfn\nyzuVc/kRl3PtCdeyX7f9ChR14aVfcfTqs5M7F93J5Gcn88HmD9p8zemDT+f+sffTvXP3wOL0m19X\nEENVdamIjHR7XlUX5rPBfFmCKJCAriBKoQonqgpxDvDcqueoe6iu3YNp14quXHH0Ffzo2B/Rs0vP\nDkbtD1XloYaHuGbeNSz7eFmby3WSTkw6cRJXH3910U3C51eCuENVLxORZ1yeVlU9KZ8N5ssSRAH5\n3PXImjjCVahzgMTWBBf//WKefPvJdpfrXdWbK46+grov1HFQr4PyjLqwNjduZvay2fz2pd+y4IMF\n7S7br1s/pp0/zfXe3cXA1yqmqLAEUWA+neJbE0c0FOocoEVbuG3BbUx+djIfbf0o6/Ij+41k3LBx\njBs2LvB2ik2Nm5i9bDYzl8zk8eWP09jc2O7ynaQTlwy/hF+e/MuMmykVE7/bIF4DZgAPBDm1hksc\nliBiwJo4oqOQ5wBbmrZw64u38pt//sZ1pLGbEfuNYNywcZxbcy6H9DnEddR2R63ftp4nVjzBzCUz\neXLFk1mTQsp5Nefxy5N+ydC+QwseU9T4nSAGAhckf1qA+3GSxXv5bDBfliDiwa4giltia4IbX7iR\nP8z/A03NTdlfkFRVXsWhfQ+lpm8NQ/sOpaZvDTXVNQzpPYTO5Z3bfa2qsnrTahoSDSxdv5SG9Q3O\nT6KBxLbcpuMdPWg0N425iVH9R+X0ujgLrIpJRIYAPwO+oaqBtuRYgoiPuI2uNrlb9ekqJj07ib++\n9tc2ezt5USZl9Ovejy7lXehc1pnKskrKOpXRuLORxuZGGnc2sn7berbucLlhRg5G7DeCm8bcxCkH\nnVJyU2b4niBEZBDwdZyriGbgflXNnFTeR5YgchCBLkQRCCGafH5jgn7f397wNve/eT8zl8xk8brF\n/m8wB9Vdqzmv5jzGDRvH6ANH+1LFFQd+VzG9DFQAM3ESwzv5bKijLEF4FGQXIssCufH5swm799jy\nj5fz4JIHmblkJovWhTM97j577cP5NeczdthYThh4Qsnc+a09fieIoaq6NK/ICsgShAdBNgCEfTSK\nG58/m6i1/azYsIIHlzzIo8se5V8f/cv1vhOFUN6pnCG9hzB60GjGHTaO4w84vujGMXSUX+Mgvqmq\n94rIFW7Pq6r79I8+sQThQVBdiDwejewCI43Pn02Ue4+pKuu2rNvVsJzeyLx2y1pP6+hW2W1343ay\ngXto36Ec3OvgUGeajYOOJIj2rr/2Sv52G3NuR+ooCuoGDakJ+tMTRGqC/mQmsAuMVjr42WRLtlG+\nN4eI0K97P/p178dJB+45vnbjZxv55LNPaNzZSFNzE43NjTS3NNO5vDOdyzrTubwzXSu6su9e+5Zc\n43IkqGq7P8CXvZT5/eOEarKaNk21qkq1Rw/n97Rphd/GRx8564bdP1VVTnn2p0tXnp9N6mU9e7b/\nsiA+ehM/yWNnXsfdnKf7bqvMb1bFlIMg6nba6csa5eqO0OX42eRzsxyr1jPpfKliEpFjgGOB6lbt\nED0AawWKsupq/48OdXUwZozr0SjK1R2hy/Gz8VCb15HVFyVLkoXTXsfgSqAbThLpnvazCRjrdQMi\ncpqILBWRZSJyZRvLfF1E3hSRN0TkXu/hm1C1vplyWnFH7qlsdrNkm5tc70Vt2udpqg11uR+1p5WL\ndAKWAScDHwDzgQs1rdusiAzGmb5jtKpuEpG+qrreZV1WxRQzdiZXGDYy3ZuodfWNCr96MaVsE5Hf\nAIcBXVKF6m2671HA8lSCEZEZwDlA+riKS4E/qOqm5HozkoOJJ6vuKIx2avNMmlyr40x2Xsae34dz\nQD8QmAysxLkS8KI/sDrt8ZpkWbpDgENF5AUR+aeInOpx3caUjDZq80waq44rPC8Joo+qTgV2qOqz\nqnoJ4PVmQW6XNa3ricqBwcAJwEXAX0Skh8f1GxOYRMLpoZXIbQJRExBr+yo8L1VMO5K/14rImTht\nCb09rn8NcEDa4wHJ17de5kVVbQFWishbwBDg1dYrmzRp0q6/a2trqa2t9RiGMR1TTAP/CtU2FMU2\nptbVceAk9SjF6Lf6+nrq6+sLs7JsAyWAs4CewOeBZ3AO3Gd7GWSB0x12BTAQp1fUYqCm1TKnAncn\n/+4LrAJ6uayrAENGjHF89JHqK694G7yX98C/HDaSSzwd4XXQXVDr8VMcYgwCHRgoF8QI6NOAt4Dl\nwFXJssnAWWnL3AK8CbwGjGtjPT68daYU5XrgeOUVZ9n0BNGjh1NeiI0EdSDLJ9G5Ja44jJSPQ4xB\n6UiC8NLN9XcuxRuBBar6SE6XKx1g3VxNIeTTFTLn1+TwgiC7ZuY6wr2tarU4jJSPQ4xB6Ug3Vy+N\n1F2A4ThXAMuBw3HaEiaIyP/ks1FjwpLqCpku1RWyLTk3fuawkXziyVcuvXwSCSc5bN/uHGS3b3ce\nJxLx6C0UhxjjwEuCOBxnENsUVZ0CjAGGAucCX/EzuGLT0AD33OP8NuEYNAgaW93X3u3A0brHUl2d\nc1Y/d67zu90G6hyOTkEeyHJJdO0lrjj0FopDjLGQrQ4Kp/2gZ9rjnsBbyb8X5Vu3lesPMW+DmDhx\nz/rQiRPDjqg0TZumWlm5+3OoqMis8y9Im0AOU6sGPQurlwbx9urwU69fsiSYhvWOCKrxP8rwuQ1i\nAnAtUI8zruEE4FfAdGCSqv7Yj8TlEodmizWqGhpg2LDM8iVLoKYm+HiKkZcul17q+wvaJpBDP9Ao\ndhl1m+ID9myXuPVWGDkyWnGbPfk61YaqThWRx3CmzRDgalVNjWUIJDnE3SuvtF1uCaLjvI5R8DIV\nQ0Gna8hhrpEoTkviNqYglTxT78/3vgfdu8POnfEeG2LcebmCEOAbwEGq+gsROQDYT1XbOOz5w64g\njJtczvgDv4IoMm49g9LZ+xRNfvdi+iNwDJA6N9gM/CGfjZWqmhqYOHHPsokTLTkUQi69gLw0XPrd\nuBnn6TrcGtTT+dX7yoTH8x3lRGSRqo5Ilr2mql8MJMLdccT2CiKlocGpVho1qu3kEGZddBTrwVtr\nHWO+4xq8tFcU+r0ohuk6UvtQXg6bN+/5XKGvIOLwfYyDjlxBeOk99DLOlBkLk4+rCbD3Uloc+Tfj\nx0SYUwPEYVqCtmKMw72Yi2lkb6pn0G23+fe+x+H7GBf43IvpG8AFwEjgHpy7yV2rqjPzykh5KoYr\niPaEWfcdh3r3bDFG/WyzWEf2+vG+F+r7GPXvRFB8bYNQ1fuAnwA3AmuBrwWdHEpBkCNqo7Rtr7LF\nGPX7JXgZEBfH9gk/3vdCfB/t1qOF4aWRGpwpNv4OzAK2JnsymQIKc2qAOExLEPcDbLbG71I6oGX7\nnDr6fWxvmhCTo2x1UMB/AOtxZlt9HXgDeD3fOq18fyihNogw6tLjUI/fXoxxqbOO6+yoheL1c+rI\n9zGv2XeLGD63QawAjlLVj/1MVNkUextEivViap9bjHFoQ2lPsbZPtJbr55Tv9zHu34dC83UkNc49\npdsYGmMKLcwRtVEczduaW4xxv1l9HKr4CiHXzynf72OqOq/1NCFx+C5EjZcE8Q5QLyJzgF3zYKrq\nb32LyngShzP+IAR9gC30+14qB7QgP6fW04QU23sZFC+N1O8BT+PcMrR72o8JUSk1amYT5NTOfr3v\nOU0nHlNBT8Ed9Z5tcZC1DSIqSqUNwgurY3Xn9xVVsbzvYV95hr39UuP3XEwmYuIwbiEMfp8xFsP7\nHoUrTzuzjw+7goihYjmTjZu4v+9xj9/kx9crCBH5spcy03FeB3rZ7RTDEff3vRiugEywPM/mmq3M\nb8V+BZHPTJ9WlxuOuL7vpXAFEdfPxk8duYJoM0GIyDHAscAPgFvTnuoBnKs23XfBlMI/rokGt9uI\nFkuPqWKYTt0Pfg2UqwS6JZdJ79a6CWdGV9OOXM5k4j7Qy8REIkHd4JWc8uog3t1SXVRn2enzL6X+\njyZMcMZCFMs+hqHNBKGqzwLPisjdqroqwJhiL9czmVIZSWtClPal7NvURN+pU+HI4jm9tpMsf3hp\ngzgE+BEwiLSEoqon+RpZZhyxqGLKt7qomC/9TchKoA6zBHYxb37PxTQTuA34C9Ccz0ZKSb5nMjY1\ngPFNCZxel8p0JUHzcgXxqqoeEVA87cVR1FcQxvimhL6U1ospk98jqR8VkX8TkX4i0jv1k8/GSkHc\n+8qbIlRCX0obpV1YXq4g3nUpVlU9yJ+Q2owjFlcQKXYmYyLHvpQlyZdxEFETtwRhjDFR4PdUG11F\n5FoRuSP5eIiInJXPxozxW5TvS21M3Hhpg7gLaMIZVQ2wBrjBt4iMyVMUZio1pph4aYNYoKpfEpFF\nqjoiWfaaTbVhoqSEOuoYkxO/ezE1iUgVoMmNHUzarUeNiQKbqdSYwvMyUO464AlgfxG5D/gy8B0/\ngzImVzZdiTGFl/UKQlWfBs7DSQrTgS+par3XDYjIaSKyVESWiciV7Sw3VkRaRCTQacRNcSihrv7G\nBMZTN1e9ykohAAAOqUlEQVQROZzMuZj+n4fXdQKWAScDHwDzgQtVdWmr5boBc4AKYKKqLnRZl7VB\nmKzi2tU/rnGb6PN1LiYRuRM4HHgTaEkWK5A1QQCjgOWp2WBFZAZwDrC01XLXA78GfuwtbGPcVVfH\n7wBr9zFonyXP8HhppD5aVb+kqt9W1fHJn0s8rr8/sDrt8Zpk2S4iMhwYoKqPeVxnpFk/fJOL9PsY\nbNzo/J4wwb4/KdZ1OVxeEsSLIjIsz/W7XdbsqicSEcG5W90Ps7wmFuzLbHJlva/aZskzfF56Md2D\nkyTW4XRvFZy5mA738No1wAFpjwfgtEWkdAcOA+qTyWI/4BEROdutHWLSpEm7/q6traW2ttZDCMGw\nO1qZfFjvq7aVwCzlvqivr6e+vr4g6/IyUG4FcAXwBrvbIPBylzkRKQPewmmkXgu8AtSpakMbyz8D\nXKGqi1yei3Qj9fz5zpXDxo27y3r0gLlzndkljWmL3SzKnQ1+LAy/bxiUUNVZ+axcVZtFZCLwFE51\n1lRVbRCRycB8VZ3d+iXEtIrJzgT35EfDYrE2VtrNotzZTYDC5+UK4o/A3sCjpI2g9tLNtZCifgUB\ndiaY4kevHOvpU7qK9cQgKL5O9y0id7kUaw49mQoiDgkC7MvsR7WAVTUYkz9fq5hUdXw+Ky5VceyH\nX0h+NCxaY6Ux4WgzQYjIT1T1ZhGZQlrX1BRV/U9fIzOx5EdbjLXvGBOO9sZBpHoaLQBedfkxJoMf\ncyLZPEvGhMNLG8Q4VZ2ZrcxvcWmDMA7rxWRMNPjdSL1QVUdmK/ObJQhjjMmdL43UInI6cAbQX0R+\nl/ZUD2BnPhszxhgTH+31YvoAp/3hbPZsc9gM/LefQRnjB6uiMiY3XqqYKlR1R0DxtBeHVTGZvNlA\nO1Oq/G6D+DIwCRiIc8WRmqzvoHw2mC9LECZfNtDOlDK/52KailOl9CrQnM9GjAmTDbQzJj9eEsRG\nVX3c90iM8UkpDbSzdhZTSF5uGPSMiPxGRI4RkZGpH98jM6ZASmWgnd2wyhSalzaIZ1yKVVVP8iek\nNuOwNgjTIcV8dm3tLKYtfk/WNzqfFRsTNcU8kaK1sxg/ZK1iEpF9RWSqiDyefDxMRCb4H1ppSCSc\nu9HZfXZNR5RSO4sJjpc2iLuBJ4HPJR8vA37gV0ClxOqMTaFEvZ3FToTiyUsbxHxVPVJEFqnqiGTZ\nYlUdHkiEu+MoqjYIqzM2fohiO4sNUgxXR9ogvFxBbBWRPiTvCSEiRwMb89mY2S1VZ5wuVWdsTL6q\nq+HII6OTHBIJJzls3w4bNzq/J0ywK4m48DIO4gpgFnCwiPwDqAbG+hpVCbA64+iL4tl43Fjjebxl\nvYJQ1YXAicCxwOXAYar6ut+BFbuo1xmXOmsfKgw7EYq3NtsgRORIYLWqrks+/hZwPrAKmKSqGwKL\nkuJrg0ixs9Tosfahwkq1QVRUOMnB2iCC5ctkfSKyEBijqhtE5ARgBvAfwHCgRlUDrWYq1gRhomf+\nfOfKYWNaS1uPHjB3rlO/b3JnJ0Lh8WugXFnaVcIFwB2q+hDwkIgszmdjxsSBVYsUXjEPUixm7bVB\nlIlIKoGcDMxLe85L47YxsWTtQ8Y42qtiugbnlqPrgQOAkaqqIjIYuEdVvxxcmFbFZIJn1SKmGPh2\nw6DkmId+wFOqujVZdgjQLdm7KTCWIIwxJne+3lEuKixBGGNM7vweSW2MMaYEWYIwJoZs8jsTBEsQ\nxsSMjfI2QbE2CGNixEZ5m1xZG4QxJcJmATZBsgRhTIwUYpS3tV8YryxBGBMjHR3lbe0XJhfWBmFM\nDOUzytvaL0pTpNsgROQ0EVkqIstE5EqX5/9bRN4UkcUi8rSI7O93TMbEXT53jrP2C5MrXxOEiHQC\nfg+cChwG1InI0FaLLQSOSN7j+iHgN37GZEypsllqTa78voIYBSxX1VWqugPnnhLnpC+gqs+q6mfJ\nhy8B/X2OyZiSZLPUmlz5PW13f2B12uM1OEmjLROAx32NyJgSVlcHY8bYLLXGG78ThFvDiGtLs4h8\nEzgC5/7XriZNmrTr79raWmprazsWnTElyG7eU9zq6+upr68vyLp87cWUnC58kqqelnx8FaCq+utW\ny40B/hc4QVU/bmNd1ovJGGNyFOVeTPOBwSIyUEQqgQuBWekLiMgI4Dbg7LaSgzHGmOD5miBUtRmY\nCDwFvAnMUNUGEZksImclF7sZ2AuYKSKLRORhP2MyxhjjjQ2UM8aYIhblKiZjjDExZQnCGGOMK0sQ\nxhhjXFmCMMYY48oShDHGGFeWIIwxxriyBGGMMcaVJQhjjDGuLEEYY4xxZQnCGGOMK0sQJhSJBMyf\n7/yO4vqMMZYgTAimT4eBA+GUU5zf06dHa33GGIdN1mcClUg4B/Ht23eXVVXBqlX53cSm0OszptjY\nZH0mNlauhMrKPcsqKpzyKKzPGLObJQgTqEGDoKlpz7IdO5zyKKzPGLObJQgTqOpqmDrVqQbq0cP5\nPXVq/tVBhV6fMWY3a4MwoUgknGqgQYMKczAv9PqMKRYdaYOwBGGMMUXMGqmNMcYUnCUIY4wxrixB\nGGOMcWUJwhhjjCtLEMYYY1xZgjDGGOPKEoQxxhhXliCMMca4sgRhjDHGlSUIY4wxrixBGGOMcWUJ\nwhhjjCtLEMYYY1xZgjDGGOPKEoQxxhhXliCMMca4sgRhjDHGle8JQkROE5GlIrJMRK50eb5SRGaI\nyHIReVFEDvA7JmOMMdn5miBEpBPwe+BU4DCgTkSGtlpsArBBVYcA/wPc7GdMUVVfXx92CL4q5v0r\n5n0D279S5vcVxChguaquUtUdwAzgnFbLnAPck/z7QeBkn2OKpGL/khbz/hXzvoHtXynzO0H0B1an\nPV6TLHNdRlWbgU9FpLfPcRljjMnC7wQhLmWaZRlxWcYYY0zARNW/Y7GIHA1MUtXTko+vAlRVf522\nzOPJZV4WkTJgraru47IuSxrGGJMHVXU7Wc+qvNCBtDIfGCwiA4G1wIVAXatlHgW+DbwMjAPmua0o\n3x00xhiTH18ThKo2i8hE4Cmc6qypqtogIpOB+ao6G5gK/E1ElgMf4yQRY4wxIfO1iskYY0x8RW4k\ndbEPrPOwf/8tIm+KyGIReVpE9g8jznxk27e05caKSIuIjAwyvo7ysn8i8vXk5/eGiNwbdIwd4eG7\nub+IzBORhcnv5+lhxJkPEZkqIh+KyOvtLPO75HFlsYgMDzK+jsq2fyJykYi8lty3F0TkC55WrKqR\n+cFJWCuAgUAFsBgY2mqZ7wN/TP59ATAj7LgLvH8nAl2Sf38vLvvnZd+Sy3UDngX+CYwMO+4Cf3aD\ngVeBHsnHfcOOu8D7dztwefLvGuDdsOPOYf+OA4YDr7fx/OnAnOTfRwEvhR1zgffvaKBn8u/TvO5f\n1K4gin1gXdb9U9VnVfWz5MOXyBw3ElVePjuA64FfA41BBlcAXvbvUuAPqroJQFXXBxxjR3jZvxag\nR/LvvYH3A4yvQ1T1BeCTdhY5B/hrctmXgZ4ism8QsRVCtv1T1ZdUdWPyoefjStQSRLEPrPOyf+km\nAI/7GlHhZN235GX7AFV9LMjACsTLZ3cIcGjyEv6fInJqYNF1nJf9mwxcLCKrgdnAfwQUWxBa7//7\nxOfkLFffxeNxxe9urrkq9oF1XvbPWVDkm8AROFVOcdDuvomIALfidGlu7zVR5eWzK8epZjoBOAB4\nXkQOS11RRJyX/asD7lLVW5NjnO7FmWOtGHj+34wzERkNjMepksoqalcQa3D+sVIGAB+0WmY1sD9A\ncmBdD1Vt79IxSrzsHyIyBvgp8NXk5X4cZNu37jgHk3oReRenTvSRGDVUe/ns1gCPqGqLqq4E3gKG\nBBNeh3nZvwnAA+BUWQBdRKRvMOH5bg3J40qS6/9mnInI4cAdwNlej5lRSxC7BtaJSCXOmIhZrZZJ\nDayDdgbWRVTW/ROREcBtOB/ixyHEmK92901VN6nqPqp6kKoeiFMP+lVVXRhSvLny8t18GDgJIHng\nHAK8E2iU+fOyf6uAMQAiUgN0jlk7i9D2Vess4FuwawaIT1X1w6ACK5A29y/Z2/Mh4GJVfdvzGsNu\nfXdpbT8N58xrOXBVsmwycFby7844ZzHLcQ4yg8KOucD79zTOqPOFwCLg4bBjLtS+tVp2HjHqxeR1\n/4BbgDeB14BxYcdcyP3D6bn0Ak4Pp4XAyWHHnMO+TcO5ImgE3sOpZrkcuCxtmd/j9OR6LYbfzXb3\nD/gzzkDk1HHlFS/rtYFyxhhjXEWtiskYY0xEWIIwxhjjyhKEMcYYV5YgjDHGuLIEYYwxxpUlCGOM\nMa4sQZiSJCLPiMgprcr+S0R+385rNvsfmTHRYQnClKppZN7+9kJgejuvsUFDpqRYgjCl6iHgTBGp\nAEjeN70fsFhE5orIguQNVs52e7GI/EhEXknegOW61DpEZImI3CEi/xKRJ0Skc/K5g5M3gFqcXPeB\nba3HmKiwBGFKkqpuAF7BmV4CnKuH+4HtwNdU9Us48yrd0vq1yaqpIao6ChgBfElEUrNjDgamqOrn\ngY3A+cny+5Llw4FjgbVZ1mNM6KI23bcxQZqBkxgeTf4ej3PSdJOIHI9zg5zPicg+qvpR2uu+Apwi\nIgtxJkfbC2divtU4d1l7I7ncq8AgEekGfE5VZwGoahOAiLS1nhd83GdjPLMEYUrZw8AtyRl0u6jq\nYhH5NtAHGKGqLcmpybu0ep0AN6rqn/codKqp0u+U15x8bVuzbLqux5iosComU7JUdSvO/bHvxGm0\nBugJfJRMDqNx7tGckjrIPwlcIiJ7AYjI50SkutUy6dvZDKwWkXOSy1eKSFWW9RgTOruCMKVuOk6D\n9QXJx/cBj4rIa8ACoCFtWQVQ1adFZCjwonOjPDYD38Spkmqrp9O3gNtF5BdAE85U4G2tJ1G43TMm\nfzbdtzHGGFdWxWSMMcaVJQhjjDGuLEEYY4xxZQnCGGOMK0sQxhhjXFmCMMYY48oShDHGGFeWIIwx\nxrj6/z9e19cojMrbAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "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": 83, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namelyrical_densitynamenegvalencescaled_ldgloom
237pQAq14Z73YUFMtxCyt0bGThe Beatles1.516618Can't Buy Me Love - Remastered 20150.7383870.9570.3892260.156831
281dfuJYDSIc41cw5RPsaCF1The Beatles1.651824Help! - Remastered 20150.8239150.8100.4262020.230088
340TRkjwb4uY3CHb5zhr9bBdThe Beatles1.628703Eleanor Rigby - Remastered 20150.8032320.8450.4198790.213589
4657n1teNb2tkcfiYagPmUWrThe Beatles0.885556Two Of Us - Remastered 20090.7110800.9230.2166420.107184
544311wT21Et0q3vepFwXjTuThe Beatles0.718556One After 909 - Remastered 20090.8657370.9040.1709710.113801
6867jL5ZAf8hNsRZrfBHNuBTThe Beatles1.277562Mean Mr Mustard - Remastered 20090.7006310.9670.3238480.124606
7969d54YOS8TOQiUYjX57XeAThe Beatles1.601816A Hard Day's Night - Remastered 20090.8333090.8020.4125260.230041
805tNjuWwp6FxuWCrKQAMBTjThe Beatles0.959614It Won't Be Long - Remastered 20090.7833880.8680.2368960.143155
836dsq7Nt5mIFzvm5kIYNORyRadiohead0.67427215 Step0.8354880.8480.1588600.130290
895pTWpY8l7B1XcQnijEFGFjThe Rolling Stones1.015010Miss You - Remastered0.7593480.8250.2520460.161141
\n", "
" ], "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", "79 69d54YOS8TOQiUYjX57XeA The Beatles 1.601816 \n", "80 5tNjuWwp6FxuWCrKQAMBTj The Beatles 0.959614 \n", "83 6dsq7Nt5mIFzvm5kIYNORy Radiohead 0.674272 \n", "89 5pTWpY8l7B1XcQnijEFGFj The Rolling Stones 1.015010 \n", "\n", " name neg valence scaled_ld \\\n", "23 Can't Buy Me Love - Remastered 2015 0.738387 0.957 0.389226 \n", "28 Help! - Remastered 2015 0.823915 0.810 0.426202 \n", "34 Eleanor Rigby - Remastered 2015 0.803232 0.845 0.419879 \n", "46 Two Of Us - Remastered 2009 0.711080 0.923 0.216642 \n", "54 One After 909 - Remastered 2009 0.865737 0.904 0.170971 \n", "68 Mean Mr Mustard - Remastered 2009 0.700631 0.967 0.323848 \n", "79 A Hard Day's Night - Remastered 2009 0.833309 0.802 0.412526 \n", "80 It Won't Be Long - Remastered 2009 0.783388 0.868 0.236896 \n", "83 15 Step 0.835488 0.848 0.158860 \n", "89 Miss You - Remastered 0.759348 0.825 0.252046 \n", "\n", " gloom \n", "23 0.156831 \n", "28 0.230088 \n", "34 0.213589 \n", "46 0.107184 \n", "54 0.113801 \n", "68 0.124606 \n", "79 0.230041 \n", "80 0.143155 \n", "83 0.130290 \n", "89 0.161141 " ] }, "execution_count": 83, "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": 84, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namelyrical_densitynamenegvalencescaled_ldgloomcomplexity
544311wT21Et0q3vepFwXjTuThe Beatles0.718556One After 909 - Remastered 20090.8657370.9040.1709710.1138010.782626
836dsq7Nt5mIFzvm5kIYNORyRadiohead0.67427215 Step0.8354880.8480.1588600.1302900.708494
237pQAq14Z73YUFMtxCyt0bGThe Beatles1.516618Can't Buy Me Love - Remastered 20150.7383870.9570.3892260.1568310.706636
805tNjuWwp6FxuWCrKQAMBTjThe Beatles0.959614It Won't Be Long - Remastered 20090.7833880.8680.2368960.1431550.679980
340TRkjwb4uY3CHb5zhr9bBdThe Beatles1.628703Eleanor Rigby - Remastered 20150.8032320.8450.4198790.2135890.678731
6867jL5ZAf8hNsRZrfBHNuBTThe Beatles1.277562Mean Mr Mustard - Remastered 20090.7006310.9670.3238480.1246060.677510
7969d54YOS8TOQiUYjX57XeAThe Beatles1.601816A Hard Day's Night - Remastered 20090.8333090.8020.4125260.2300410.668314
281dfuJYDSIc41cw5RPsaCF1The Beatles1.651824Help! - Remastered 20150.8239150.8100.4262020.2300880.667371
4657n1teNb2tkcfiYagPmUWrThe Beatles0.885556Two Of Us - Remastered 20090.7110800.9230.2166420.1071840.656327
276pkjW5srxjzRSKKMrl7et8The Beatles1.425416Ticket To Ride - Remastered 20150.8254390.7930.3642830.2161430.654573
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density \\\n", "54 4311wT21Et0q3vepFwXjTu The Beatles 0.718556 \n", "83 6dsq7Nt5mIFzvm5kIYNORy Radiohead 0.674272 \n", "23 7pQAq14Z73YUFMtxCyt0bG The Beatles 1.516618 \n", "80 5tNjuWwp6FxuWCrKQAMBTj The Beatles 0.959614 \n", "34 0TRkjwb4uY3CHb5zhr9bBd The Beatles 1.628703 \n", "68 67jL5ZAf8hNsRZrfBHNuBT The Beatles 1.277562 \n", "79 69d54YOS8TOQiUYjX57XeA The Beatles 1.601816 \n", "28 1dfuJYDSIc41cw5RPsaCF1 The Beatles 1.651824 \n", "46 57n1teNb2tkcfiYagPmUWr The Beatles 0.885556 \n", "27 6pkjW5srxjzRSKKMrl7et8 The Beatles 1.425416 \n", "\n", " name neg valence scaled_ld \\\n", "54 One After 909 - Remastered 2009 0.865737 0.904 0.170971 \n", "83 15 Step 0.835488 0.848 0.158860 \n", "23 Can't Buy Me Love - Remastered 2015 0.738387 0.957 0.389226 \n", "80 It Won't Be Long - Remastered 2009 0.783388 0.868 0.236896 \n", "34 Eleanor Rigby - Remastered 2015 0.803232 0.845 0.419879 \n", "68 Mean Mr Mustard - Remastered 2009 0.700631 0.967 0.323848 \n", "79 A Hard Day's Night - Remastered 2009 0.833309 0.802 0.412526 \n", "28 Help! - Remastered 2015 0.823915 0.810 0.426202 \n", "46 Two Of Us - Remastered 2009 0.711080 0.923 0.216642 \n", "27 Ticket To Ride - Remastered 2015 0.825439 0.793 0.364283 \n", "\n", " gloom complexity \n", "54 0.113801 0.782626 \n", "83 0.130290 0.708494 \n", "23 0.156831 0.706636 \n", "80 0.143155 0.679980 \n", "34 0.213589 0.678731 \n", "68 0.124606 0.677510 \n", "79 0.230041 0.668314 \n", "28 0.230088 0.667371 \n", "46 0.107184 0.656327 \n", "27 0.216143 0.654573 " ] }, "execution_count": 84, "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": 85, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namelyrical_densitynamenegvalencescaled_ldgloomcomplexity
515V1AHQugSTASVez5ffJtFoThe Beatles0.999889Let It Be - Remastered 20090.1198580.4180.2479100.2337150.050101
956j3En9AD8FEAQQhhtkKBR9The Rolling Stones3.749956Continental Drift - Live - 2009 Re-Mastered Di...0.4082160.1291.0000000.2041080.052660
4422QadBPe0QCuqraFVAr1m3The Beatles1.054504Let It Be - Remastered 20150.1198580.4900.2628460.2037260.058730
673jPXnX4SskFgAcC4YBKOwNThe Beatles0.273472Sun King - Remastered 20090.3008090.1970.0492490.3891340.059259
02ucFulEWapRAmTn7l6f5Q7The Beatles0.169898Wild Honey Pie - Remastered 20090.3911780.1530.0209240.4187310.059850
654cLoL5KPfE1hAwfsO84FX7The Beatles0.325955Because - Remastered 20090.4662540.1620.0636020.4071780.075533
941FMQd25wsXU14lg323zyNaThe Rolling Stones0.856393Love Is Strong - 2009 Re-Mastered Digital Version0.1858720.5000.2086670.2172260.092936
730SAqxgrtLO0GzXBeilxHQsThe Beatles0.543735The End - Remastered 20090.4786100.2070.1231610.3771400.099072
437iABnSNZciNepqGtjMQxxdThe Beatles0.800176Come Together - Remastered 20150.5625520.1780.1932930.3859250.100134
580MKqeOVdZcUFGJvWpGCKbGThe Beatles0.796316Come Together - Remastered 20090.5625520.1790.1922370.3856580.100697
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density \\\n", "51 5V1AHQugSTASVez5ffJtFo The Beatles 0.999889 \n", "95 6j3En9AD8FEAQQhhtkKBR9 The Rolling Stones 3.749956 \n", "44 22QadBPe0QCuqraFVAr1m3 The Beatles 1.054504 \n", "67 3jPXnX4SskFgAcC4YBKOwN The Beatles 0.273472 \n", "0 2ucFulEWapRAmTn7l6f5Q7 The Beatles 0.169898 \n", "65 4cLoL5KPfE1hAwfsO84FX7 The Beatles 0.325955 \n", "94 1FMQd25wsXU14lg323zyNa The Rolling Stones 0.856393 \n", "73 0SAqxgrtLO0GzXBeilxHQs The Beatles 0.543735 \n", "43 7iABnSNZciNepqGtjMQxxd The Beatles 0.800176 \n", "58 0MKqeOVdZcUFGJvWpGCKbG The Beatles 0.796316 \n", "\n", " name neg valence \\\n", "51 Let It Be - Remastered 2009 0.119858 0.418 \n", "95 Continental Drift - Live - 2009 Re-Mastered Di... 0.408216 0.129 \n", "44 Let It Be - Remastered 2015 0.119858 0.490 \n", "67 Sun King - Remastered 2009 0.300809 0.197 \n", "0 Wild Honey Pie - Remastered 2009 0.391178 0.153 \n", "65 Because - Remastered 2009 0.466254 0.162 \n", "94 Love Is Strong - 2009 Re-Mastered Digital Version 0.185872 0.500 \n", "73 The End - Remastered 2009 0.478610 0.207 \n", "43 Come Together - Remastered 2015 0.562552 0.178 \n", "58 Come Together - Remastered 2009 0.562552 0.179 \n", "\n", " scaled_ld gloom complexity \n", "51 0.247910 0.233715 0.050101 \n", "95 1.000000 0.204108 0.052660 \n", "44 0.262846 0.203726 0.058730 \n", "67 0.049249 0.389134 0.059259 \n", "0 0.020924 0.418731 0.059850 \n", "65 0.063602 0.407178 0.075533 \n", "94 0.208667 0.217226 0.092936 \n", "73 0.123161 0.377140 0.099072 \n", "43 0.193293 0.385925 0.100134 \n", "58 0.192237 0.385658 0.100697 " ] }, "execution_count": 85, "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": 86, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nh7bxmbn7OHPvF17w/eXGu547yJeefZLJyfNGynfo0P6B12fY9Vw6vvOvfxqeeZQzT1kLwNf37uDO\nLZctjPcf7ALkGtvp6zn9m18/1vwpxkvXu9udLmz+Q4f2H1P0inr+i5/vuOdbup7dbmdh/mHrUcpx\nu92m1WpleRvkZe6e/8FmE8DfAp9y9z9cYRsfZY6ltm69nW3bzloo6kWambmBw4efZsOG9ybd772f\n+FnefurLONFW7obt2vUxLrroyqH2+8kn9/DMa36Ds866cKR8W7ZcwaZNt420j0FN39bknZONhXGe\n572SGw90mLqiNdC2RT5nzV3uc+50NtNqbS5l7tWYGe5uwz5u1Esa/z9w/0oFXUREijXKJY3fA/wk\n8Hozu8fMdprZZemiFSvKtavTBzplRxhIhPWMkBGUM7UoOfPK3VN3938ATkyYRURERqR3lGai/DV8\nalG/ucoirGeEjKCcqUXJmZeKuohIjaioZ6L02dRTTydCRlDO1KLkzEtFXUSkRlTUM1H6bOqppxMh\nIyhnalFy5qWiLiJSIyrqmSh9NvXU04mQEZQztSg581JRFxGpERX1TJQ+m3rq6UTICMqZWpSceamo\ni4jUiIp6JkqfTT31dCJkBOVMLUrOvJL8JxlSXQ/+0x+z9/mvjbSPk+d2Mn1b85j77PT1fOd/u26k\n/RZtrnvPMc9j/8EuB6Zby2673HNeScS1iObez16DPzmbZF+Lj7udvp6vHriPZnNzkn0PY/36Sa67\n7p3J96uinonSZxu2p37CwX28c+3USHPuOuklXLRk3hv7vGKo4nqe9Nwzx3xWO6us5XLPeSX91mJU\nVVzL5Ywzpz85e+yxG8Wi/dx4oMMzzziNxuY0+x5CpzOeOdV+ERGpERX1TJQ+m3rq6Wgt04qSM8px\nz0tFXUSkRlTUM1H6lrpOPR2tZVpRckY57nmpqIuI1IiKekb9wLQirKfWMq0oOaMc97xU1EVEakRF\nPaN+YFoR1lNrmVaUnFGOe14q6iIiNTJSUTezy8zsX83sK2b2rlShyqB+YFoR1lNrmVaUnFGOe165\ni7qZnQB8ALgU+HbgLWb2bamCFa3bnS47wkAeOtgtO8JAIqyn1jKtKDmjHPe8RjlTvxh40N1n3P0w\n8DHgjWliFe/ZZw+UHWEgB59/tuwIA4mwnlrLtKLkjHLc8xqlqK8D9iwaP5zdJyIiJRnlUxptmft8\nhP0N5KSTTuTgwX9hz56Hku53797t7NlzwarbTEw8x/PPL/e0R3PkxDV88qmHsWWXdN5Dhw8x++Qe\n/vmpvZz55J4Vt1ts7shhlj9M43cgQN+yG+TMMsJaQpycUY57Xuaerw6b2auBze5+WTZ+N+DufsOS\n7cZe6EVE6sjdhz4rG6Wonwh8GXgD8AjwBeAt7v5Arh2KiMjIcrdf3P3rZvZ24A7me/MfVkEXESlX\n7jN1ERGpnmTvKO33RiQze5GZfczMHjSzfzSz9anmTpjxdWb2RTM7bGZvKjrfohz9cv6qmX3JzKbN\n7NNmdm5Fc/6Cme0ys3vM7O/Leh/DoG+SM7M3m9kRM3tVkfkWzd9vPa82s0fNbGf29bYq5sy2+fHs\nZ/Q+M9tSdMYsQ7/1/IPsZ3OnmX3ZzB6vaM5zzWx7lnPazP77qjt095G/mP/l8BBwHnASMA1825Jt\n/gfwwez2TwAfSzF34ozrge8AWsCbisw3ZM7vA16c3f7FotdyiJynLLp9OfCpKubsZQU+B+wAXlXF\nnMDVwB8VnS1Hzg3AF4HTsvGZVcy5ZPu3Ax+qYk7gT4BfyG5fCPzbavtMdaY+yBuR3gh8JLt9K/N/\nYC1S34zuPuvuuyng0sxVDJLzc+7eewfF5ynn/QGD5Dy4aHgKcKTAfD2Dvknu/wA3AP9RZLhFBs1Z\nzjWqRw2S8+eA/+vuTwG4+/6CM8Lwb458C/DRQpIda5CcR4DTstuTwN7VdpiqqA/yRqSFbdz968AB\nM3tpovkHEeXNUsPm/BngU2NNtLyBcprZL5nZQ8D1wDsKyrZY35xmNgWc4+6fLDLYEoMe9zdlL8H/\nwszOKSbaMQbJeQHwrWZ2t5ntMLNLC0t31MD/jrJWcAPYPv5YLzBIzvcAP2Vme4C/BX55tR2mKuqD\nvBFp6Ta2zDbjVMqbpXIYOKeZbQL+C/B7Y020vIFyuvsH3X0D8C7gf4891QutmtPMDHg/8Ot9HjNu\ng6znJ4CGu08Bn+HoK98iDZJzgvkWzPcCVwEfMrPTXvCo8Rrm3/uVwK2e9TcKNkjOtwA3ufu5wA8B\nq/6NIlVRf5j5fnTPOcC+JdvsAc6FhWvcT3P3JxLNP4hBMlbBQDnN7BLgt4HLs5dtRRt2Pf8cuGKs\niZbXL+epzH8gXdvM/g14NfDxEv5Y2nc93f2JRcf6/zH/C71ogxz3h4GPu/sRd+8w/36Wbykm3jEZ\nBv35vJJyWi8wWM6fAf4CwN0/D7zYzM5ccY+Jmv0ncrTZ/yLmm/0XLtnmlzj6h9IrKf4PpX0zLtr2\nJuBHi8w35Fq+Mtvm5WVkHCLnhkW3Lwe+UMWcS7b/LPDKKuYE1i66/SPAjormvBRoZbfPBGaAM6qW\nM9vuW4GvFr2OQ67n7cDV2e0LgYdX3WfCcJcx/xv5QeDd2X3vAX44u72G+d82DzL/x71GCQvYL+N3\nMf+K4mng34H7SjrQ/XJ+mvl38e4E7gFuq2jOG4HdWc7PrFZMy8y5ZNvtlHD1y4Dr+b5sPe/J1vOC\nKubMxr8PfAm4F/ixCue8FnhfGfmGOO4XAndnBX8n8IbV9qc3H4mI1Ij+OzsRkRpRURcRqREVdRGR\nGlFRFxGpERV1EZEaUVEXEakRFXURkRpRURcRqZH/BPbbNQrAK7LxAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "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": 87, "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\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": 88, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "defaultdict(int,\n", " {'03Qh833fEdVT30Pfs93ea6': 0.41873123282422453,\n", " '064eFGemsrDcMvgRZ0gqtw': 0.3179832944377065,\n", " '0PYyrqs9NXtxPhf0CZkq2L': 0.1455414524235663,\n", " '0ZGddnvcVzHVHfE3WW1tV5': 0.26738524887279513,\n", " '19K3IHYeVkUTjcBHGfbCOi': 0.24384292409425667,\n", " '1DBkJIEoeHrTX4WCBQGcCi': 0.1245,\n", " '1PULmKbHeOqlkIwcDMNwD4': 0.19061203689895245,\n", " '1TpcI1LEFVhBvDPSTMPGFG': 0.22645560872562193,\n", " '1W1UJulgICjFDyYIMUwRs7': 0.20410800181164113,\n", " '1WSfNoPDPzgyKFN6OSYWUx': 0.2342652983252492,\n", " '1YvnuYGlblQ5vLnOhaZzpn': 0.09057907764772204,\n", " '1oW3v5Har9mvXnGk0x4fHm': 0.3178595468054327,\n", " '25mfHGJNQkluvIqedXHSx3': 0.25702782412487735,\n", " '2Pqkn9Dq2DFtdfkKAeqgMd': 0.28450005051734983,\n", " '2pCqZLeavM2BMovJXsJEIV': 0.21201262788418518,\n", " '2wZgoXS06wSdu9C0ZJOvlc': 0.08111482492357687,\n", " '3OdI6e43crvyAHhaqpxSyz': 0.15988938778241285,\n", " '3nkEsxmIX0zRNXGAexaHAn': 0.1431554681701267,\n", " '4FTHynKEtuP7eppERNfjyG': 0.25539947099291666,\n", " '4M8Q1L9PZq0xK5tLUpO3jd': 0.17462603252972925,\n", " '4fhWcu56Bbh5wALuTouFVW': 0.3571619784621046,\n", " '4g9Jfls8z2nbQxj5PiXkiy': 0.12436825630937817,\n", " '500FEaUzn8lN9zWFyZG5C2': 0.36017522794436474,\n", " '50UGtgNA5bq1c0BDjPfmbD': 0.3889706588215051,\n", " '54sqbAXxR1jFfyXb1WvrHK': 0.09758294092430027,\n", " '5XfJmldgWzrc1AIdbBaVZn': 0.23711187957714597,\n", " '5ju5Ouzan3QwXqQt1Tihbh': 0.2084148814744838,\n", " '62ZT16LY1phGM0O8x5qW1z': 0.21722601214993292,\n", " '6400dnyeDyD2mIFHfkwHXN': 0.34722466006870223,\n", " '6FjXxl9VLURGuubdXUn2J3': 0.1611411488404463,\n", " '6vuykQgDLUCiZ7YggIpLM9': 0.19733071947104644,\n", " '71Mwd9tntFQYUk4k2DwA0D': 0.2300406807603425,\n", " '7dxKtc08dYeRVHt3p9CZJn': 0.18819981811502182,\n", " '7eyQXxuf2nGj9d2367Gi5f': 0.1302895493680803,\n", " '7gDXyW16byCQOgK965BRzn': 0.09117306492499702})" ] }, "execution_count": 88, "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": 89, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namenamerelease_dategloom
157gDXyW16byCQOgK965BRznThe BeatlesPlease Please Me (Remastered)1963-03-220.091173
143nkEsxmIX0zRNXGAexaHAnThe BeatlesWith The Beatles (Remastered)1963-11-220.143155
1271Mwd9tntFQYUk4k2DwA0DThe BeatlesA Hard Day's Night (Remastered)1964-07-100.230041
117BgGBZndAvDlKOcwe5rscZThe BeatlesBeatles For Sale (Remastered)1964-12-040.000000
1019K3IHYeVkUTjcBHGfbCOiThe BeatlesHelp! (Remastered)1965-08-060.243843
93OdI6e43crvyAHhaqpxSyzThe BeatlesRubber Soul (Remastered)1965-12-030.159889
80PYyrqs9NXtxPhf0CZkq2LThe BeatlesRevolver (Remastered)1966-08-050.145541
71PULmKbHeOqlkIwcDMNwD4The BeatlesSgt. Pepper's Lonely Hearts Club Band (Remaste...1967-06-010.190612
66P9yO0ukhOx3dvmhGKeYoCThe BeatlesMagical Mystery Tour (Remastered)1967-11-270.000000
503Qh833fEdVT30Pfs93ea6The BeatlesThe Beatles (Remastered)1968-11-220.418731
447bcKzmKgmMPHXNVOWpLiuThe BeatlesYellow Submarine (Remastered)1969-01-170.000000
32Pqkn9Dq2DFtdfkKAeqgMdThe BeatlesAbbey Road (Remastered)1969-09-260.284500
22pCqZLeavM2BMovJXsJEIVThe BeatlesLet It Be (Remastered)1970-05-080.212013
4654sqbAXxR1jFfyXb1WvrHKThe Rolling StonesSome Girls1978-06-090.097583
476FjXxl9VLURGuubdXUn2J3The Rolling StonesSome Girls (Deluxe Version)1978-06-090.161141
452wZgoXS06wSdu9C0ZJOvlcThe Rolling StonesEmotional Rescue (2009 Re-Mastered)1980-06-200.081115
441YvnuYGlblQ5vLnOhaZzpnThe Rolling StonesTattoo You (2009 Re-Mastered)1981-08-240.090579
430hxrNynMDh5QeyALlf1CdSThe Rolling StonesStill Life1982-06-010.000000
42064eFGemsrDcMvgRZ0gqtwThe Rolling StonesUndercover (2009 Re-Mastered)1983-11-070.317983
411WSfNoPDPzgyKFN6OSYWUxThe Rolling StonesDirty Work (Remastered 2009)1986-03-240.234265
401TpcI1LEFVhBvDPSTMPGFGThe Rolling StonesDirty Work1986-03-240.226456
3925mfHGJNQkluvIqedXHSx3The Rolling StonesSteel Wheels (2009 Re-Mastered)1989-08-290.257028
381W1UJulgICjFDyYIMUwRs7The Rolling StonesFlashpoint1991-04-020.204108
276400dnyeDyD2mIFHfkwHXNRadioheadPablo Honey1993-02-220.347225
3762ZT16LY1phGM0O8x5qW1zThe Rolling StonesVoodoo Lounge (2009 Re-Mastered)1994-07-110.217226
364M8Q1L9PZq0xK5tLUpO3jdThe Rolling StonesStripped1995-01-130.174626
26500FEaUzn8lN9zWFyZG5C2RadioheadThe Bends1995-03-280.360175
257dxKtc08dYeRVHt3p9CZJnRadioheadOK Computer1997-05-280.188200
350ZGddnvcVzHVHfE3WW1tV5The Rolling StonesBridges To Babylon (2009 Re-Mastered)1997-09-290.267385
2419RUXBFyM4PpmrLRdtqWbpRadioheadKid A2000-10-010.000000
15ju5Ouzan3QwXqQt1TihbhThe Beatles1 (Remastered)2000-11-130.208415
226svTt5o2lUgIrgYDKVmdnDRadioheadI Might Be Wrong2001-01-010.000000
236V9YnBmFjWmXCBaUVRCVXPRadioheadAmnesiac2001-03-120.000000
211oW3v5Har9mvXnGk0x4fHmRadioheadHail To the Thief2003-01-010.317860
206Eo5EkmdLvZrONzi046iC2RadioheadCom Lag: 2+2=52004-03-240.000000
3450UGtgNA5bq1c0BDjPfmbDThe Rolling StonesLive Licks2004-11-010.388971
334FTHynKEtuP7eppERNfjyGThe Rolling StonesA Bigger Bang (2009 Re-Mastered)2005-09-050.255399
1936lJLPoPPOKNFddTAcirncRadioheadIn Rainbows Disk 22007-01-010.000000
187eyQXxuf2nGj9d2367Gi5fRadioheadIn Rainbows2007-12-280.130290
323CHu7qW160uqPZHW3TMZ1lThe Rolling StonesShine A Light2008-01-010.000000
131DBkJIEoeHrTX4WCBQGcCiRadioheadThe King Of Limbs2011-02-180.124500
1747xaqCsJcYFWqD1gwujl1TRadioheadTKOL RMX 12345672011-10-100.000000
315eTqRwTGKPBUiUuN1rFaXDThe Rolling StonesLive 1965: Music From Charlie Is My Darling (L...2012-11-060.000000
166vuykQgDLUCiZ7YggIpLM9RadioheadA Moon Shaped Pool2016-05-080.197331
303PbRKFafwE7Of8e4dTee72The Rolling StonesTotally Stripped (Live)2016-06-170.000000
05XfJmldgWzrc1AIdbBaVZnThe BeatlesLive At The Hollywood Bowl2016-09-090.237112
294fhWcu56Bbh5wALuTouFVWThe Rolling StonesHavana Moon (Live)2016-11-110.357162
284g9Jfls8z2nbQxj5PiXkiyThe Rolling StonesBlue & Lonesome2016-12-020.124368
\n", "
" ], "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", "46 54sqbAXxR1jFfyXb1WvrHK The Rolling Stones \n", "47 6FjXxl9VLURGuubdXUn2J3 The Rolling Stones \n", "45 2wZgoXS06wSdu9C0ZJOvlc The Rolling Stones \n", "44 1YvnuYGlblQ5vLnOhaZzpn The Rolling Stones \n", "43 0hxrNynMDh5QeyALlf1CdS The Rolling Stones \n", "42 064eFGemsrDcMvgRZ0gqtw The Rolling Stones \n", "41 1WSfNoPDPzgyKFN6OSYWUx The Rolling Stones \n", "40 1TpcI1LEFVhBvDPSTMPGFG The Rolling Stones \n", "39 25mfHGJNQkluvIqedXHSx3 The Rolling Stones \n", "38 1W1UJulgICjFDyYIMUwRs7 The Rolling Stones \n", "27 6400dnyeDyD2mIFHfkwHXN Radiohead \n", "37 62ZT16LY1phGM0O8x5qW1z The Rolling Stones \n", "36 4M8Q1L9PZq0xK5tLUpO3jd The Rolling Stones \n", "26 500FEaUzn8lN9zWFyZG5C2 Radiohead \n", "25 7dxKtc08dYeRVHt3p9CZJn Radiohead \n", "35 0ZGddnvcVzHVHfE3WW1tV5 The Rolling Stones \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", "34 50UGtgNA5bq1c0BDjPfmbD The Rolling Stones \n", "33 4FTHynKEtuP7eppERNfjyG The Rolling Stones \n", "19 36lJLPoPPOKNFddTAcirnc Radiohead \n", "18 7eyQXxuf2nGj9d2367Gi5f Radiohead \n", "32 3CHu7qW160uqPZHW3TMZ1l The Rolling Stones \n", "13 1DBkJIEoeHrTX4WCBQGcCi Radiohead \n", "17 47xaqCsJcYFWqD1gwujl1T Radiohead \n", "31 5eTqRwTGKPBUiUuN1rFaXD The Rolling Stones \n", "16 6vuykQgDLUCiZ7YggIpLM9 Radiohead \n", "30 3PbRKFafwE7Of8e4dTee72 The Rolling Stones \n", "0 5XfJmldgWzrc1AIdbBaVZn The Beatles \n", "29 4fhWcu56Bbh5wALuTouFVW The Rolling Stones \n", "28 4g9Jfls8z2nbQxj5PiXkiy The Rolling Stones \n", "\n", " name release_date gloom \n", "15 Please Please Me (Remastered) 1963-03-22 0.091173 \n", "14 With The Beatles (Remastered) 1963-11-22 0.143155 \n", "12 A Hard Day's Night (Remastered) 1964-07-10 0.230041 \n", "11 Beatles For Sale (Remastered) 1964-12-04 0.000000 \n", "10 Help! (Remastered) 1965-08-06 0.243843 \n", "9 Rubber Soul (Remastered) 1965-12-03 0.159889 \n", "8 Revolver (Remastered) 1966-08-05 0.145541 \n", "7 Sgt. Pepper's Lonely Hearts Club Band (Remaste... 1967-06-01 0.190612 \n", "6 Magical Mystery Tour (Remastered) 1967-11-27 0.000000 \n", "5 The Beatles (Remastered) 1968-11-22 0.418731 \n", "4 Yellow Submarine (Remastered) 1969-01-17 0.000000 \n", "3 Abbey Road (Remastered) 1969-09-26 0.284500 \n", "2 Let It Be (Remastered) 1970-05-08 0.212013 \n", "46 Some Girls 1978-06-09 0.097583 \n", "47 Some Girls (Deluxe Version) 1978-06-09 0.161141 \n", "45 Emotional Rescue (2009 Re-Mastered) 1980-06-20 0.081115 \n", "44 Tattoo You (2009 Re-Mastered) 1981-08-24 0.090579 \n", "43 Still Life 1982-06-01 0.000000 \n", "42 Undercover (2009 Re-Mastered) 1983-11-07 0.317983 \n", "41 Dirty Work (Remastered 2009) 1986-03-24 0.234265 \n", "40 Dirty Work 1986-03-24 0.226456 \n", "39 Steel Wheels (2009 Re-Mastered) 1989-08-29 0.257028 \n", "38 Flashpoint 1991-04-02 0.204108 \n", "27 Pablo Honey 1993-02-22 0.347225 \n", "37 Voodoo Lounge (2009 Re-Mastered) 1994-07-11 0.217226 \n", "36 Stripped 1995-01-13 0.174626 \n", "26 The Bends 1995-03-28 0.360175 \n", "25 OK Computer 1997-05-28 0.188200 \n", "35 Bridges To Babylon (2009 Re-Mastered) 1997-09-29 0.267385 \n", "24 Kid A 2000-10-01 0.000000 \n", "1 1 (Remastered) 2000-11-13 0.208415 \n", "22 I Might Be Wrong 2001-01-01 0.000000 \n", "23 Amnesiac 2001-03-12 0.000000 \n", "21 Hail To the Thief 2003-01-01 0.317860 \n", "20 Com Lag: 2+2=5 2004-03-24 0.000000 \n", "34 Live Licks 2004-11-01 0.388971 \n", "33 A Bigger Bang (2009 Re-Mastered) 2005-09-05 0.255399 \n", "19 In Rainbows Disk 2 2007-01-01 0.000000 \n", "18 In Rainbows 2007-12-28 0.130290 \n", "32 Shine A Light 2008-01-01 0.000000 \n", "13 The King Of Limbs 2011-02-18 0.124500 \n", "17 TKOL RMX 1234567 2011-10-10 0.000000 \n", "31 Live 1965: Music From Charlie Is My Darling (L... 2012-11-06 0.000000 \n", "16 A Moon Shaped Pool 2016-05-08 0.197331 \n", "30 Totally Stripped (Live) 2016-06-17 0.000000 \n", "0 Live At The Hollywood Bowl 2016-09-09 0.237112 \n", "29 Havana Moon (Live) 2016-11-11 0.357162 \n", "28 Blue & Lonesome 2016-12-02 0.124368 " ] }, "execution_count": 89, "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": 90, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "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": 91, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namenamerelease_dategloom
157gDXyW16byCQOgK965BRznThe BeatlesPlease Please Me (Remastered)1963-03-220.091173
143nkEsxmIX0zRNXGAexaHAnThe BeatlesWith The Beatles (Remastered)1963-11-220.143155
1271Mwd9tntFQYUk4k2DwA0DThe BeatlesA Hard Day's Night (Remastered)1964-07-100.230041
117BgGBZndAvDlKOcwe5rscZThe BeatlesBeatles For Sale (Remastered)1964-12-040.000000
1019K3IHYeVkUTjcBHGfbCOiThe BeatlesHelp! (Remastered)1965-08-060.243843
93OdI6e43crvyAHhaqpxSyzThe BeatlesRubber Soul (Remastered)1965-12-030.159889
80PYyrqs9NXtxPhf0CZkq2LThe BeatlesRevolver (Remastered)1966-08-050.145541
71PULmKbHeOqlkIwcDMNwD4The BeatlesSgt. Pepper's Lonely Hearts Club Band (Remaste...1967-06-010.190612
66P9yO0ukhOx3dvmhGKeYoCThe BeatlesMagical Mystery Tour (Remastered)1967-11-270.000000
503Qh833fEdVT30Pfs93ea6The BeatlesThe Beatles (Remastered)1968-11-220.418731
447bcKzmKgmMPHXNVOWpLiuThe BeatlesYellow Submarine (Remastered)1969-01-170.000000
32Pqkn9Dq2DFtdfkKAeqgMdThe BeatlesAbbey Road (Remastered)1969-09-260.284500
22pCqZLeavM2BMovJXsJEIVThe BeatlesLet It Be (Remastered)1970-05-080.212013
\n", "
" ], "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.091173 \n", "14 With The Beatles (Remastered) 1963-11-22 0.143155 \n", "12 A Hard Day's Night (Remastered) 1964-07-10 0.230041 \n", "11 Beatles For Sale (Remastered) 1964-12-04 0.000000 \n", "10 Help! (Remastered) 1965-08-06 0.243843 \n", "9 Rubber Soul (Remastered) 1965-12-03 0.159889 \n", "8 Revolver (Remastered) 1966-08-05 0.145541 \n", "7 Sgt. Pepper's Lonely Hearts Club Band (Remaste... 1967-06-01 0.190612 \n", "6 Magical Mystery Tour (Remastered) 1967-11-27 0.000000 \n", "5 The Beatles (Remastered) 1968-11-22 0.418731 \n", "4 Yellow Submarine (Remastered) 1969-01-17 0.000000 \n", "3 Abbey Road (Remastered) 1969-09-26 0.284500 \n", "2 Let It Be (Remastered) 1970-05-08 0.212013 " ] }, "execution_count": 91, "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": 92, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "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": 93, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namenamerelease_dategloom
276400dnyeDyD2mIFHfkwHXNRadioheadPablo Honey1993-02-220.347225
26500FEaUzn8lN9zWFyZG5C2RadioheadThe Bends1995-03-280.360175
257dxKtc08dYeRVHt3p9CZJnRadioheadOK Computer1997-05-280.188200
211oW3v5Har9mvXnGk0x4fHmRadioheadHail To the Thief2003-01-010.317860
187eyQXxuf2nGj9d2367Gi5fRadioheadIn Rainbows2007-12-280.130290
131DBkJIEoeHrTX4WCBQGcCiRadioheadThe King Of Limbs2011-02-180.124500
166vuykQgDLUCiZ7YggIpLM9RadioheadA Moon Shaped Pool2016-05-080.197331
\n", "
" ], "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", "21 1oW3v5Har9mvXnGk0x4fHm Radiohead Hail To the Thief 2003-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.347225 \n", "26 0.360175 \n", "25 0.188200 \n", "21 0.317860 \n", "18 0.130290 \n", "13 0.124500 \n", "16 0.197331 " ] }, "execution_count": 93, "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": 94, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nJoL+H3AtugJIMCQKAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "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\n", "Let's generate the same plots for \"complexity\" per album.\n", "\n", "* [Top](#top)" ] }, { "cell_type": "code", "execution_count": 95, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "defaultdict(int,\n", " {'03Qh833fEdVT30Pfs93ea6': 0.0598501781172226,\n", " '064eFGemsrDcMvgRZ0gqtw': 0.3355120536377068,\n", " '0PYyrqs9NXtxPhf0CZkq2L': 0.46196488464852764,\n", " '0ZGddnvcVzHVHfE3WW1tV5': 0.46118307452169804,\n", " '19K3IHYeVkUTjcBHGfbCOi': 0.626999083242065,\n", " '1DBkJIEoeHrTX4WCBQGcCi': 0.34937728065848533,\n", " '1PULmKbHeOqlkIwcDMNwD4': 0.15933465315198164,\n", " '1TpcI1LEFVhBvDPSTMPGFG': 0.38446875479914316,\n", " '1W1UJulgICjFDyYIMUwRs7': 0.052659864467403415,\n", " '1WSfNoPDPzgyKFN6OSYWUx': 0.369845537500919,\n", " '1YvnuYGlblQ5vLnOhaZzpn': 0.5095755952848693,\n", " '1oW3v5Har9mvXnGk0x4fHm': 0.23274435359579732,\n", " '25mfHGJNQkluvIqedXHSx3': 0.4267182570832075,\n", " '2Pqkn9Dq2DFtdfkKAeqgMd': 0.28015413095314634,\n", " '2pCqZLeavM2BMovJXsJEIV': 0.354664325706374,\n", " '2wZgoXS06wSdu9C0ZJOvlc': 0.6311525754839657,\n", " '3OdI6e43crvyAHhaqpxSyz': 0.45775592176080543,\n", " '3nkEsxmIX0zRNXGAexaHAn': 0.6799804196031648,\n", " '4FTHynKEtuP7eppERNfjyG': 0.38665825887700045,\n", " '4M8Q1L9PZq0xK5tLUpO3jd': 0.4899906390085749,\n", " '4fhWcu56Bbh5wALuTouFVW': 0.2192547795279061,\n", " '4g9Jfls8z2nbQxj5PiXkiy': 0.4984412982048782,\n", " '500FEaUzn8lN9zWFyZG5C2': 0.17580689858271992,\n", " '50UGtgNA5bq1c0BDjPfmbD': 0.15444771957009618,\n", " '54sqbAXxR1jFfyXb1WvrHK': 0.4271649193667139,\n", " '5XfJmldgWzrc1AIdbBaVZn': 0.3873434738304571,\n", " '5ju5Ouzan3QwXqQt1Tihbh': 0.4001232105218359,\n", " '62ZT16LY1phGM0O8x5qW1z': 0.09293621981068279,\n", " '6400dnyeDyD2mIFHfkwHXN': 0.21004827110317384,\n", " '6FjXxl9VLURGuubdXUn2J3': 0.6264619003871639,\n", " '6vuykQgDLUCiZ7YggIpLM9': 0.3641264424181605,\n", " '71Mwd9tntFQYUk4k2DwA0D': 0.6683141985701503,\n", " '7dxKtc08dYeRVHt3p9CZJn': 0.4123872101750843,\n", " '7eyQXxuf2nGj9d2367Gi5f': 0.7084938424691288,\n", " '7gDXyW16byCQOgK965BRzn': 0.567016632675302})" ] }, "execution_count": 95, "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": 96, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
_idartist_namenamerelease_dategloomcomplexity
157gDXyW16byCQOgK965BRznThe BeatlesPlease Please Me (Remastered)1963-03-220.0911730.567017
143nkEsxmIX0zRNXGAexaHAnThe BeatlesWith The Beatles (Remastered)1963-11-220.1431550.679980
1271Mwd9tntFQYUk4k2DwA0DThe BeatlesA Hard Day's Night (Remastered)1964-07-100.2300410.668314
117BgGBZndAvDlKOcwe5rscZThe BeatlesBeatles For Sale (Remastered)1964-12-040.0000000.000000
1019K3IHYeVkUTjcBHGfbCOiThe BeatlesHelp! (Remastered)1965-08-060.2438430.626999
\n", "
" ], "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.091173 0.567017 \n", "14 1963-11-22 0.143155 0.679980 \n", "12 1964-07-10 0.230041 0.668314 \n", "11 1964-12-04 0.000000 0.000000 \n", "10 1965-08-06 0.243843 0.626999 " ] }, "execution_count": 96, "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": 97, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nJsfi4d9/pAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "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": 98, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "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": 99, "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": 100, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "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": 101, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "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\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 }