{ "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": 58, "metadata": { "collapsed": true, "run_control": { "read_only": false } }, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline \n", "import urllib.request\n", "import urllib.parse\n", "import urllib.error\n", "import json\n", "import base64\n", "import configparser\n", "from bs4 import BeautifulSoup\n", "import re\n", "import pymongo\n", "from datetime import datetime\n", "import time\n", "import collections" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll use MongoDB to store the data, to save keeping it all in memory, and mean we don't have to recapture all the data to to a different analysis." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Open a connection to the Mongo server\n", "client = pymongo.MongoClient('mongodb://localhost:27017/')" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [], "source": [ "try:\n", " client.drop_database(songs_db)\n", "except NameError:\n", " print(\"DB doesn't exist yet.\")" ] }, { "cell_type": "code", "execution_count": 40, "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": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['app_name', 'client_id', 'client_secret', 'redirect_uri', 'token']" ] }, "execution_count": 5, "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": 385, "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": 6, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def get_artists(artist_name):\n", " query = urllib.parse.urlencode({'q': artist_name, 'type': 'artist'})\n", " request = 'https://api.spotify.com/v1/search?{}'.format(query)\n", " with urllib.request.urlopen(request) as f:\n", " response = json.loads(f.read().decode('utf-8'))\n", " artists = []\n", " for artist in response['artists']['items']:\n", " if artist['name'].lower() == artist_name.lower():\n", " this_artist = {'name': artist['name'], 'id': artist['id']}\n", " if artist['images']:\n", " this_artist['image'] = artist['images'][0]['url']\n", " artists += [this_artist]\n", " return artists" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "('4Z8W4fKeB5YxbusRsdQVPb',\n", " [{'id': '4Z8W4fKeB5YxbusRsdQVPb',\n", " 'image': 'https://i.scdn.co/image/afcd616e1ef2d2786f47b3b4a8a6aeea24a72adc',\n", " 'name': 'Radiohead'}])" ] }, "execution_count": 7, "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": 8, "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": 8, "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": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def get_albums(artist_id):\n", " request = 'https://api.spotify.com/v1/artists/{id}/albums?market=GB&album_type=album'.format(id=artist_id)\n", " with urllib.request.urlopen(request) as f:\n", " response = json.loads(f.read().decode('utf-8'))\n", " for a in response['items']:\n", " album_request = a['href']\n", " with urllib.request.urlopen(album_request) as af:\n", " album = json.loads(af.read().decode('utf-8'))\n", " album['_id'] = album['id']\n", " albums.replace_one({'_id': album['_id']}, album, upsert=True)" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "15" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "get_albums(beatles_id)\n", "albums.find().count()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "28" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "get_albums(radiohead_id)\n", "albums.find().count()" ] }, { "cell_type": "code", "execution_count": 13, "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", "
01234
_id5XfJmldgWzrc1AIdbBaVZn5ju5Ouzan3QwXqQt1Tihbh2pCqZLeavM2BMovJXsJEIV2Pqkn9Dq2DFtdfkKAeqgMd47bcKzmKgmMPHXNVOWpLiu
album_typealbumalbumalbumalbumalbum
artists[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...
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[{'height': 640, 'url': 'https://i.scdn.co/ima...[{'height': 640, 'url': 'https://i.scdn.co/ima...[{'height': 640, 'url': 'https://i.scdn.co/ima...[{'height': 640, 'url': 'https://i.scdn.co/ima...[{'height': 640, 'url': 'https://i.scdn.co/ima...
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)
popularity6377687558
release_date2016-09-092000-11-131970-05-081969-09-261969-01-17
release_date_precisiondaydaydaydayday
tracks{'limit': 50, 'previous': None, 'next': None, ...{'limit': 50, 'previous': None, 'next': None, ...{'limit': 50, 'previous': None, 'next': None, ...{'limit': 50, 'previous': None, 'next': None, ...{'limit': 50, 'previous': None, 'next': None, ...
typealbumalbumalbumalbumalbum
urispotify:album:5XfJmldgWzrc1AIdbBaVZnspotify:album:5ju5Ouzan3QwXqQt1Tihbhspotify:album:2pCqZLeavM2BMovJXsJEIVspotify:album:2Pqkn9Dq2DFtdfkKAeqgMdspotify:album:47bcKzmKgmMPHXNVOWpLiu
\n", "
" ], "text/plain": [ " 0 \\\n", "_id 5XfJmldgWzrc1AIdbBaVZn \n", "album_type album \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "copyrights [{'text': '(C) 2016 Apple Corps Ltd.', 'type':... \n", "external_ids {'upc': '00602557054989'} \n", "external_urls {'spotify': 'https://open.spotify.com/album/5X... \n", "genres [] \n", "href https://api.spotify.com/v1/albums/5XfJmldgWzrc... \n", "id 5XfJmldgWzrc1AIdbBaVZn \n", "images [{'height': 640, 'url': 'https://i.scdn.co/ima... \n", "label Digital Distribution Trinidad and Tobago \n", "name Live At The Hollywood Bowl \n", "popularity 63 \n", "release_date 2016-09-09 \n", "release_date_precision day \n", "tracks {'limit': 50, 'previous': None, 'next': None, ... \n", "type album \n", "uri spotify:album:5XfJmldgWzrc1AIdbBaVZn \n", "\n", " 1 \\\n", "_id 5ju5Ouzan3QwXqQt1Tihbh \n", "album_type album \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "copyrights [{'text': '(C) 2015 Apple Corps Ltd.', 'type':... \n", "external_ids {'upc': '00602547673503'} \n", "external_urls {'spotify': 'https://open.spotify.com/album/5j... \n", "genres [] \n", "href https://api.spotify.com/v1/albums/5ju5Ouzan3Qw... \n", "id 5ju5Ouzan3QwXqQt1Tihbh \n", "images [{'height': 640, 'url': 'https://i.scdn.co/ima... \n", "label Digital Distribution Trinidad and Tobago \n", "name 1 (Remastered) \n", "popularity 77 \n", "release_date 2000-11-13 \n", "release_date_precision day \n", "tracks {'limit': 50, 'previous': None, 'next': None, ... \n", "type album \n", "uri spotify:album:5ju5Ouzan3QwXqQt1Tihbh \n", "\n", " 2 \\\n", "_id 2pCqZLeavM2BMovJXsJEIV \n", "album_type album \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "copyrights [{'text': '(C) 2015 Apple Corps Ltd', 'type': ... \n", "external_ids {'upc': '00602547670069'} \n", "external_urls {'spotify': 'https://open.spotify.com/album/2p... \n", "genres [] \n", "href https://api.spotify.com/v1/albums/2pCqZLeavM2B... \n", "id 2pCqZLeavM2BMovJXsJEIV \n", "images [{'height': 640, 'url': 'https://i.scdn.co/ima... \n", "label EMI Catalogue \n", "name Let It Be (Remastered) \n", "popularity 68 \n", "release_date 1970-05-08 \n", "release_date_precision day \n", "tracks {'limit': 50, 'previous': None, 'next': None, ... \n", "type album \n", "uri spotify:album:2pCqZLeavM2BMovJXsJEIV \n", "\n", " 3 \\\n", "_id 2Pqkn9Dq2DFtdfkKAeqgMd \n", "album_type album \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "copyrights [{'text': '(C) 2015 Apple Corps Ltd', 'type': ... \n", "external_ids {'upc': '00602547670342'} \n", "external_urls {'spotify': 'https://open.spotify.com/album/2P... \n", "genres [] \n", "href https://api.spotify.com/v1/albums/2Pqkn9Dq2DFt... \n", "id 2Pqkn9Dq2DFtdfkKAeqgMd \n", "images [{'height': 640, 'url': 'https://i.scdn.co/ima... \n", "label EMI Catalogue \n", "name Abbey Road (Remastered) \n", "popularity 75 \n", "release_date 1969-09-26 \n", "release_date_precision day \n", "tracks {'limit': 50, 'previous': None, 'next': None, ... \n", "type album \n", "uri spotify:album:2Pqkn9Dq2DFtdfkKAeqgMd \n", "\n", " 4 \n", "_id 47bcKzmKgmMPHXNVOWpLiu \n", "album_type album \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "copyrights [{'text': '(C) 2015 Apple Corps Ltd', 'type': ... \n", "external_ids {'upc': '00602547670328'} \n", "external_urls {'spotify': 'https://open.spotify.com/album/47... \n", "genres [] \n", "href https://api.spotify.com/v1/albums/47bcKzmKgmMP... \n", "id 47bcKzmKgmMPHXNVOWpLiu \n", "images [{'height': 640, 'url': 'https://i.scdn.co/ima... \n", "label EMI Catalogue \n", "name Yellow Submarine (Remastered) \n", "popularity 58 \n", "release_date 1969-01-17 \n", "release_date_precision day \n", "tracks {'limit': 50, 'previous': None, 'next': None, ... \n", "type album \n", "uri spotify:album:47bcKzmKgmMPHXNVOWpLiu " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame(list(albums.find())).head().T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tag albums with artists\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": 43, "metadata": { "collapsed": true }, "outputs": [], "source": [ "for a in albums.find({}, ['artists']):\n", " albums.update_one({'_id': a['_id']}, \n", " {'$set': {'artist_name': a['artists'][0]['name'],\n", " 'artist_id': a['artists'][0]['id']}})" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
\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", "\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 " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame(list(albums.find({}, ['name', 'artist_name'])))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "According to the [Spotify documentation](https://developer.spotify.com/web-api/object-model/#track-object), some objects returned have only a bit of the data, and contain a `href` field for where to find the rest. The track details in the album documents fit that bill, so let's find the full track information.\n", "\n", "While doing this, not that Spotify will rate-limit the requests, so we have to include a loop to respect the timeout and retry the requests after the appropriate time." ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def get_tracks(album_id):\n", " album = albums.find_one({'_id': album_id})\n", " for t in album['tracks']['items']:\n", " for _ in range(10):\n", " try:\n", " with urllib.request.urlopen(t['href']) as f:\n", " track = json.loads(f.read().decode('utf-8'))\n", " track['_id'] = track['id']\n", " track['album_id'] = album_id\n", " tracks.replace_one({'_id': track['_id']}, track, upsert=True)\n", " break\n", " except urllib.error.HTTPError as e:\n", " print(\"Rate limited. Pausing for\", e.info()['Retry-After'])\n", " time.sleep(int(e.info()['Retry-After']) + 0.5)\n", " continue" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Rate limited. Pausing for 4\n", "Rate limited. Pausing for 4\n", "Rate limited. Pausing for 4\n" ] }, { "data": { "text/plain": [ "383" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for album in albums.find():\n", " get_tracks(album['_id'])\n", "tracks.find().count()" ] }, { "cell_type": "code", "execution_count": 46, "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
_id4edArG2VehvJdwOZfYOxtK150EAeMGWJRubuH8zyx7h81fVeHYkyMxrjbjRAD9uWsZ0GRplBEB2FWCKutwMmS6nY1eVymk74iroqhsZxm0Vy3g
album{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...
album_id5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn
artists[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...
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...
disc_number11111
duration_ms93506192053219733146240134866
explicitFalseFalseFalseFalseFalse
external_ids{'isrc': 'GBUM71603960'}{'isrc': 'GBUM71603957'}{'isrc': 'GBUM71603952'}{'isrc': 'GBUM71603959'}{'isrc': 'GBUM71603951'}
external_urls{'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...
hrefhttps://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...
id4edArG2VehvJdwOZfYOxtK150EAeMGWJRubuH8zyx7h81fVeHYkyMxrjbjRAD9uWsZ0GRplBEB2FWCKutwMmS6nY1eVymk74iroqhsZxm0Vy3g
nameTwist And Shout - Live / RemasteredShe's A Woman - Live / RemasteredDizzy Miss Lizzy - Live / RemasteredTicket To Ride - Live / RemasteredCan't Buy Me Love - Live / Remastered
popularity4743424343
preview_urlhttps://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...
track_number12345
typetracktracktracktracktrack
urispotify:track:4edArG2VehvJdwOZfYOxtKspotify:track:150EAeMGWJRubuH8zyx7h8spotify:track:1fVeHYkyMxrjbjRAD9uWsZspotify:track:0GRplBEB2FWCKutwMmS6nYspotify:track:1eVymk74iroqhsZxm0Vy3g
\n", "
" ], "text/plain": [ " 0 \\\n", "_id 4edArG2VehvJdwOZfYOxtK \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 5XfJmldgWzrc1AIdbBaVZn \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "disc_number 1 \n", "duration_ms 93506 \n", "explicit False \n", "external_ids {'isrc': 'GBUM71603960'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/4e... \n", "href https://api.spotify.com/v1/tracks/4edArG2VehvJ... \n", "id 4edArG2VehvJdwOZfYOxtK \n", "name Twist And Shout - Live / Remastered \n", "popularity 47 \n", "preview_url https://p.scdn.co/mp3-preview/cd82d2f8f92a7222... \n", "track_number 1 \n", "type track \n", "uri spotify:track:4edArG2VehvJdwOZfYOxtK \n", "\n", " 1 \\\n", "_id 150EAeMGWJRubuH8zyx7h8 \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 5XfJmldgWzrc1AIdbBaVZn \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "disc_number 1 \n", "duration_ms 192053 \n", "explicit False \n", "external_ids {'isrc': 'GBUM71603957'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/15... \n", "href https://api.spotify.com/v1/tracks/150EAeMGWJRu... \n", "id 150EAeMGWJRubuH8zyx7h8 \n", "name She's A Woman - Live / Remastered \n", "popularity 43 \n", "preview_url https://p.scdn.co/mp3-preview/37806a7d82c5d2a8... \n", "track_number 2 \n", "type track \n", "uri spotify:track:150EAeMGWJRubuH8zyx7h8 \n", "\n", " 2 \\\n", "_id 1fVeHYkyMxrjbjRAD9uWsZ \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 5XfJmldgWzrc1AIdbBaVZn \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "disc_number 1 \n", "duration_ms 219733 \n", "explicit False \n", "external_ids {'isrc': 'GBUM71603952'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/1f... \n", "href https://api.spotify.com/v1/tracks/1fVeHYkyMxrj... \n", "id 1fVeHYkyMxrjbjRAD9uWsZ \n", "name Dizzy Miss Lizzy - Live / Remastered \n", "popularity 42 \n", "preview_url https://p.scdn.co/mp3-preview/5ee6d20e1808908e... \n", "track_number 3 \n", "type track \n", "uri spotify:track:1fVeHYkyMxrjbjRAD9uWsZ \n", "\n", " 3 \\\n", "_id 0GRplBEB2FWCKutwMmS6nY \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 5XfJmldgWzrc1AIdbBaVZn \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "disc_number 1 \n", "duration_ms 146240 \n", "explicit False \n", "external_ids {'isrc': 'GBUM71603959'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/0G... \n", "href https://api.spotify.com/v1/tracks/0GRplBEB2FWC... \n", "id 0GRplBEB2FWCKutwMmS6nY \n", "name Ticket To Ride - Live / Remastered \n", "popularity 43 \n", "preview_url https://p.scdn.co/mp3-preview/558bb39228550744... \n", "track_number 4 \n", "type track \n", "uri spotify:track:0GRplBEB2FWCKutwMmS6nY \n", "\n", " 4 \n", "_id 1eVymk74iroqhsZxm0Vy3g \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 5XfJmldgWzrc1AIdbBaVZn \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "disc_number 1 \n", "duration_ms 134866 \n", "explicit False \n", "external_ids {'isrc': 'GBUM71603951'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/1e... \n", "href https://api.spotify.com/v1/tracks/1eVymk74iroq... \n", "id 1eVymk74iroqhsZxm0Vy3g \n", "name Can't Buy Me Love - Live / Remastered \n", "popularity 43 \n", "preview_url https://p.scdn.co/mp3-preview/c6b9c820e62868db... \n", "track_number 5 \n", "type track \n", "uri spotify:track:1eVymk74iroqhsZxm0Vy3g " ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame(list(tracks.find())).head().T" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{'_id': '4edArG2VehvJdwOZfYOxtK'}" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tracks.find_one({}, 'album.id')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tag tracks with artist\n", "Again, make an easy tag for the artist of each track.\n", "\n", "* [Top](#top)" ] }, { "cell_type": "code", "execution_count": 50, "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": 51, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{'George Martin', 'Radiohead', 'The Beatles'}" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "set(t['artist_name'] for t in tracks.find({}))" ] }, { "cell_type": "code", "execution_count": 52, "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
..................
3537dxKtc08dYeRVHt3p9CZJnOK ComputerRadiohead53aFGAl0Vebwp2bo8wtdWRFitter Happier
3547dxKtc08dYeRVHt3p9CZJnOK ComputerRadiohead6PBHfI3G8MlQ8qdItoVoxLElectioneering
3557dxKtc08dYeRVHt3p9CZJnOK ComputerRadiohead0R332cdlS9LyE0Ge2PSlVCClimbing Up the Walls
3567dxKtc08dYeRVHt3p9CZJnOK ComputerRadiohead1bSpwPhAxZwlR2enJJsv7UNo Surprises
3577dxKtc08dYeRVHt3p9CZJnOK ComputerRadiohead6n7GUf2h8D2Ad2wUy5s7nELucky
3587dxKtc08dYeRVHt3p9CZJnOK ComputerRadiohead75YUnz58ajMo2VIIuUFvOVThe Tourist
359500FEaUzn8lN9zWFyZG5C2The BendsRadiohead05evePUsIT1cmIURp1hgu6Planet Telex
360500FEaUzn8lN9zWFyZG5C2The BendsRadiohead3aDUSpF3LexOr1lFKvPV2hThe Bends
361500FEaUzn8lN9zWFyZG5C2The BendsRadiohead5jafMI8FLibnjkYTZ33m0cHigh And Dry
362500FEaUzn8lN9zWFyZG5C2The BendsRadiohead045sp2JToyTaaKyXkGejPyFake Plastic Trees
363500FEaUzn8lN9zWFyZG5C2The BendsRadiohead0OT4Rhd9cw1yajN9ZxL6qLBones
364500FEaUzn8lN9zWFyZG5C2The BendsRadiohead4QbQ55kHcRNho6XLaPctT1(Nice Dream)
365500FEaUzn8lN9zWFyZG5C2The BendsRadiohead4SE81CrzH0qPA8KHqM9SyzJust
366500FEaUzn8lN9zWFyZG5C2The BendsRadiohead4dPKQxaraW6CG1rTBzV6DWMy Iron Lung
367500FEaUzn8lN9zWFyZG5C2The BendsRadiohead7wB2VenWR6rchtLwawreIgBullet Proof ... I Wish I Was
368500FEaUzn8lN9zWFyZG5C2The BendsRadiohead6JzzI3YxHCcjZ7MCQS2YS1Black Star
369500FEaUzn8lN9zWFyZG5C2The BendsRadiohead4HtPAkZnSyGtNvBnfDc2nwSulk
370500FEaUzn8lN9zWFyZG5C2The BendsRadiohead5gz38AxRkD6Ywxd4fr2pLjStreet Spirit (Fade Out)
3716400dnyeDyD2mIFHfkwHXNPablo HoneyRadiohead1MyqLTRhgyWPw7v107BEuIYou
3726400dnyeDyD2mIFHfkwHXNPablo HoneyRadiohead6b2oQwSGFkzsMtQruIWm2pCreep
3736400dnyeDyD2mIFHfkwHXNPablo HoneyRadiohead71wIOoaoVMUwskK5yCXZL4How Do You?
3746400dnyeDyD2mIFHfkwHXNPablo HoneyRadiohead2zYmvi3w2T8a9Ckrv21bvWStop Whispering
3756400dnyeDyD2mIFHfkwHXNPablo HoneyRadiohead3ovbSnT5NNhl1gzMcw1NRZThinking About You
3766400dnyeDyD2mIFHfkwHXNPablo HoneyRadiohead4NUc1M0CS7b6zvWoyvibjuAnyone Can Play Guitar
3776400dnyeDyD2mIFHfkwHXNPablo HoneyRadiohead4nklmaiY4gfQI3SB1sLGsdRipcord
3786400dnyeDyD2mIFHfkwHXNPablo HoneyRadiohead11qDTSr3Dj4TkPnBcIOqEJVegetable
3796400dnyeDyD2mIFHfkwHXNPablo HoneyRadiohead4D6ZExVvYLZxhcAvifX5pxProve Yourself
3806400dnyeDyD2mIFHfkwHXNPablo HoneyRadiohead48IEDejXX5LH8TAC3VIGpcI Can't
3816400dnyeDyD2mIFHfkwHXNPablo HoneyRadiohead2B5P22cfUadACK7jLQegU6Lurgee
3826400dnyeDyD2mIFHfkwHXNPablo HoneyRadiohead6qttbImnJ5wuA8AtDKEy18Blow Out
\n", "

383 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", "353 7dxKtc08dYeRVHt3p9CZJn OK Computer Radiohead \n", "354 7dxKtc08dYeRVHt3p9CZJn OK Computer Radiohead \n", "355 7dxKtc08dYeRVHt3p9CZJn OK Computer Radiohead \n", "356 7dxKtc08dYeRVHt3p9CZJn OK Computer Radiohead \n", "357 7dxKtc08dYeRVHt3p9CZJn OK Computer Radiohead \n", "358 7dxKtc08dYeRVHt3p9CZJn OK Computer Radiohead \n", "359 500FEaUzn8lN9zWFyZG5C2 The Bends Radiohead \n", "360 500FEaUzn8lN9zWFyZG5C2 The Bends Radiohead \n", "361 500FEaUzn8lN9zWFyZG5C2 The Bends Radiohead \n", "362 500FEaUzn8lN9zWFyZG5C2 The Bends Radiohead \n", "363 500FEaUzn8lN9zWFyZG5C2 The Bends Radiohead \n", "364 500FEaUzn8lN9zWFyZG5C2 The Bends Radiohead \n", "365 500FEaUzn8lN9zWFyZG5C2 The Bends Radiohead \n", "366 500FEaUzn8lN9zWFyZG5C2 The Bends Radiohead \n", "367 500FEaUzn8lN9zWFyZG5C2 The Bends Radiohead \n", "368 500FEaUzn8lN9zWFyZG5C2 The Bends Radiohead \n", "369 500FEaUzn8lN9zWFyZG5C2 The Bends Radiohead \n", "370 500FEaUzn8lN9zWFyZG5C2 The Bends Radiohead \n", "371 6400dnyeDyD2mIFHfkwHXN Pablo Honey Radiohead \n", "372 6400dnyeDyD2mIFHfkwHXN Pablo Honey Radiohead \n", "373 6400dnyeDyD2mIFHfkwHXN Pablo Honey Radiohead \n", "374 6400dnyeDyD2mIFHfkwHXN Pablo Honey Radiohead \n", "375 6400dnyeDyD2mIFHfkwHXN Pablo Honey Radiohead \n", "376 6400dnyeDyD2mIFHfkwHXN Pablo Honey Radiohead \n", "377 6400dnyeDyD2mIFHfkwHXN Pablo Honey Radiohead \n", "378 6400dnyeDyD2mIFHfkwHXN Pablo Honey Radiohead \n", "379 6400dnyeDyD2mIFHfkwHXN Pablo Honey Radiohead \n", "380 6400dnyeDyD2mIFHfkwHXN Pablo Honey Radiohead \n", "381 6400dnyeDyD2mIFHfkwHXN Pablo Honey Radiohead \n", "382 6400dnyeDyD2mIFHfkwHXN Pablo Honey Radiohead \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", "353 53aFGAl0Vebwp2bo8wtdWR Fitter Happier \n", "354 6PBHfI3G8MlQ8qdItoVoxL Electioneering \n", "355 0R332cdlS9LyE0Ge2PSlVC Climbing Up the Walls \n", "356 1bSpwPhAxZwlR2enJJsv7U No Surprises \n", "357 6n7GUf2h8D2Ad2wUy5s7nE Lucky \n", "358 75YUnz58ajMo2VIIuUFvOV The Tourist \n", "359 05evePUsIT1cmIURp1hgu6 Planet Telex \n", "360 3aDUSpF3LexOr1lFKvPV2h The Bends \n", "361 5jafMI8FLibnjkYTZ33m0c High And Dry \n", "362 045sp2JToyTaaKyXkGejPy Fake Plastic Trees \n", "363 0OT4Rhd9cw1yajN9ZxL6qL Bones \n", "364 4QbQ55kHcRNho6XLaPctT1 (Nice Dream) \n", "365 4SE81CrzH0qPA8KHqM9Syz Just \n", "366 4dPKQxaraW6CG1rTBzV6DW My Iron Lung \n", "367 7wB2VenWR6rchtLwawreIg Bullet Proof ... I Wish I Was \n", "368 6JzzI3YxHCcjZ7MCQS2YS1 Black Star \n", "369 4HtPAkZnSyGtNvBnfDc2nw Sulk \n", "370 5gz38AxRkD6Ywxd4fr2pLj Street Spirit (Fade Out) \n", "371 1MyqLTRhgyWPw7v107BEuI You \n", "372 6b2oQwSGFkzsMtQruIWm2p Creep \n", "373 71wIOoaoVMUwskK5yCXZL4 How Do You? \n", "374 2zYmvi3w2T8a9Ckrv21bvW Stop Whispering \n", "375 3ovbSnT5NNhl1gzMcw1NRZ Thinking About You \n", "376 4NUc1M0CS7b6zvWoyvibju Anyone Can Play Guitar \n", "377 4nklmaiY4gfQI3SB1sLGsd Ripcord \n", "378 11qDTSr3Dj4TkPnBcIOqEJ Vegetable \n", "379 4D6ZExVvYLZxhcAvifX5px Prove Yourself \n", "380 48IEDejXX5LH8TAC3VIGpc I Can't \n", "381 2B5P22cfUadACK7jLQegU6 Lurgee \n", "382 6qttbImnJ5wuA8AtDKEy18 Blow Out \n", "\n", "[383 rows x 5 columns]" ] }, "execution_count": 52, "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": 22, "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": 30, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def get_audio_features(track_ids, auth_type, auth_token):\n", " url = 'https://api.spotify.com/v1/audio-features?ids={ids}'.format(ids=','.join(track_ids))\n", " headers = {'Authorization': auth_type + ' ' + auth_token}\n", " request = urllib.request.Request(url, headers=headers, method='GET')\n", " with urllib.request.urlopen(request) as f:\n", " response = json.loads(f.read().decode('utf-8'))\n", " for track in response['audio_features']:\n", " tracks.update_one({'_id': track['id']}, {'$set': track})" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [], "source": [ "a_type, a_token = get_spotify_auth_token()\n", "for a in albums.find({}, []):\n", " track_ids = [t['_id'] for t in tracks.find({'album.id': a['_id']}, [])]\n", " get_audio_features(track_ids, a_type, a_token)" ] }, { "cell_type": "code", "execution_count": 55, "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", "
0123456789...220221222223224225226227228229
_id4edArG2VehvJdwOZfYOxtK150EAeMGWJRubuH8zyx7h81fVeHYkyMxrjbjRAD9uWsZ0GRplBEB2FWCKutwMmS6nY1eVymk74iroqhsZxm0Vy3g2p5a9gu6NECVSvBtGSU1vm1HyLh5cctOnP186CBi8bhm7fZEWm7TAL2oZDyiYrrgnk21nhooOxso7CCoHPE73w4L1alcPfZWUHh01l4Fnoo5Jt...43feVCF6QfqIt9LnLs9BAH3NwEPV9MDr1z3KcHiAuz9d2Iccm3cKBQHWt5yk0yX9nh2OLMjGIhCNI6j34ysPscbp01n20rdBC5czKAhxmGREkr5gnrZoSS7nbDYtHp32RFiI5FBxWhG0nbBAF6lWgJFklM6tEwCsVtZ5tI8uHNJSHQ3b50jq8RgbDfmNNd0NiRnl4L4Z1fbYp0HuxLBje4MOZcSD
acousticness7.67e-050.006750.01310.003270.008650.08360.002420.03580.04390.02...0.6070.7670.3340.3860.3890.7780.6080.6980.6290.641
album{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com......{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...
album_id5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn5XfJmldgWzrc1AIdbBaVZn...7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn7gDXyW16byCQOgK965BRzn
analysis_urlhttps://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/7fZE...https://api.spotify.com/v1/audio-analysis/21nh...https://api.spotify.com/v1/audio-analysis/1alc......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[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/......[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...
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...
danceability0.3110.1880.4060.390.20.3070.2040.2260.2930.436...0.4020.6050.5270.520.6350.6080.6730.420.4550.482
disc_number1111111111...1111111111
duration_ms93507192053219733146240134867138733134013128747193760172600...146440146533120853141693124360160520117013123480110493155227
energy0.8220.8850.8670.7790.8490.6370.8080.9330.8660.772...0.860.3940.480.8290.6560.4940.3490.3720.5820.849
explicitFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse...FalseFalseFalseFalseFalseFalseFalseFalseFalseFalse
external_ids{'isrc': 'GBUM71603960'}{'isrc': 'GBUM71603957'}{'isrc': 'GBUM71603952'}{'isrc': 'GBUM71603959'}{'isrc': 'GBUM71603951'}{'isrc': 'GBUM71603958'}{'isrc': 'GBUM71603955'}{'isrc': 'GBUM71603950'}{'isrc': 'GBUM71603948'}{'isrc': 'GBUM71603953'}...{'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/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/7f...{'spotify': 'https://open.spotify.com/track/21...{'spotify': 'https://open.spotify.com/track/1a......{'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...
hrefhttps://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/7fZEWm7TAL2o...https://api.spotify.com/v1/tracks/21nhooOxso7C...https://api.spotify.com/v1/tracks/1alcPfZWUHh0......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...
id4edArG2VehvJdwOZfYOxtK150EAeMGWJRubuH8zyx7h81fVeHYkyMxrjbjRAD9uWsZ0GRplBEB2FWCKutwMmS6nY1eVymk74iroqhsZxm0Vy3g2p5a9gu6NECVSvBtGSU1vm1HyLh5cctOnP186CBi8bhm7fZEWm7TAL2oZDyiYrrgnk21nhooOxso7CCoHPE73w4L1alcPfZWUHh01l4Fnoo5Jt...43feVCF6QfqIt9LnLs9BAH3NwEPV9MDr1z3KcHiAuz9d2Iccm3cKBQHWt5yk0yX9nh2OLMjGIhCNI6j34ysPscbp01n20rdBC5czKAhxmGREkr5gnrZoSS7nbDYtHp32RFiI5FBxWhG0nbBAF6lWgJFklM6tEwCsVtZ5tI8uHNJSHQ3b50jq8RgbDfmNNd0NiRnl4L4Z1fbYp0HuxLBje4MOZcSD
instrumentalness2.04e-062.42e-050.00014100000.000572.64e-060...0006.2e-050.001270004.22e-067.74e-06
key291195529011...4440244142
liveness0.5080.850.4960.3660.8940.7560.6340.8440.9270.828...0.7360.09670.07020.2270.08280.09260.380.1040.1720.0414
loudness-8.696-8.189-6.879-8.007-7.606-8.35-7.948-6.146-7.366-7.133...-10.31-11.33-9.61-6.228-8.5-12.211-12.414-11.416-10.009-9.198
mode1101111110...1111101011
nameTwist 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 / RemasteredBoys - Live / RemasteredA Hard Day's Night - Live / RemasteredHelp! - 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
popularity47434243434241424443...41404653414247394163
preview_urlhttps://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/d0c2027d928e938a...https://p.scdn.co/mp3-preview/88b8add083e60507...https://p.scdn.co/mp3-preview/1aff27bfc59a0bc1......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...
speechiness0.03950.06620.04610.04230.05710.03920.03980.1080.0490.044...0.05040.03780.0280.08060.02910.03450.03680.03270.02920.0452
tempo126.441175.86129.417121.216173.283146.636179.24160.11134.82596.413...142.445133.942139.388147.997134.435112.421124.451101.408140.928124.631
time_signature4444443444...4444444344
track_hrefhttps://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/7fZEWm7TAL2o...https://api.spotify.com/v1/tracks/21nhooOxso7C...https://api.spotify.com/v1/tracks/1alcPfZWUHh0......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_number12345678910...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:4edArG2VehvJdwOZfYOxtKspotify:track:150EAeMGWJRubuH8zyx7h8spotify:track:1fVeHYkyMxrjbjRAD9uWsZspotify:track:0GRplBEB2FWCKutwMmS6nYspotify:track:1eVymk74iroqhsZxm0Vy3gspotify:track:2p5a9gu6NECVSvBtGSU1vmspotify:track:1HyLh5cctOnP186CBi8bhmspotify:track:7fZEWm7TAL2oZDyiYrrgnkspotify:track:21nhooOxso7CCoHPE73w4Lspotify:track:1alcPfZWUHh01l4Fnoo5Jt...spotify:track:43feVCF6QfqIt9LnLs9BAHspotify:track:3NwEPV9MDr1z3KcHiAuz9dspotify:track:2Iccm3cKBQHWt5yk0yX9nhspotify:track:2OLMjGIhCNI6j34ysPscbpspotify:track:01n20rdBC5czKAhxmGREkrspotify:track:5gnrZoSS7nbDYtHp32RFiIspotify:track:5FBxWhG0nbBAF6lWgJFklMspotify:track:6tEwCsVtZ5tI8uHNJSHQ3bspotify:track:50jq8RgbDfmNNd0NiRnl4Lspotify:track:4Z1fbYp0HuxLBje4MOZcSD
valence0.5880.5620.7580.4050.6690.3950.7260.6410.6350.515...0.8250.6060.7080.7650.780.8890.6360.3780.9280.942
\n", "

34 rows × 230 columns

\n", "
" ], "text/plain": [ " 0 \\\n", "_id 4edArG2VehvJdwOZfYOxtK \n", "acousticness 7.67e-05 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 1 \n", "name Twist And Shout - Live / Remastered \n", "popularity 47 \n", "preview_url https://p.scdn.co/mp3-preview/cd82d2f8f92a7222... \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", " 1 \\\n", "_id 150EAeMGWJRubuH8zyx7h8 \n", "acousticness 0.00675 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 1 \n", "name She's A Woman - Live / Remastered \n", "popularity 43 \n", "preview_url https://p.scdn.co/mp3-preview/37806a7d82c5d2a8... \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", " 2 \\\n", "_id 1fVeHYkyMxrjbjRAD9uWsZ \n", "acousticness 0.0131 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 0 \n", "name Dizzy Miss Lizzy - Live / Remastered \n", "popularity 42 \n", "preview_url https://p.scdn.co/mp3-preview/5ee6d20e1808908e... \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", " 3 \\\n", "_id 0GRplBEB2FWCKutwMmS6nY \n", "acousticness 0.00327 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 1 \n", "name Ticket To Ride - Live / Remastered \n", "popularity 43 \n", "preview_url https://p.scdn.co/mp3-preview/558bb39228550744... \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", " 4 \\\n", "_id 1eVymk74iroqhsZxm0Vy3g \n", "acousticness 0.00865 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 1 \n", "name Can't Buy Me Love - Live / Remastered \n", "popularity 43 \n", "preview_url https://p.scdn.co/mp3-preview/c6b9c820e62868db... \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", " 5 \\\n", "_id 2p5a9gu6NECVSvBtGSU1vm \n", "acousticness 0.0836 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 1 \n", "name Things We Said Today - Live / Remastered \n", "popularity 42 \n", "preview_url https://p.scdn.co/mp3-preview/7b71156485b9e3e1... \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", " 6 \\\n", "_id 1HyLh5cctOnP186CBi8bhm \n", "acousticness 0.00242 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 1 \n", "name Roll Over Beethoven - Live / Remastered \n", "popularity 41 \n", "preview_url https://p.scdn.co/mp3-preview/318950f70347c556... \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", " 7 \\\n", "_id 7fZEWm7TAL2oZDyiYrrgnk \n", "acousticness 0.0358 \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 5XfJmldgWzrc1AIdbBaVZn \n", "analysis_url https://api.spotify.com/v1/audio-analysis/7fZE... \n", "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n", "artist_name The Beatles \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "danceability 0.226 \n", "disc_number 1 \n", "duration_ms 128747 \n", "energy 0.933 \n", "explicit False \n", "external_ids {'isrc': 'GBUM71603950'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/7f... \n", "href https://api.spotify.com/v1/tracks/7fZEWm7TAL2o... \n", "id 7fZEWm7TAL2oZDyiYrrgnk \n", "instrumentalness 0.00057 \n", "key 9 \n", "liveness 0.844 \n", "loudness -6.146 \n", "mode 1 \n", "name Boys - Live / Remastered \n", "popularity 42 \n", "preview_url https://p.scdn.co/mp3-preview/d0c2027d928e938a... \n", "speechiness 0.108 \n", "tempo 160.11 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/7fZEWm7TAL2o... \n", "track_number 8 \n", "type audio_features \n", "uri spotify:track:7fZEWm7TAL2oZDyiYrrgnk \n", "valence 0.641 \n", "\n", " 8 \\\n", "_id 21nhooOxso7CCoHPE73w4L \n", "acousticness 0.0439 \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 5XfJmldgWzrc1AIdbBaVZn \n", "analysis_url https://api.spotify.com/v1/audio-analysis/21nh... \n", "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n", "artist_name The Beatles \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "danceability 0.293 \n", "disc_number 1 \n", "duration_ms 193760 \n", "energy 0.866 \n", "explicit False \n", "external_ids {'isrc': 'GBUM71603948'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/21... \n", "href https://api.spotify.com/v1/tracks/21nhooOxso7C... \n", "id 21nhooOxso7CCoHPE73w4L \n", "instrumentalness 2.64e-06 \n", "key 0 \n", "liveness 0.927 \n", "loudness -7.366 \n", "mode 1 \n", "name A Hard Day's Night - Live / Remastered \n", "popularity 44 \n", "preview_url https://p.scdn.co/mp3-preview/88b8add083e60507... \n", "speechiness 0.049 \n", "tempo 134.825 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/21nhooOxso7C... \n", "track_number 9 \n", "type audio_features \n", "uri spotify:track:21nhooOxso7CCoHPE73w4L \n", "valence 0.635 \n", "\n", " 9 \\\n", "_id 1alcPfZWUHh01l4Fnoo5Jt \n", "acousticness 0.02 \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 5XfJmldgWzrc1AIdbBaVZn \n", "analysis_url https://api.spotify.com/v1/audio-analysis/1alc... \n", "artist_id 3WrFJ7ztbogyGnTHbHJFl2 \n", "artist_name The Beatles \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \n", "danceability 0.436 \n", "disc_number 1 \n", "duration_ms 172600 \n", "energy 0.772 \n", "explicit False \n", "external_ids {'isrc': 'GBUM71603953'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/1a... \n", "href https://api.spotify.com/v1/tracks/1alcPfZWUHh0... \n", "id 1alcPfZWUHh01l4Fnoo5Jt \n", "instrumentalness 0 \n", "key 11 \n", "liveness 0.828 \n", "loudness -7.133 \n", "mode 0 \n", "name Help! - Live / Remastered \n", "popularity 43 \n", "preview_url https://p.scdn.co/mp3-preview/1aff27bfc59a0bc1... \n", "speechiness 0.044 \n", "tempo 96.413 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/1alcPfZWUHh0... \n", "track_number 10 \n", "type audio_features \n", "uri spotify:track:1alcPfZWUHh01l4Fnoo5Jt \n", "valence 0.515 \n", "\n", " ... \\\n", "_id ... \n", "acousticness ... \n", "album ... \n", "album_id ... \n", "analysis_url ... \n", "artist_id ... \n", "artist_name ... \n", "artists ... \n", "available_markets ... \n", "danceability ... \n", "disc_number ... \n", "duration_ms ... \n", "energy ... \n", "explicit ... \n", "external_ids ... \n", "external_urls ... \n", "href ... \n", "id ... \n", "instrumentalness ... \n", "key ... \n", "liveness ... \n", "loudness ... \n", "mode ... \n", "name ... \n", "popularity ... \n", "preview_url ... \n", "speechiness ... \n", "tempo ... \n", "time_signature ... \n", "track_href ... \n", "track_number ... \n", "type ... \n", "uri ... \n", "valence ... \n", "\n", " 220 \\\n", "_id 43feVCF6QfqIt9LnLs9BAH \n", "acousticness 0.607 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 1 \n", "name Boys - Remastered 2009 \n", "popularity 41 \n", "preview_url https://p.scdn.co/mp3-preview/c84bcc2dd65c3d9b... \n", "speechiness 0.0504 \n", "tempo 142.445 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/43feVCF6QfqI... \n", "track_number 5 \n", "type audio_features \n", "uri spotify:track:43feVCF6QfqIt9LnLs9BAH \n", "valence 0.825 \n", "\n", " 221 \\\n", "_id 3NwEPV9MDr1z3KcHiAuz9d \n", "acousticness 0.767 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 1 \n", "name Ask Me Why - Remastered 2009 \n", "popularity 40 \n", "preview_url https://p.scdn.co/mp3-preview/f42256fa5367c68f... \n", "speechiness 0.0378 \n", "tempo 133.942 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/3NwEPV9MDr1z... \n", "track_number 6 \n", "type audio_features \n", "uri spotify:track:3NwEPV9MDr1z3KcHiAuz9d \n", "valence 0.606 \n", "\n", " 222 \\\n", "_id 2Iccm3cKBQHWt5yk0yX9nh \n", "acousticness 0.334 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 1 \n", "name Please Please Me - Remastered 2009 \n", "popularity 46 \n", "preview_url https://p.scdn.co/mp3-preview/c7974d03d8cd26de... \n", "speechiness 0.028 \n", "tempo 139.388 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/2Iccm3cKBQHW... \n", "track_number 7 \n", "type audio_features \n", "uri spotify:track:2Iccm3cKBQHWt5yk0yX9nh \n", "valence 0.708 \n", "\n", " 223 \\\n", "_id 2OLMjGIhCNI6j34ysPscbp \n", "acousticness 0.386 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 1 \n", "name Love Me Do - Remastered 2009 \n", "popularity 53 \n", "preview_url https://p.scdn.co/mp3-preview/c0c7944dcb9d2457... \n", "speechiness 0.0806 \n", "tempo 147.997 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/2OLMjGIhCNI6... \n", "track_number 8 \n", "type audio_features \n", "uri spotify:track:2OLMjGIhCNI6j34ysPscbp \n", "valence 0.765 \n", "\n", " 224 \\\n", "_id 01n20rdBC5czKAhxmGREkr \n", "acousticness 0.389 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 1 \n", "name P.S. I Love You - Remastered 2009 \n", "popularity 41 \n", "preview_url https://p.scdn.co/mp3-preview/5ef1f2ba07489648... \n", "speechiness 0.0291 \n", "tempo 134.435 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/01n20rdBC5cz... \n", "track_number 9 \n", "type audio_features \n", "uri spotify:track:01n20rdBC5czKAhxmGREkr \n", "valence 0.78 \n", "\n", " 225 \\\n", "_id 5gnrZoSS7nbDYtHp32RFiI \n", "acousticness 0.778 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 0 \n", "name Baby It's You - Remastered 2009 \n", "popularity 42 \n", "preview_url https://p.scdn.co/mp3-preview/d7eeb1f68c39066d... \n", "speechiness 0.0345 \n", "tempo 112.421 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/5gnrZoSS7nbD... \n", "track_number 10 \n", "type audio_features \n", "uri spotify:track:5gnrZoSS7nbDYtHp32RFiI \n", "valence 0.889 \n", "\n", " 226 \\\n", "_id 5FBxWhG0nbBAF6lWgJFklM \n", "acousticness 0.608 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 1 \n", "name Do You Want To Know A Secret - Remastered 2009 \n", "popularity 47 \n", "preview_url https://p.scdn.co/mp3-preview/5bd705943290818c... \n", "speechiness 0.0368 \n", "tempo 124.451 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/5FBxWhG0nbBA... \n", "track_number 11 \n", "type audio_features \n", "uri spotify:track:5FBxWhG0nbBAF6lWgJFklM \n", "valence 0.636 \n", "\n", " 227 \\\n", "_id 6tEwCsVtZ5tI8uHNJSHQ3b \n", "acousticness 0.698 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 0 \n", "name A Taste Of Honey - Remastered 2009 \n", "popularity 39 \n", "preview_url https://p.scdn.co/mp3-preview/dd94439cdf6e7668... \n", "speechiness 0.0327 \n", "tempo 101.408 \n", "time_signature 3 \n", "track_href https://api.spotify.com/v1/tracks/6tEwCsVtZ5tI... \n", "track_number 12 \n", "type audio_features \n", "uri spotify:track:6tEwCsVtZ5tI8uHNJSHQ3b \n", "valence 0.378 \n", "\n", " 228 \\\n", "_id 50jq8RgbDfmNNd0NiRnl4L \n", "acousticness 0.629 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 1 \n", "name There's A Place - Remastered 2009 \n", "popularity 41 \n", "preview_url https://p.scdn.co/mp3-preview/5260a1d4f12c23ac... \n", "speechiness 0.0292 \n", "tempo 140.928 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/50jq8RgbDfmN... \n", "track_number 13 \n", "type audio_features \n", "uri spotify:track:50jq8RgbDfmNNd0NiRnl4L \n", "valence 0.928 \n", "\n", " 229 \n", "_id 4Z1fbYp0HuxLBje4MOZcSD \n", "acousticness 0.641 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CH, CL, CO, C... \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", "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", "mode 1 \n", "name Twist And Shout - Remastered 2009 \n", "popularity 63 \n", "preview_url https://p.scdn.co/mp3-preview/b7e3bc96b46e4dcc... \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", "[34 rows x 230 columns]" ] }, "execution_count": 55, "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": 56, "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", "
0123456789...136137138139140141142143144145
_id6tLALP9mi7VbNC7s16iBRK3wxmJSQ3Z1HfAuxeHQoZcE4tCwsdqqG4jASHhbsMHCx00eECFDnWy0RdjMmJ8NOeAL1amSa5xo79zINsgrpNlNge4sLGaMl33I6mcsk7u4xHAU4OrGm3fBdhlXuHtRBoLUMW2rA36OZNb3LkvqcNro1ugK3pcCifdPTc2BbqmWpEhtUd1uRxyAup7OYrlh2SHJb80N...71wIOoaoVMUwskK5yCXZL42zYmvi3w2T8a9Ckrv21bvW3ovbSnT5NNhl1gzMcw1NRZ4NUc1M0CS7b6zvWoyvibju4nklmaiY4gfQI3SB1sLGsd11qDTSr3Dj4TkPnBcIOqEJ4D6ZExVvYLZxhcAvifX5px48IEDejXX5LH8TAC3VIGpc2B5P22cfUadACK7jLQegU66qttbImnJ5wuA8AtDKEy18
acousticness0.620.420.4270.001010.08950.8410.8850.03950.3030.968...0.0006590.0008490.7040.0001011.93e-050.002810.0008490.009680.0001350.000465
album{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com......{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...{'artists': [{'href': 'https://api.spotify.com...
album_id1DBkJIEoeHrTX4WCBQGcCi1DBkJIEoeHrTX4WCBQGcCi1DBkJIEoeHrTX4WCBQGcCi1DBkJIEoeHrTX4WCBQGcCi1DBkJIEoeHrTX4WCBQGcCi1DBkJIEoeHrTX4WCBQGcCi1DBkJIEoeHrTX4WCBQGcCi1DBkJIEoeHrTX4WCBQGcCi6vuykQgDLUCiZ7YggIpLM96vuykQgDLUCiZ7YggIpLM9...6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN6400dnyeDyD2mIFHfkwHXN
analysis_urlhttps://api.spotify.com/v1/audio-analysis/6tLA...https://api.spotify.com/v1/audio-analysis/3wxm...https://api.spotify.com/v1/audio-analysis/4tCw...https://api.spotify.com/v1/audio-analysis/0eEC...https://api.spotify.com/v1/audio-analysis/1amS...https://api.spotify.com/v1/audio-analysis/4sLG...https://api.spotify.com/v1/audio-analysis/4OrG...https://api.spotify.com/v1/audio-analysis/2rA3...https://api.spotify.com/v1/audio-analysis/3pcC...https://api.spotify.com/v1/audio-analysis/1uRx......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[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/......[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...[{'href': 'https://api.spotify.com/v1/artists/...
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...
danceability0.5180.6480.6190.490.7210.3270.260.6930.5410.299...0.1850.2120.3640.2940.2560.3840.250.2840.420.284
disc_number1111111111...1111111111
duration_ms313671280719267154192743300219287067290067319249220609384439...132173325627161533217800189733192667145373253093187867282067
energy0.9590.5880.8860.7770.6760.1280.2640.7760.8470.263...0.9640.6960.370.8130.9060.7170.620.8250.5480.719
explicitFalseFalseFalseFalseFalseFalseFalseFalseFalseFalse...FalseFalseFalseFalseFalseFalseFalseFalseFalseFalse
external_ids{'isrc': 'GBU4B1100003'}{'isrc': 'GBU4B1100004'}{'isrc': 'GBU4B1100005'}{'isrc': 'GBU4B1100006'}{'isrc': 'GBU4B1100007'}{'isrc': 'GBU4B1100008'}{'isrc': 'GBU4B1100009'}{'isrc': 'GBU4B1100010'}{'isrc': 'GBBKS1600071'}{'isrc': 'GBBKS1600072'}...{'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/6t...{'spotify': 'https://open.spotify.com/track/3w...{'spotify': 'https://open.spotify.com/track/4t...{'spotify': 'https://open.spotify.com/track/0e...{'spotify': 'https://open.spotify.com/track/1a...{'spotify': 'https://open.spotify.com/track/4s...{'spotify': 'https://open.spotify.com/track/4O...{'spotify': 'https://open.spotify.com/track/2r...{'spotify': 'https://open.spotify.com/track/3p...{'spotify': 'https://open.spotify.com/track/1u......{'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...
hrefhttps://api.spotify.com/v1/tracks/6tLALP9mi7Vb...https://api.spotify.com/v1/tracks/3wxmJSQ3Z1Hf...https://api.spotify.com/v1/tracks/4tCwsdqqG4jA...https://api.spotify.com/v1/tracks/0eECFDnWy0Rd...https://api.spotify.com/v1/tracks/1amSa5xo79zI...https://api.spotify.com/v1/tracks/4sLGaMl33I6m...https://api.spotify.com/v1/tracks/4OrGm3fBdhlX...https://api.spotify.com/v1/tracks/2rA36OZNb3Lk...https://api.spotify.com/v1/tracks/3pcCifdPTc2B...https://api.spotify.com/v1/tracks/1uRxyAup7OYr......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...
id6tLALP9mi7VbNC7s16iBRK3wxmJSQ3Z1HfAuxeHQoZcE4tCwsdqqG4jASHhbsMHCx00eECFDnWy0RdjMmJ8NOeAL1amSa5xo79zINsgrpNlNge4sLGaMl33I6mcsk7u4xHAU4OrGm3fBdhlXuHtRBoLUMW2rA36OZNb3LkvqcNro1ugK3pcCifdPTc2BbqmWpEhtUd1uRxyAup7OYrlh2SHJb80N...71wIOoaoVMUwskK5yCXZL42zYmvi3w2T8a9Ckrv21bvW3ovbSnT5NNhl1gzMcw1NRZ4NUc1M0CS7b6zvWoyvibju4nklmaiY4gfQI3SB1sLGsd11qDTSr3Dj4TkPnBcIOqEJ4D6ZExVvYLZxhcAvifX5px48IEDejXX5LH8TAC3VIGpc2B5P22cfUadACK7jLQegU66qttbImnJ5wuA8AtDKEy18
instrumentalness0.8840.840.4110.8980.3360.760.07990.7370.2710.857...0.8790.01657.71e-060.0007560.3660.5690.08480.30.3990.382
key05472273119...92742607011
liveness0.08310.1410.2120.08960.08260.130.1910.08840.1090.126...0.1070.1290.08830.3330.3220.1870.1750.1180.1110.24
loudness-7.596-10.993-8.423-11.521-8.78-17.536-12.279-9.804-6.52-13.207...-8.316-10.059-14.134-10.772-10.436-8.868-10.915-10.256-12.298-10.739
mode0101001110...1110111110
nameBloomMorning Mr MagpieLittle By LittleFeralLotus FlowerCodexGive Up The GhostSeparatorBurn the WitchDaydreaming...How Do You?Stop WhisperingThinking About YouAnyone Can Play GuitarRipcordVegetableProve YourselfI Can'tLurgeeBlow Out
popularity47454442545145476260...41444545393938383839
preview_urlhttps://p.scdn.co/mp3-preview/1f06ac997e3f6e9b...https://p.scdn.co/mp3-preview/88e1ea3713ddc68f...https://p.scdn.co/mp3-preview/9677d537851e5091...https://p.scdn.co/mp3-preview/9dc0af2fa010c41d...https://p.scdn.co/mp3-preview/dead2fbe5cece1a2...https://p.scdn.co/mp3-preview/1022e7001ecff7cf...https://p.scdn.co/mp3-preview/16fb53b598cb153e...https://p.scdn.co/mp3-preview/32f41947c08dae34...https://p.scdn.co/mp3-preview/c5b0b198ee3f0459...https://p.scdn.co/mp3-preview/fbf970f6ee1e7d84......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...
speechiness0.1570.0520.03760.09740.03210.03010.02990.0560.02970.0323...0.0840.04720.03310.05470.05480.03390.06110.05950.02680.0506
tempo149.72270.124115.625135.991127.99758.99379.652113.808148.937137.848...147.362122.37103.44150.845137.949105.852114.098106.108101.9141.539
time_signature4444444443...4444444444
track_hrefhttps://api.spotify.com/v1/tracks/6tLALP9mi7Vb...https://api.spotify.com/v1/tracks/3wxmJSQ3Z1Hf...https://api.spotify.com/v1/tracks/4tCwsdqqG4jA...https://api.spotify.com/v1/tracks/0eECFDnWy0Rd...https://api.spotify.com/v1/tracks/1amSa5xo79zI...https://api.spotify.com/v1/tracks/4sLGaMl33I6m...https://api.spotify.com/v1/tracks/4OrGm3fBdhlX...https://api.spotify.com/v1/tracks/2rA36OZNb3Lk...https://api.spotify.com/v1/tracks/3pcCifdPTc2B...https://api.spotify.com/v1/tracks/1uRxyAup7OYr......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_number1234567812...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:6tLALP9mi7VbNC7s16iBRKspotify:track:3wxmJSQ3Z1HfAuxeHQoZcEspotify:track:4tCwsdqqG4jASHhbsMHCx0spotify:track:0eECFDnWy0RdjMmJ8NOeALspotify:track:1amSa5xo79zINsgrpNlNgespotify:track:4sLGaMl33I6mcsk7u4xHAUspotify:track:4OrGm3fBdhlXuHtRBoLUMWspotify:track:2rA36OZNb3LkvqcNro1ugKspotify:track:3pcCifdPTc2BbqmWpEhtUdspotify:track:1uRxyAup7OYrlh2SHJb80N...spotify:track:71wIOoaoVMUwskK5yCXZL4spotify:track:2zYmvi3w2T8a9Ckrv21bvWspotify:track:3ovbSnT5NNhl1gzMcw1NRZspotify:track:4NUc1M0CS7b6zvWoyvibjuspotify:track:4nklmaiY4gfQI3SB1sLGsdspotify:track:11qDTSr3Dj4TkPnBcIOqEJspotify:track:4D6ZExVvYLZxhcAvifX5pxspotify:track:48IEDejXX5LH8TAC3VIGpcspotify:track:2B5P22cfUadACK7jLQegU6spotify:track:6qttbImnJ5wuA8AtDKEy18
valence0.3250.4070.6020.7510.6030.06290.1570.6660.6250.115...0.2640.2790.4190.5440.2580.3990.2780.2690.3890.287
\n", "

34 rows × 146 columns

\n", "
" ], "text/plain": [ " 0 \\\n", "_id 6tLALP9mi7VbNC7s16iBRK \n", "acousticness 0.62 \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 1DBkJIEoeHrTX4WCBQGcCi \n", "analysis_url https://api.spotify.com/v1/audio-analysis/6tLA... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "danceability 0.518 \n", "disc_number 1 \n", "duration_ms 313671 \n", "energy 0.959 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100003'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/6t... \n", "href https://api.spotify.com/v1/tracks/6tLALP9mi7Vb... \n", "id 6tLALP9mi7VbNC7s16iBRK \n", "instrumentalness 0.884 \n", "key 0 \n", "liveness 0.0831 \n", "loudness -7.596 \n", "mode 0 \n", "name Bloom \n", "popularity 47 \n", "preview_url https://p.scdn.co/mp3-preview/1f06ac997e3f6e9b... \n", "speechiness 0.157 \n", "tempo 149.722 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/6tLALP9mi7Vb... \n", "track_number 1 \n", "type audio_features \n", "uri spotify:track:6tLALP9mi7VbNC7s16iBRK \n", "valence 0.325 \n", "\n", " 1 \\\n", "_id 3wxmJSQ3Z1HfAuxeHQoZcE \n", "acousticness 0.42 \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 1DBkJIEoeHrTX4WCBQGcCi \n", "analysis_url https://api.spotify.com/v1/audio-analysis/3wxm... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "danceability 0.648 \n", "disc_number 1 \n", "duration_ms 280719 \n", "energy 0.588 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100004'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/3w... \n", "href https://api.spotify.com/v1/tracks/3wxmJSQ3Z1Hf... \n", "id 3wxmJSQ3Z1HfAuxeHQoZcE \n", "instrumentalness 0.84 \n", "key 5 \n", "liveness 0.141 \n", "loudness -10.993 \n", "mode 1 \n", "name Morning Mr Magpie \n", "popularity 45 \n", "preview_url https://p.scdn.co/mp3-preview/88e1ea3713ddc68f... \n", "speechiness 0.052 \n", "tempo 70.124 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/3wxmJSQ3Z1Hf... \n", "track_number 2 \n", "type audio_features \n", "uri spotify:track:3wxmJSQ3Z1HfAuxeHQoZcE \n", "valence 0.407 \n", "\n", " 2 \\\n", "_id 4tCwsdqqG4jASHhbsMHCx0 \n", "acousticness 0.427 \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 1DBkJIEoeHrTX4WCBQGcCi \n", "analysis_url https://api.spotify.com/v1/audio-analysis/4tCw... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "danceability 0.619 \n", "disc_number 1 \n", "duration_ms 267154 \n", "energy 0.886 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100005'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/4t... \n", "href https://api.spotify.com/v1/tracks/4tCwsdqqG4jA... \n", "id 4tCwsdqqG4jASHhbsMHCx0 \n", "instrumentalness 0.411 \n", "key 4 \n", "liveness 0.212 \n", "loudness -8.423 \n", "mode 0 \n", "name Little By Little \n", "popularity 44 \n", "preview_url https://p.scdn.co/mp3-preview/9677d537851e5091... \n", "speechiness 0.0376 \n", "tempo 115.625 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/4tCwsdqqG4jA... \n", "track_number 3 \n", "type audio_features \n", "uri spotify:track:4tCwsdqqG4jASHhbsMHCx0 \n", "valence 0.602 \n", "\n", " 3 \\\n", "_id 0eECFDnWy0RdjMmJ8NOeAL \n", "acousticness 0.00101 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \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", "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", "mode 1 \n", "name Feral \n", "popularity 42 \n", "preview_url https://p.scdn.co/mp3-preview/9dc0af2fa010c41d... \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", " 4 \\\n", "_id 1amSa5xo79zINsgrpNlNge \n", "acousticness 0.0895 \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 1DBkJIEoeHrTX4WCBQGcCi \n", "analysis_url https://api.spotify.com/v1/audio-analysis/1amS... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "danceability 0.721 \n", "disc_number 1 \n", "duration_ms 300219 \n", "energy 0.676 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100007'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/1a... \n", "href https://api.spotify.com/v1/tracks/1amSa5xo79zI... \n", "id 1amSa5xo79zINsgrpNlNge \n", "instrumentalness 0.336 \n", "key 2 \n", "liveness 0.0826 \n", "loudness -8.78 \n", "mode 0 \n", "name Lotus Flower \n", "popularity 54 \n", "preview_url https://p.scdn.co/mp3-preview/dead2fbe5cece1a2... \n", "speechiness 0.0321 \n", "tempo 127.997 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/1amSa5xo79zI... \n", "track_number 5 \n", "type audio_features \n", "uri spotify:track:1amSa5xo79zINsgrpNlNge \n", "valence 0.603 \n", "\n", " 5 \\\n", "_id 4sLGaMl33I6mcsk7u4xHAU \n", "acousticness 0.841 \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 1DBkJIEoeHrTX4WCBQGcCi \n", "analysis_url https://api.spotify.com/v1/audio-analysis/4sLG... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "danceability 0.327 \n", "disc_number 1 \n", "duration_ms 287067 \n", "energy 0.128 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100008'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/4s... \n", "href https://api.spotify.com/v1/tracks/4sLGaMl33I6m... \n", "id 4sLGaMl33I6mcsk7u4xHAU \n", "instrumentalness 0.76 \n", "key 2 \n", "liveness 0.13 \n", "loudness -17.536 \n", "mode 0 \n", "name Codex \n", "popularity 51 \n", "preview_url https://p.scdn.co/mp3-preview/1022e7001ecff7cf... \n", "speechiness 0.0301 \n", "tempo 58.993 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/4sLGaMl33I6m... \n", "track_number 6 \n", "type audio_features \n", "uri spotify:track:4sLGaMl33I6mcsk7u4xHAU \n", "valence 0.0629 \n", "\n", " 6 \\\n", "_id 4OrGm3fBdhlXuHtRBoLUMW \n", "acousticness 0.885 \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 1DBkJIEoeHrTX4WCBQGcCi \n", "analysis_url https://api.spotify.com/v1/audio-analysis/4OrG... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "danceability 0.26 \n", "disc_number 1 \n", "duration_ms 290067 \n", "energy 0.264 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100009'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/4O... \n", "href https://api.spotify.com/v1/tracks/4OrGm3fBdhlX... \n", "id 4OrGm3fBdhlXuHtRBoLUMW \n", "instrumentalness 0.0799 \n", "key 7 \n", "liveness 0.191 \n", "loudness -12.279 \n", "mode 1 \n", "name Give Up The Ghost \n", "popularity 45 \n", "preview_url https://p.scdn.co/mp3-preview/16fb53b598cb153e... \n", "speechiness 0.0299 \n", "tempo 79.652 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/4OrGm3fBdhlX... \n", "track_number 7 \n", "type audio_features \n", "uri spotify:track:4OrGm3fBdhlXuHtRBoLUMW \n", "valence 0.157 \n", "\n", " 7 \\\n", "_id 2rA36OZNb3LkvqcNro1ugK \n", "acousticness 0.0395 \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 1DBkJIEoeHrTX4WCBQGcCi \n", "analysis_url https://api.spotify.com/v1/audio-analysis/2rA3... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "danceability 0.693 \n", "disc_number 1 \n", "duration_ms 319249 \n", "energy 0.776 \n", "explicit False \n", "external_ids {'isrc': 'GBU4B1100010'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/2r... \n", "href https://api.spotify.com/v1/tracks/2rA36OZNb3Lk... \n", "id 2rA36OZNb3LkvqcNro1ugK \n", "instrumentalness 0.737 \n", "key 3 \n", "liveness 0.0884 \n", "loudness -9.804 \n", "mode 1 \n", "name Separator \n", "popularity 47 \n", "preview_url https://p.scdn.co/mp3-preview/32f41947c08dae34... \n", "speechiness 0.056 \n", "tempo 113.808 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/2rA36OZNb3Lk... \n", "track_number 8 \n", "type audio_features \n", "uri spotify:track:2rA36OZNb3LkvqcNro1ugK \n", "valence 0.666 \n", "\n", " 8 \\\n", "_id 3pcCifdPTc2BbqmWpEhtUd \n", "acousticness 0.303 \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 6vuykQgDLUCiZ7YggIpLM9 \n", "analysis_url https://api.spotify.com/v1/audio-analysis/3pcC... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "danceability 0.541 \n", "disc_number 1 \n", "duration_ms 220609 \n", "energy 0.847 \n", "explicit False \n", "external_ids {'isrc': 'GBBKS1600071'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/3p... \n", "href https://api.spotify.com/v1/tracks/3pcCifdPTc2B... \n", "id 3pcCifdPTc2BbqmWpEhtUd \n", "instrumentalness 0.271 \n", "key 11 \n", "liveness 0.109 \n", "loudness -6.52 \n", "mode 1 \n", "name Burn the Witch \n", "popularity 62 \n", "preview_url https://p.scdn.co/mp3-preview/c5b0b198ee3f0459... \n", "speechiness 0.0297 \n", "tempo 148.937 \n", "time_signature 4 \n", "track_href https://api.spotify.com/v1/tracks/3pcCifdPTc2B... \n", "track_number 1 \n", "type audio_features \n", "uri spotify:track:3pcCifdPTc2BbqmWpEhtUd \n", "valence 0.625 \n", "\n", " 9 \\\n", "_id 1uRxyAup7OYrlh2SHJb80N \n", "acousticness 0.968 \n", "album {'artists': [{'href': 'https://api.spotify.com... \n", "album_id 6vuykQgDLUCiZ7YggIpLM9 \n", "analysis_url https://api.spotify.com/v1/audio-analysis/1uRx... \n", "artist_id 4Z8W4fKeB5YxbusRsdQVPb \n", "artist_name Radiohead \n", "artists [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \n", "danceability 0.299 \n", "disc_number 1 \n", "duration_ms 384439 \n", "energy 0.263 \n", "explicit False \n", "external_ids {'isrc': 'GBBKS1600072'} \n", "external_urls {'spotify': 'https://open.spotify.com/track/1u... \n", "href https://api.spotify.com/v1/tracks/1uRxyAup7OYr... \n", "id 1uRxyAup7OYrlh2SHJb80N \n", "instrumentalness 0.857 \n", "key 9 \n", "liveness 0.126 \n", "loudness -13.207 \n", "mode 0 \n", "name Daydreaming \n", "popularity 60 \n", "preview_url https://p.scdn.co/mp3-preview/fbf970f6ee1e7d84... \n", "speechiness 0.0323 \n", "tempo 137.848 \n", "time_signature 3 \n", "track_href https://api.spotify.com/v1/tracks/1uRxyAup7OYr... \n", "track_number 2 \n", "type audio_features \n", "uri spotify:track:1uRxyAup7OYrlh2SHJb80N \n", "valence 0.115 \n", "\n", " ... \\\n", "_id ... \n", "acousticness ... \n", "album ... \n", "album_id ... \n", "analysis_url ... \n", "artist_id ... \n", "artist_name ... \n", "artists ... \n", "available_markets ... \n", "danceability ... \n", "disc_number ... \n", "duration_ms ... \n", "energy ... \n", "explicit ... \n", "external_ids ... \n", "external_urls ... \n", "href ... \n", "id ... \n", "instrumentalness ... \n", "key ... \n", "liveness ... \n", "loudness ... \n", "mode ... \n", "name ... \n", "popularity ... \n", "preview_url ... \n", "speechiness ... \n", "tempo ... \n", "time_signature ... \n", "track_href ... \n", "track_number ... \n", "type ... \n", "uri ... \n", "valence ... \n", "\n", " 136 \\\n", "_id 71wIOoaoVMUwskK5yCXZL4 \n", "acousticness 0.000659 \n", "album {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \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", "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", "mode 1 \n", "name How Do You? \n", "popularity 41 \n", "preview_url https://p.scdn.co/mp3-preview/b99a13688f7d39b0... \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 {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \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", "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", "mode 1 \n", "name Stop Whispering \n", "popularity 44 \n", "preview_url https://p.scdn.co/mp3-preview/397951413134fe02... \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 {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \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", "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", "mode 1 \n", "name Thinking About You \n", "popularity 45 \n", "preview_url https://p.scdn.co/mp3-preview/ec90a4cef1ff0cbf... \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 {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \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", "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", "mode 0 \n", "name Anyone Can Play Guitar \n", "popularity 45 \n", "preview_url https://p.scdn.co/mp3-preview/76e430500d399da2... \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 {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \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", "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", "mode 1 \n", "name Ripcord \n", "popularity 39 \n", "preview_url https://p.scdn.co/mp3-preview/a519caf188516bc5... \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 {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \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", "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", "mode 1 \n", "name Vegetable \n", "popularity 39 \n", "preview_url https://p.scdn.co/mp3-preview/22dd1bf01746cb6d... \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 {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \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", "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", "mode 1 \n", "name Prove Yourself \n", "popularity 38 \n", "preview_url https://p.scdn.co/mp3-preview/6d62fc6cd2849212... \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 {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \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", "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", "mode 1 \n", "name I Can't \n", "popularity 38 \n", "preview_url https://p.scdn.co/mp3-preview/516d9e9499a86318... \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 {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \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", "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", "mode 1 \n", "name Lurgee \n", "popularity 38 \n", "preview_url https://p.scdn.co/mp3-preview/ae0de4e9b90a15a7... \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 {'artists': [{'href': 'https://api.spotify.com... \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 [{'href': 'https://api.spotify.com/v1/artists/... \n", "available_markets [AD, AR, AT, AU, BE, BG, BO, BR, CA, CH, CL, C... \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", "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", "mode 0 \n", "name Blow Out \n", "popularity 39 \n", "preview_url https://p.scdn.co/mp3-preview/69a5564e6733d6d2... \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", "[34 rows x 146 columns]" ] }, "execution_count": 56, "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": 59, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "beatles_tracks['valence'].hist()" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 60, "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": 61, "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": 62, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "586" ] }, "execution_count": 62, "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": 63, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "604" ] }, "execution_count": 63, "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": 64, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def genius_song_search(artist_id):\n", " songs = pd.DataFrame()\n", " page = 1\n", " while page:\n", " query = urllib.parse.urlencode({'page': page, 'per_page': 20})\n", " headers = {'Accept': 'application/json',\n", " 'Authorization': 'Bearer ' + config['genius']['token'],\n", " 'User-Agent': 'curl/7.9.8 (i686-pc-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.6b) (ipv6 enabled)'}\n", " request = urllib.request.Request('https://api.genius.com/artists/{id}/songs?{query}'.format(id=artist_id,\n", " query=query), \n", " headers=headers,\n", " method='GET')\n", " with urllib.request.urlopen(request) as f:\n", " response = json.loads(f.read().decode('utf-8'))\n", " page = response['response']['next_page']\n", " for song in response['response']['songs']:\n", " if song['path'].endswith('lyrics'):\n", " song['_id'] = song['id']\n", " genius_tracks.replace_one({'_id': song['id']}, song, upsert=True)" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "402" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "genius_song_search(beatles_genius_id)\n", "genius_tracks.find().count()" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "611" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "genius_song_search(radiohead_genius_id)\n", "genius_tracks.find().count()" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{'_id': 210353,\n", " 'annotation_count': 1,\n", " 'api_path': '/songs/210353',\n", " 'full_title': '1822! by\\xa0The\\xa0Beatles',\n", " 'header_image_thumbnail_url': 'https://s3.amazonaws.com/rapgenius/Live%20at%20the%20BBC%20disc%202%20BBC.png',\n", " 'header_image_url': 'https://s3.amazonaws.com/rapgenius/Live%20at%20the%20BBC%20disc%202%20BBC.png',\n", " 'id': 210353,\n", " 'lyrics_owner_id': 225680,\n", " 'path': '/The-beatles-1822-lyrics',\n", " 'primary_artist': {'api_path': '/artists/586',\n", " 'header_image_url': 'https://images.genius.com/b82dbb78926a812abfa10886ac84c1a8.1000x523x1.jpg',\n", " 'id': 586,\n", " 'image_url': 'https://images.genius.com/ad1f59e8a03be4eb521e88015d15d6e8.200x200x1.jpg',\n", " 'is_meme_verified': False,\n", " 'is_verified': False,\n", " 'name': 'The Beatles',\n", " 'url': 'https://genius.com/artists/The-beatles'},\n", " 'pyongs_count': None,\n", " 'song_art_image_thumbnail_url': 'https://s3.amazonaws.com/rapgenius/Live%20at%20the%20BBC%20disc%202%20BBC.png',\n", " 'stats': {'hot': False, 'unreviewed_annotations': 0},\n", " 'title': '1822!',\n", " 'url': 'https://genius.com/The-beatles-1822-lyrics'}" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "genius_tracks.find_one()" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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...601602603604605606607608609610
_id21035312344416793851238161436118166210540210315123414123415...2853637115809120590713832361081664350065122642298114114477642622
annotation_count1121519130114...07111121641
api_path/songs/210353/songs/123444/songs/1679385/songs/123816/songs/1436/songs/118166/songs/210540/songs/210315/songs/123414/songs/123415.../songs/2853637/songs/115809/songs/1205907/songs/1383236/songs/1081664/songs/350065/songs/1226422/songs/98114/songs/114477/songs/642622
full_title1822! by The BeatlesAcross the Universe by The BeatlesAcross the Universe (Wildlife Version) by The ...Act Naturally by The BeatlesA Day In the Life by The BeatlesA Hard Day's Night by The BeatlesAin't She Sweet by The BeatlesA Little Rhyme by The Beatles (Ft. John & Rodn...All I've Got to Do by The BeatlesAll My Loving by The Beatles...Where Bluebirds Fly by RadioheadWhere I End and You Begin by RadioheadWicked Child by RadioheadWish You Were Here by RadioheadWonderwall by RadioheadWorrywort by RadioheadYes I Am by RadioheadYou by RadioheadYou and Whose Army? by RadioheadYou Never Wash Up After Yourself by Radiohead
header_image_thumbnail_urlhttps://s3.amazonaws.com/rapgenius/Live%20at%2...https://s3.amazonaws.com/rapgenius/the_beatles...https://images.genius.com/a3463161b8063164d2e3...https://images.genius.com/adbf27acc77a06acfa4a...https://s3.amazonaws.com/rapgenius/The-Beatles...https://images.genius.com/68c11c7f5b6b66194d77...https://s3.amazonaws.com/rapgenius/view.jpghttps://s3.amazonaws.com/rapgenius/110537_cda_...https://s3.amazonaws.com/rapgenius/Beatles2.jpghttps://s3.amazonaws.com/rapgenius/Beatles2.jpg...https://images.genius.com/8ae50c3392a15c9c558c...https://images.genius.com/5ccb8a89b0f674962982...https://images.genius.com/25efaa8c220fdcfec8a9...https://images.genius.com/25efaa8c220fdcfec8a9...https://images.genius.com/25efaa8c220fdcfec8a9...https://images.genius.com/e4bdb3ab980f0f1b6ce4...https://images.genius.com/6b45ffa7fd55970e6411...https://images.genius.com/6c0cb1c55fc88c941dac...https://s3.amazonaws.com/rapgenius/1359924238_...https://images.rapgenius.com/0d14d86aec456da16...
header_image_urlhttps://s3.amazonaws.com/rapgenius/Live%20at%2...https://s3.amazonaws.com/rapgenius/the_beatles...https://images.genius.com/a3463161b8063164d2e3...https://images.genius.com/adbf27acc77a06acfa4a...https://s3.amazonaws.com/rapgenius/The-Beatles...https://images.genius.com/68c11c7f5b6b66194d77...https://s3.amazonaws.com/rapgenius/view.jpghttps://s3.amazonaws.com/rapgenius/110537_cda_...https://s3.amazonaws.com/rapgenius/Beatles2.jpghttps://s3.amazonaws.com/rapgenius/Beatles2.jpg...https://images.genius.com/8ae50c3392a15c9c558c...https://images.genius.com/5ccb8a89b0f674962982...https://images.genius.com/25efaa8c220fdcfec8a9...https://images.genius.com/25efaa8c220fdcfec8a9...https://images.genius.com/25efaa8c220fdcfec8a9...https://images.genius.com/e4bdb3ab980f0f1b6ce4...https://images.genius.com/6b45ffa7fd55970e6411...https://images.genius.com/6c0cb1c55fc88c941dac...https://s3.amazonaws.com/rapgenius/1359924238_...https://images.rapgenius.com/0d14d86aec456da16...
id21035312344416793851238161436118166210540210315123414123415...2853637115809120590713832361081664350065122642298114114477642622
lyrics_owner_id22568022533154934522533715532509622509622253322533...2726776272677615493451549345154934542802715493451161701163401158811
path/The-beatles-1822-lyrics/The-beatles-across-the-universe-lyrics/The-beatles-across-the-universe-wildlife-vers.../The-beatles-act-naturally-lyrics/The-beatles-a-day-in-the-life-lyrics/The-beatles-a-hard-days-night-lyrics/The-beatles-aint-she-sweet-lyrics/The-beatles-a-little-rhyme-lyrics/The-beatles-all-ive-got-to-do-lyrics/The-beatles-all-my-loving-lyrics.../Radiohead-where-bluebirds-fly-lyrics/Radiohead-where-i-end-and-you-begin-lyrics/Radiohead-wicked-child-lyrics/Radiohead-wish-you-were-here-lyrics/Radiohead-wonderwall-lyrics/Radiohead-worrywort-lyrics/Radiohead-yes-i-am-lyrics/Radiohead-you-lyrics/Radiohead-you-and-whose-army-lyrics/Radiohead-you-never-wash-up-after-yourself-ly...
primary_artist{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'......{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...{'is_meme_verified': False, 'header_image_url'...
pyongs_countNaN18NaN2344NaNNaN14...NaN5NaNNaNNaNNaN214NaN
song_art_image_thumbnail_urlhttps://s3.amazonaws.com/rapgenius/Live%20at%2...https://s3.amazonaws.com/rapgenius/the_beatles...https://images.genius.com/a3463161b8063164d2e3...https://images.genius.com/adbf27acc77a06acfa4a...https://s3.amazonaws.com/rapgenius/The-Beatles...https://images.genius.com/68c11c7f5b6b66194d77...https://s3.amazonaws.com/rapgenius/view.jpghttps://s3.amazonaws.com/rapgenius/110537_cda_...https://s3.amazonaws.com/rapgenius/Beatles2.jpghttps://s3.amazonaws.com/rapgenius/Beatles2.jpg...https://images.genius.com/8ae50c3392a15c9c558c...https://images.genius.com/5ccb8a89b0f674962982...https://images.genius.com/25efaa8c220fdcfec8a9...https://images.genius.com/25efaa8c220fdcfec8a9...https://images.genius.com/25efaa8c220fdcfec8a9...https://images.genius.com/e4bdb3ab980f0f1b6ce4...https://images.genius.com/6b45ffa7fd55970e6411...https://images.genius.com/6c0cb1c55fc88c941dac...https://s3.amazonaws.com/rapgenius/1359924238_...https://images.rapgenius.com/0d14d86aec456da16...
stats{'hot': False, 'unreviewed_annotations': 0}{'hot': False, 'unreviewed_annotations': 0, 'p...{'hot': False, 'unreviewed_annotations': 0}{'hot': False, 'unreviewed_annotations': 0}{'hot': False, 'unreviewed_annotations': 0, 'p...{'hot': False, 'unreviewed_annotations': 0, 'p...{'hot': False, 'unreviewed_annotations': 0}{'hot': False, 'unreviewed_annotations': 0}{'hot': False, 'unreviewed_annotations': 0}{'hot': False, 'unreviewed_annotations': 0, 'p......{'hot': False, 'unreviewed_annotations': 0}{'hot': False, 'unreviewed_annotations': 2, 'p...{'hot': False, 'unreviewed_annotations': 0}{'hot': False, 'unreviewed_annotations': 0}{'hot': False, 'unreviewed_annotations': 0}{'hot': False, 'unreviewed_annotations': 11}{'hot': False, 'unreviewed_annotations': 0}{'hot': False, 'unreviewed_annotations': 1}{'hot': False, 'unreviewed_annotations': 0, 'p...{'hot': False, 'unreviewed_annotations': 0}
title1822!Across the UniverseAcross the Universe (Wildlife Version)Act NaturallyA Day In the LifeA Hard Day's NightAin't She SweetA Little RhymeAll I've Got to DoAll My Loving...Where Bluebirds FlyWhere I End and You BeginWicked ChildWish You Were HereWonderwallWorrywortYes I AmYouYou and Whose Army?You Never Wash Up After Yourself
urlhttps://genius.com/The-beatles-1822-lyricshttps://genius.com/The-beatles-across-the-univ...https://genius.com/The-beatles-across-the-univ...https://genius.com/The-beatles-act-naturally-l...https://genius.com/The-beatles-a-day-in-the-li...https://genius.com/The-beatles-a-hard-days-nig...https://genius.com/The-beatles-aint-she-sweet-...https://genius.com/The-beatles-a-little-rhyme-...https://genius.com/The-beatles-all-ive-got-to-...https://genius.com/The-beatles-all-my-loving-l......https://genius.com/Radiohead-where-bluebirds-f...https://genius.com/Radiohead-where-i-end-and-y...https://genius.com/Radiohead-wicked-child-lyricshttps://genius.com/Radiohead-wish-you-were-her...https://genius.com/Radiohead-wonderwall-lyricshttps://genius.com/Radiohead-worrywort-lyricshttps://genius.com/Radiohead-yes-i-am-lyricshttps://genius.com/Radiohead-you-lyricshttps://genius.com/Radiohead-you-and-whose-arm...https://genius.com/Radiohead-you-never-wash-up...
\n", "

15 rows × 611 columns

\n", "
" ], "text/plain": [ " 0 \\\n", "_id 210353 \n", "annotation_count 1 \n", "api_path /songs/210353 \n", "full_title 1822! by The Beatles \n", "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/Live%20at%2... \n", "header_image_url https://s3.amazonaws.com/rapgenius/Live%20at%2... \n", "id 210353 \n", "lyrics_owner_id 225680 \n", "path /The-beatles-1822-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/Live%20at%2... \n", "stats {'hot': False, 'unreviewed_annotations': 0} \n", "title 1822! \n", "url https://genius.com/The-beatles-1822-lyrics \n", "\n", " 1 \\\n", "_id 123444 \n", "annotation_count 12 \n", "api_path /songs/123444 \n", "full_title Across the Universe by The Beatles \n", "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/the_beatles... \n", "header_image_url https://s3.amazonaws.com/rapgenius/the_beatles... \n", "id 123444 \n", "lyrics_owner_id 22533 \n", "path /The-beatles-across-the-universe-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count 18 \n", "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/the_beatles... \n", "stats {'hot': False, 'unreviewed_annotations': 0, 'p... \n", "title Across the Universe \n", "url https://genius.com/The-beatles-across-the-univ... \n", "\n", " 2 \\\n", "_id 1679385 \n", "annotation_count 1 \n", "api_path /songs/1679385 \n", "full_title Across the Universe (Wildlife Version) by The ... \n", "header_image_thumbnail_url https://images.genius.com/a3463161b8063164d2e3... \n", "header_image_url https://images.genius.com/a3463161b8063164d2e3... \n", "id 1679385 \n", "lyrics_owner_id 1549345 \n", "path /The-beatles-across-the-universe-wildlife-vers... \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/a3463161b8063164d2e3... \n", "stats {'hot': False, 'unreviewed_annotations': 0} \n", "title Across the Universe (Wildlife Version) \n", "url https://genius.com/The-beatles-across-the-univ... \n", "\n", " 3 \\\n", "_id 123816 \n", "annotation_count 5 \n", "api_path /songs/123816 \n", "full_title Act Naturally by The Beatles \n", "header_image_thumbnail_url https://images.genius.com/adbf27acc77a06acfa4a... \n", "header_image_url https://images.genius.com/adbf27acc77a06acfa4a... \n", "id 123816 \n", "lyrics_owner_id 22533 \n", "path /The-beatles-act-naturally-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count 2 \n", "song_art_image_thumbnail_url https://images.genius.com/adbf27acc77a06acfa4a... \n", "stats {'hot': False, 'unreviewed_annotations': 0} \n", "title Act Naturally \n", "url https://genius.com/The-beatles-act-naturally-l... \n", "\n", " 4 \\\n", "_id 1436 \n", "annotation_count 19 \n", "api_path /songs/1436 \n", "full_title A Day In the Life by The Beatles \n", "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/The-Beatles... \n", "header_image_url https://s3.amazonaws.com/rapgenius/The-Beatles... \n", "id 1436 \n", "lyrics_owner_id 7 \n", "path /The-beatles-a-day-in-the-life-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count 34 \n", "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/The-Beatles... \n", "stats {'hot': False, 'unreviewed_annotations': 0, 'p... \n", "title A Day In the Life \n", "url https://genius.com/The-beatles-a-day-in-the-li... \n", "\n", " 5 \\\n", "_id 118166 \n", "annotation_count 13 \n", "api_path /songs/118166 \n", "full_title A Hard Day's Night by The Beatles \n", "header_image_thumbnail_url https://images.genius.com/68c11c7f5b6b66194d77... \n", "header_image_url https://images.genius.com/68c11c7f5b6b66194d77... \n", "id 118166 \n", "lyrics_owner_id 1553 \n", "path /The-beatles-a-hard-days-night-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count 4 \n", "song_art_image_thumbnail_url https://images.genius.com/68c11c7f5b6b66194d77... \n", "stats {'hot': False, 'unreviewed_annotations': 0, 'p... \n", "title A Hard Day's Night \n", "url https://genius.com/The-beatles-a-hard-days-nig... \n", "\n", " 6 \\\n", "_id 210540 \n", "annotation_count 0 \n", "api_path /songs/210540 \n", "full_title Ain't She Sweet by The Beatles \n", "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/view.jpg \n", "header_image_url https://s3.amazonaws.com/rapgenius/view.jpg \n", "id 210540 \n", "lyrics_owner_id 250962 \n", "path /The-beatles-aint-she-sweet-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/view.jpg \n", "stats {'hot': False, 'unreviewed_annotations': 0} \n", "title Ain't She Sweet \n", "url https://genius.com/The-beatles-aint-she-sweet-... \n", "\n", " 7 \\\n", "_id 210315 \n", "annotation_count 1 \n", "api_path /songs/210315 \n", "full_title A Little Rhyme by The Beatles (Ft. John & Rodn... \n", "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/110537_cda_... \n", "header_image_url https://s3.amazonaws.com/rapgenius/110537_cda_... \n", "id 210315 \n", "lyrics_owner_id 250962 \n", "path /The-beatles-a-little-rhyme-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/110537_cda_... \n", "stats {'hot': False, 'unreviewed_annotations': 0} \n", "title A Little Rhyme \n", "url https://genius.com/The-beatles-a-little-rhyme-... \n", "\n", " 8 \\\n", "_id 123414 \n", "annotation_count 1 \n", "api_path /songs/123414 \n", "full_title All I've Got to Do by The Beatles \n", "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/Beatles2.jpg \n", "header_image_url https://s3.amazonaws.com/rapgenius/Beatles2.jpg \n", "id 123414 \n", "lyrics_owner_id 22533 \n", "path /The-beatles-all-ive-got-to-do-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count 1 \n", "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/Beatles2.jpg \n", "stats {'hot': False, 'unreviewed_annotations': 0} \n", "title All I've Got to Do \n", "url https://genius.com/The-beatles-all-ive-got-to-... \n", "\n", " 9 \\\n", "_id 123415 \n", "annotation_count 4 \n", "api_path /songs/123415 \n", "full_title All My Loving by The Beatles \n", "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/Beatles2.jpg \n", "header_image_url https://s3.amazonaws.com/rapgenius/Beatles2.jpg \n", "id 123415 \n", "lyrics_owner_id 22533 \n", "path /The-beatles-all-my-loving-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count 4 \n", "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/Beatles2.jpg \n", "stats {'hot': False, 'unreviewed_annotations': 0, 'p... \n", "title All My Loving \n", "url https://genius.com/The-beatles-all-my-loving-l... \n", "\n", " ... \\\n", "_id ... \n", "annotation_count ... \n", "api_path ... \n", "full_title ... \n", "header_image_thumbnail_url ... \n", "header_image_url ... \n", "id ... \n", "lyrics_owner_id ... \n", "path ... \n", "primary_artist ... \n", "pyongs_count ... \n", "song_art_image_thumbnail_url ... \n", "stats ... \n", "title ... \n", "url ... \n", "\n", " 601 \\\n", "_id 2853637 \n", "annotation_count 0 \n", "api_path /songs/2853637 \n", "full_title Where Bluebirds Fly by Radiohead \n", "header_image_thumbnail_url https://images.genius.com/8ae50c3392a15c9c558c... \n", "header_image_url https://images.genius.com/8ae50c3392a15c9c558c... \n", "id 2853637 \n", "lyrics_owner_id 2726776 \n", "path /Radiohead-where-bluebirds-fly-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/8ae50c3392a15c9c558c... \n", "stats {'hot': False, 'unreviewed_annotations': 0} \n", "title Where Bluebirds Fly \n", "url https://genius.com/Radiohead-where-bluebirds-f... \n", "\n", " 602 \\\n", "_id 115809 \n", "annotation_count 7 \n", "api_path /songs/115809 \n", "full_title Where I End and You Begin by Radiohead \n", "header_image_thumbnail_url https://images.genius.com/5ccb8a89b0f674962982... \n", "header_image_url https://images.genius.com/5ccb8a89b0f674962982... \n", "id 115809 \n", "lyrics_owner_id 2726776 \n", "path /Radiohead-where-i-end-and-you-begin-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count 5 \n", "song_art_image_thumbnail_url https://images.genius.com/5ccb8a89b0f674962982... \n", "stats {'hot': False, 'unreviewed_annotations': 2, 'p... \n", "title Where I End and You Begin \n", "url https://genius.com/Radiohead-where-i-end-and-y... \n", "\n", " 603 \\\n", "_id 1205907 \n", "annotation_count 1 \n", "api_path /songs/1205907 \n", "full_title Wicked Child by Radiohead \n", "header_image_thumbnail_url https://images.genius.com/25efaa8c220fdcfec8a9... \n", "header_image_url https://images.genius.com/25efaa8c220fdcfec8a9... \n", "id 1205907 \n", "lyrics_owner_id 1549345 \n", "path /Radiohead-wicked-child-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/25efaa8c220fdcfec8a9... \n", "stats {'hot': False, 'unreviewed_annotations': 0} \n", "title Wicked Child \n", "url https://genius.com/Radiohead-wicked-child-lyrics \n", "\n", " 604 \\\n", "_id 1383236 \n", "annotation_count 1 \n", "api_path /songs/1383236 \n", "full_title Wish You Were Here by Radiohead \n", "header_image_thumbnail_url https://images.genius.com/25efaa8c220fdcfec8a9... \n", "header_image_url https://images.genius.com/25efaa8c220fdcfec8a9... \n", "id 1383236 \n", "lyrics_owner_id 1549345 \n", "path /Radiohead-wish-you-were-here-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/25efaa8c220fdcfec8a9... \n", "stats {'hot': False, 'unreviewed_annotations': 0} \n", "title Wish You Were Here \n", "url https://genius.com/Radiohead-wish-you-were-her... \n", "\n", " 605 \\\n", "_id 1081664 \n", "annotation_count 1 \n", "api_path /songs/1081664 \n", "full_title Wonderwall by Radiohead \n", "header_image_thumbnail_url https://images.genius.com/25efaa8c220fdcfec8a9... \n", "header_image_url https://images.genius.com/25efaa8c220fdcfec8a9... \n", "id 1081664 \n", "lyrics_owner_id 1549345 \n", "path /Radiohead-wonderwall-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/25efaa8c220fdcfec8a9... \n", "stats {'hot': False, 'unreviewed_annotations': 0} \n", "title Wonderwall \n", "url https://genius.com/Radiohead-wonderwall-lyrics \n", "\n", " 606 \\\n", "_id 350065 \n", "annotation_count 12 \n", "api_path /songs/350065 \n", "full_title Worrywort by Radiohead \n", "header_image_thumbnail_url https://images.genius.com/e4bdb3ab980f0f1b6ce4... \n", "header_image_url https://images.genius.com/e4bdb3ab980f0f1b6ce4... \n", "id 350065 \n", "lyrics_owner_id 428027 \n", "path /Radiohead-worrywort-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.genius.com/e4bdb3ab980f0f1b6ce4... \n", "stats {'hot': False, 'unreviewed_annotations': 11} \n", "title Worrywort \n", "url https://genius.com/Radiohead-worrywort-lyrics \n", "\n", " 607 \\\n", "_id 1226422 \n", "annotation_count 1 \n", "api_path /songs/1226422 \n", "full_title Yes I Am by Radiohead \n", "header_image_thumbnail_url https://images.genius.com/6b45ffa7fd55970e6411... \n", "header_image_url https://images.genius.com/6b45ffa7fd55970e6411... \n", "id 1226422 \n", "lyrics_owner_id 1549345 \n", "path /Radiohead-yes-i-am-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count 2 \n", "song_art_image_thumbnail_url https://images.genius.com/6b45ffa7fd55970e6411... \n", "stats {'hot': False, 'unreviewed_annotations': 0} \n", "title Yes I Am \n", "url https://genius.com/Radiohead-yes-i-am-lyrics \n", "\n", " 608 \\\n", "_id 98114 \n", "annotation_count 6 \n", "api_path /songs/98114 \n", "full_title You by Radiohead \n", "header_image_thumbnail_url https://images.genius.com/6c0cb1c55fc88c941dac... \n", "header_image_url https://images.genius.com/6c0cb1c55fc88c941dac... \n", "id 98114 \n", "lyrics_owner_id 116170 \n", "path /Radiohead-you-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count 1 \n", "song_art_image_thumbnail_url https://images.genius.com/6c0cb1c55fc88c941dac... \n", "stats {'hot': False, 'unreviewed_annotations': 1} \n", "title You \n", "url https://genius.com/Radiohead-you-lyrics \n", "\n", " 609 \\\n", "_id 114477 \n", "annotation_count 4 \n", "api_path /songs/114477 \n", "full_title You and Whose Army? by Radiohead \n", "header_image_thumbnail_url https://s3.amazonaws.com/rapgenius/1359924238_... \n", "header_image_url https://s3.amazonaws.com/rapgenius/1359924238_... \n", "id 114477 \n", "lyrics_owner_id 116340 \n", "path /Radiohead-you-and-whose-army-lyrics \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count 4 \n", "song_art_image_thumbnail_url https://s3.amazonaws.com/rapgenius/1359924238_... \n", "stats {'hot': False, 'unreviewed_annotations': 0, 'p... \n", "title You and Whose Army? \n", "url https://genius.com/Radiohead-you-and-whose-arm... \n", "\n", " 610 \n", "_id 642622 \n", "annotation_count 1 \n", "api_path /songs/642622 \n", "full_title You Never Wash Up After Yourself by Radiohead \n", "header_image_thumbnail_url https://images.rapgenius.com/0d14d86aec456da16... \n", "header_image_url https://images.rapgenius.com/0d14d86aec456da16... \n", "id 642622 \n", "lyrics_owner_id 1158811 \n", "path /Radiohead-you-never-wash-up-after-yourself-ly... \n", "primary_artist {'is_meme_verified': False, 'header_image_url'... \n", "pyongs_count NaN \n", "song_art_image_thumbnail_url https://images.rapgenius.com/0d14d86aec456da16... \n", "stats {'hot': False, 'unreviewed_annotations': 0} \n", "title You Never Wash Up After Yourself \n", "url https://genius.com/Radiohead-you-never-wash-up... \n", "\n", "[15 rows x 611 columns]" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gsongs = pd.DataFrame(list(genius_tracks.find()))\n", "gsongs.T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can get the lyrics for each song. We tidy it up as we go, to strip out formatting and the like.\n", "\n", "Note the use of [Beautiful Soup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/) to strip out the HTML from the lyrics." ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def genius_lyrics(song_url):\n", " headers = {'Accept': 'application/json',\n", " 'Authorization': 'Bearer ' + config['genius']['token'],\n", " 'User-Agent': 'curl/7.9.8 (i686-pc-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.6b) (ipv6 enabled)'}\n", " request = urllib.request.Request(song_url, headers=headers, method='GET')\n", " html_doc = urllib.request.urlopen(request)\n", " soup = BeautifulSoup(html_doc, 'html.parser')\n", " lyrics = soup.find('lyrics').get_text()\n", " l2 = re.sub('\\[[^\\]]*\\]', '', lyrics)\n", " l3 = re.sub('\\[|\\]', '', l2)\n", " l4 = re.sub('(\\s)+', ' ', l3)\n", " return l4.strip().lower(), lyrics" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(\"oh ain't she sweet well see her walking down that street yes i ask you very confidentially ain't she sweet? oh ain't she nice well look her over once or twice yes i ask you very confidentially ain't she nice? just cast an eye in her direction oh me oh my ain't that perfection? oh i repeat well don't you think that's kind of neat? yes i ask you very confidentially ain't she sweet? oh ain't she sweet well see her walking down that street well i ask you very confidentially ain't she sweet? well i ask you very confidentially ain't she sweet?\",\n", " \"\\n\\n[Chorus 1]]\\nOh ain't she sweet\\nWell see her walking down that street\\nYes I ask you very confidentially\\nAin't she sweet?\\n\\n[Chorus 2]\\nOh ain't she nice\\nWell look her over once or twice\\nYes I ask you very confidentially\\nAin't she nice?\\n\\n[Chorus 3]\\nJust cast an eye\\nIn her direction\\nOh me oh my\\nAin't that perfection?\\n\\n[Chorus 4]\\nOh I repeat\\nWell don't you think that's kind of neat?\\nYes I ask you very confidentially\\nAin't she sweet?\\n\\n[Chorus 1]\\n\\n[Chorus 2]\\n\\n[Chorus 3]\\n\\n[Chorus 4]\\n\\n[Chorus 1]\\nOh ain't she sweet\\nWell see her walking down that street\\nWell I ask you very confidentially\\nAin't she sweet?\\nWell I ask you very confidentially\\nAin't she sweet?\\n\\n\")" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assl = genius_lyrics('https://genius.com/The-beatles-aint-she-sweet-lyrics')\n", "assl" ] }, { "cell_type": "code", "execution_count": 71, "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": 71, "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": 72, "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": 73, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'a hard days night'" ] }, "execution_count": 73, "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": 74, "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": 75, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(301, 298, 46)" ] }, "execution_count": 75, "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": 76, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "{'2 2 5 live at earls court',\n", " 'a punch up at a wedding',\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", " 'codex illum sphere',\n", " 'dollars cents',\n", " 'dollars cents live',\n", " 'everything in its right place live in france',\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", " 'kansas city heyheyheyhey',\n", " 'like spinning plates live',\n", " 'little by little caribou rmx',\n", " 'little by little shed',\n", " 'lotus flower jacques greene rmx',\n", " 'lotus flower sbtrkt rmx',\n", " 'march of the meanies',\n", " 'morning bell live in oxford',\n", " 'morning mr magpie nathan fake rmx',\n", " 'morning mr magpie pearson sound scavenger rmx',\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": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "spotify_only" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{'1822',\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", " 'all things must pass',\n", " 'all together on the wireless machine',\n", " 'another beatles christmas record',\n", " 'bad boy',\n", " 'bad to me',\n", " 'banana co',\n", " 'beatle greetings',\n", " 'beatles movie medley',\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", " 'bitches talkin',\n", " 'blackbirdyesterday',\n", " 'blue moon of kentucky',\n", " 'blue suede shoes',\n", " 'bullet proofi wish i was',\n", " 'burning bush',\n", " 'can you take me back',\n", " 'carol',\n", " 'ceremony',\n", " 'child of nature',\n", " 'christmas time is here again',\n", " 'cinnamon girl',\n", " 'clarabella',\n", " 'climbing up a bloody great hill',\n", " 'coke babies',\n", " 'come and get it',\n", " 'come togetherdear prudence',\n", " 'commonwealth',\n", " 'crinsk dee night',\n", " 'cry for a shadow',\n", " 'crying waiting hoping',\n", " 'cut a hole',\n", " 'cuttooth',\n", " 'dear wack',\n", " 'dollars and cents',\n", " 'dont ever change',\n", " 'dont let me down',\n", " 'down in eastern australia',\n", " 'dream baby',\n", " 'drive my carthe wordwhat youre doing',\n", " 'eds scary song',\n", " 'egyptian song',\n", " 'eleanor rigbyjulia transition',\n", " 'everybody lies through their teeth',\n", " 'everyone needs someone to hate',\n", " 'faithless the wonderboy',\n", " 'falling in love again',\n", " 'fasttrack',\n", " 'final show',\n", " 'fog',\n", " 'follow me around',\n", " 'four guys',\n", " 'free as a bird',\n", " 'from fluff to you',\n", " 'from us to you',\n", " 'get back aka no pakistanis',\n", " 'give it up',\n", " 'give peace a chance',\n", " 'glad all over',\n", " 'glass onion love remix',\n", " 'gnik nus',\n", " 'goodbye',\n", " 'hallelujah i love her so',\n", " 'happy song',\n", " 'harry patch in memory of',\n", " 'have a banana',\n", " 'have a banana speech',\n", " 'hear me lord harrison',\n", " 'hello little girl',\n", " 'here comes the sunthe inner light transition',\n", " 'how can you be sure',\n", " 'how do you do it',\n", " 'how i made my millions',\n", " 'i call your name',\n", " 'i forgot to remember to forget',\n", " 'i froze up',\n", " 'i got a woman',\n", " 'i got to find my baby',\n", " 'i just dont understand',\n", " 'i promise',\n", " 'i want none of this',\n", " 'i want to know',\n", " 'if you love me baby',\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 coming up',\n", " 'im down',\n", " 'im gonna sit right down and cry over you',\n", " 'im talking about you',\n", " 'in spite of all the danger',\n", " 'india',\n", " 'india rubber',\n", " 'inside my head',\n", " 'its for you',\n", " 'james bond theme',\n", " 'jazz piano song',\n", " 'jerusalem',\n", " 'jingle bells',\n", " 'john lennon vs bill oreilly',\n", " 'johnny b goode',\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", " 'kid a tracklist album cover',\n", " 'killer cars',\n", " 'komm gib mir deine hand',\n", " 'ladytron',\n", " 'leave my kitten alone',\n", " 'lend me your comb',\n", " 'lets dance',\n", " 'lewis mistreated',\n", " 'lift',\n", " 'like dreamers do',\n", " 'lonesome tears in my eyes',\n", " 'love',\n", " 'love of the loved',\n", " 'love these goon shows',\n", " 'lozenge of love',\n", " 'lucille',\n", " 'lull',\n", " 'mailman bring me no more blues',\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", " 'meeting in the aisle',\n", " 'melatonin',\n", " 'memphis',\n", " 'memphis tennessee',\n", " 'million dollar question',\n", " 'missing links bootleg',\n", " 'molasses',\n", " 'moonlight',\n", " 'moonlight bay',\n", " 'movie medley',\n", " 'mr b',\n", " 'my bonnie',\n", " 'my bonnie english intro',\n", " 'my bonnie german intro',\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 touches me',\n", " 'old brown shoe',\n", " 'on the beach',\n", " 'one and one is two',\n", " 'ooh my arms',\n", " 'ooh my arms speech',\n", " 'ooh my soul',\n", " 'open pick',\n", " 'packt like sardines in a crushd tin box',\n", " 'palo alto',\n", " 'pantomime everywhere its christmas',\n", " 'pearly',\n", " 'pedro the fisherman',\n", " 'permanent daylight',\n", " 'phillipa chicken',\n", " 'polyethylene parts 1 2',\n", " 'pop is dead',\n", " 'punchdrunk lovesick singalong',\n", " 'rain',\n", " 'ready teddy',\n", " 'real love',\n", " 'reminiscing',\n", " 'revolution',\n", " 'revolution i',\n", " 'rhinestone cowboy',\n", " 'riding on a bus',\n", " 'rip it up medley',\n", " 'ruby baby',\n", " 'saints',\n", " 'saints when the saints go marching in',\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", " 'shout',\n", " 'sie liebt dich',\n", " 'sing a song for you',\n", " 'sinking ship',\n", " 'slow down',\n", " 'so how come no one loves me',\n", " 'soldier of love',\n", " 'some other guy',\n", " 'somebody else',\n", " 'someone else',\n", " 'something with blue jay way transition',\n", " 'somewhere',\n", " 'sour milk sea',\n", " 'spectre',\n", " 'staircase',\n", " 'stand by me',\n", " 'step inside love',\n", " 'step inside love los paranoias',\n", " 'stranger in my arms',\n", " 'strawberry fields forever take 1',\n", " 'strawberry fields forever take 7 edit piece',\n", " 'stupid car',\n", " 'supercollider',\n", " 'sure to fall',\n", " 'sure to fall in love with you',\n", " 'suzy parker',\n", " 'swanee river',\n", " 'sweet georgia brown',\n", " 'sweet little sixteen',\n", " 'take good care of my baby',\n", " 'talk show host',\n", " 'teddy boy',\n", " 'tell me why ep',\n", " 'thank you girl',\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 hippy hippy shake',\n", " 'the honeymoon song',\n", " 'the inner light',\n", " 'the new generation',\n", " 'the sheik of araby',\n", " 'the thief',\n", " 'the trickster',\n", " 'these are my twisted words',\n", " 'this boy',\n", " 'three cool cats',\n", " 'to be a brilliant light',\n", " 'to know her is to love her',\n", " 'too much monkey business',\n", " 'transatlantic drawl',\n", " 'union city blue',\n", " 'untogether',\n", " 'upside down',\n", " 'watching rainbows',\n", " 'what goes on girl',\n", " 'what is it that you say',\n", " 'what is that you say',\n", " 'whatd i say',\n", " 'whats the new mary jane',\n", " 'when im sixtyfour',\n", " 'when the saints go marchin in',\n", " 'why',\n", " 'wicked child',\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", " '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": 77, "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": 78, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "genius_tracks.update_many({'ctitle': 'revolution i'}, \n", " {'$set': {'ctitle': 'revolution 1'}})\n", "genius_tracks.update_many({'ctitle': 'when im sixtyfour'}, \n", " {'$set': {'ctitle': 'when im sixty four'}})\n", "genius_tracks.update_many({'ctitle': 'packt like sardines in a crushd tin box'}, \n", " {'$set': {'ctitle': 'packt like sardines in a crushed tin box'}})\n", "genius_tracks.update_many({'ctitle': 'a punchup at a wedding'}, \n", " {'$set': {'ctitle': 'a punch up at a wedding'}})\n", "genius_tracks.update_many({'ctitle': 'dollars cents'}, \n", " {'$set': {'ctitle': 'dollars and cents'}})\n", "genius_tracks.update_many({'ctitle': 'bullet proofi wish i was'}, \n", " {'$set': {'ctitle': 'bullet proof i wish i was'}})" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(306, 293, 41)" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "in_both = set(g['ctitle'] for g in genius_tracks.find({}, ['ctitle']) if tracks.find({'ctitle': g['ctitle']}).count())\n", "genius_only = set(g['ctitle'] for g in genius_tracks.find({}, ['ctitle']) if not tracks.find({'ctitle': g['ctitle']}).count())\n", "spotify_only = set(s['ctitle'] for s in tracks.find({}, ['ctitle']) if not genius_tracks.find({'ctitle': s['ctitle']}).count())\n", "len(in_both), len(genius_only), len(spotify_only)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Copy the lyrics over\n", "Now can can connect the tracks, let's copy across the lyrics from the Genius collection into the Spotify collection. We'll calculate the lyrical density at the same time.\n", "\n", "* [Top](#top)" ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "collapsed": false }, "outputs": [], "source": [ "for t in tracks.find({}, ['ctitle', 'duration_ms']):\n", " gts = genius_tracks.find({'ctitle': t['ctitle'], 'lyrics': {'$exists': True}}, ['lyrics', 'original_lyrics'])\n", " for gt in gts:\n", " tracks.update_one({'_id': t['_id']}, \n", " {'$set': {'lyrics': gt['lyrics'], \n", " 'original_lyrics': gt['original_lyrics'],\n", " 'lyrical_density': 1000 * len(gt['lyrics'].split()) / t['duration_ms']}})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sentiment analysis\n", "I couldn't find an easily-installable equivalent to the NRC corpus, so I'm using a sentiment analysis API endpoint from [Text Processing](http://text-processing.com/docs/sentiment.html).\n", "\n", "* [Top](#top)" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [], "source": [ "for t in tracks.find({'lyrics': {'$exists': True}}, ['lyrics']):\n", " text = t['lyrics']\n", " if text:\n", " query = urllib.parse.urlencode({'text': text}).encode('ascii')\n", " headers = {'Accept': 'application/json',\n", " 'User-Agent': 'curl/7.9.8 (i686-pc-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.6b) (ipv6 enabled)'}\n", " request = urllib.request.Request('http://text-processing.com/api/sentiment/', \n", " headers=headers, data=query)\n", " with urllib.request.urlopen(request) as f:\n", " response = json.loads(f.read().decode('utf-8'))\n", " tracks.update_one({'_id': t['_id']}, {'$set': {'sentiment': response}})" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "dict_keys(['sentiment', 'mode', 'instrumentalness', 'href', 'energy', 'album', 'track_href', 'popularity', 'disc_number', 'liveness', 'available_markets', 'name', 'track_number', 'loudness', 'danceability', 'lyrics', 'uri', 'speechiness', 'type', 'explicit', 'external_urls', 'external_ids', 'artist_id', 'id', 'analysis_url', 'album_id', 'valence', '_id', 'lyrical_density', 'acousticness', 'ctitle', 'duration_ms', 'preview_url', 'artists', 'tempo', 'time_signature', 'artist_name', 'key', 'original_lyrics'])" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tracks.find_one({'sentiment': {'$exists': True}}).keys()" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{'_id': '2ucFulEWapRAmTn7l6f5Q7',\n", " 'acousticness': 0.425,\n", " 'album': {'album_type': 'album',\n", " 'artists': [{'external_urls': {'spotify': 'https://open.spotify.com/artist/3WrFJ7ztbogyGnTHbHJFl2'},\n", " 'href': 'https://api.spotify.com/v1/artists/3WrFJ7ztbogyGnTHbHJFl2',\n", " 'id': '3WrFJ7ztbogyGnTHbHJFl2',\n", " 'name': 'The Beatles',\n", " 'type': 'artist',\n", " 'uri': 'spotify:artist:3WrFJ7ztbogyGnTHbHJFl2'}],\n", " 'available_markets': ['AD',\n", " 'AR',\n", " 'AT',\n", " 'AU',\n", " 'BE',\n", " 'BG',\n", " 'BO',\n", " 'BR',\n", " 'CH',\n", " 'CL',\n", " 'CO',\n", " 'CR',\n", " 'CY',\n", " 'CZ',\n", " 'DE',\n", " 'DK',\n", " 'DO',\n", " 'EC',\n", " 'EE',\n", " 'ES',\n", " 'FI',\n", " 'FR',\n", " 'GB',\n", " 'GR',\n", " 'GT',\n", " 'HK',\n", " 'HN',\n", " 'HU',\n", " 'ID',\n", " 'IE',\n", " 'IS',\n", " 'IT',\n", " 'JP',\n", " 'LI',\n", " 'LT',\n", " 'LU',\n", " 'LV',\n", " 'MC',\n", " 'MT',\n", " 'MY',\n", " 'NI',\n", " 'NL',\n", " 'NO',\n", " 'NZ',\n", " 'PA',\n", " 'PE',\n", " 'PH',\n", " 'PL',\n", " 'PT',\n", " 'PY',\n", " 'SE',\n", " 'SG',\n", " 'SK',\n", " 'SV',\n", " 'TR',\n", " 'TW',\n", " 'UY'],\n", " 'external_urls': {'spotify': 'https://open.spotify.com/album/03Qh833fEdVT30Pfs93ea6'},\n", " 'href': 'https://api.spotify.com/v1/albums/03Qh833fEdVT30Pfs93ea6',\n", " 'id': '03Qh833fEdVT30Pfs93ea6',\n", " 'images': [{'height': 640,\n", " 'url': 'https://i.scdn.co/image/d6028aea974c75961cb9cdc2263f5d8a8a6582bd',\n", " 'width': 640},\n", " {'height': 300,\n", " 'url': 'https://i.scdn.co/image/adebae7bf6a4a441bc6a5a17ca840f77df6ed3b9',\n", " 'width': 300},\n", " {'height': 64,\n", " 'url': 'https://i.scdn.co/image/3b0ddfadf13b9f3e74da93fcb21e4183a4d9fcc8',\n", " 'width': 64}],\n", " 'name': 'The Beatles (Remastered)',\n", " 'type': 'album',\n", " 'uri': 'spotify:album:03Qh833fEdVT30Pfs93ea6'},\n", " 'album_id': '03Qh833fEdVT30Pfs93ea6',\n", " 'analysis_url': 'https://api.spotify.com/v1/audio-analysis/2ucFulEWapRAmTn7l6f5Q7',\n", " 'artist_id': '3WrFJ7ztbogyGnTHbHJFl2',\n", " 'artist_name': 'The Beatles',\n", " 'artists': [{'external_urls': {'spotify': 'https://open.spotify.com/artist/3WrFJ7ztbogyGnTHbHJFl2'},\n", " 'href': 'https://api.spotify.com/v1/artists/3WrFJ7ztbogyGnTHbHJFl2',\n", " 'id': '3WrFJ7ztbogyGnTHbHJFl2',\n", " 'name': 'The Beatles',\n", " 'type': 'artist',\n", " 'uri': 'spotify:artist:3WrFJ7ztbogyGnTHbHJFl2'}],\n", " 'available_markets': ['AD',\n", " 'AR',\n", " 'AT',\n", " 'AU',\n", " 'BE',\n", " 'BG',\n", " 'BO',\n", " 'BR',\n", " 'CH',\n", " 'CL',\n", " 'CO',\n", " 'CR',\n", " 'CY',\n", " 'CZ',\n", " 'DE',\n", " 'DK',\n", " 'DO',\n", " 'EC',\n", " 'EE',\n", " 'ES',\n", " 'FI',\n", " 'FR',\n", " 'GB',\n", " 'GR',\n", " 'GT',\n", " 'HK',\n", " 'HN',\n", " 'HU',\n", " 'ID',\n", " 'IE',\n", " 'IS',\n", " 'IT',\n", " 'JP',\n", " 'LI',\n", " 'LT',\n", " 'LU',\n", " 'LV',\n", " 'MC',\n", " 'MT',\n", " 'MY',\n", " 'NI',\n", " 'NL',\n", " 'NO',\n", " 'NZ',\n", " 'PA',\n", " 'PE',\n", " 'PH',\n", " 'PL',\n", " 'PT',\n", " 'PY',\n", " 'SE',\n", " 'SG',\n", " 'SK',\n", " 'SV',\n", " 'TR',\n", " 'TW',\n", " 'UY'],\n", " 'ctitle': 'wild honey pie',\n", " 'danceability': 0.792,\n", " 'disc_number': 1,\n", " 'duration_ms': 52973,\n", " 'energy': 0.763,\n", " 'explicit': False,\n", " 'external_ids': {'isrc': 'GBAYE0601648'},\n", " 'external_urls': {'spotify': 'https://open.spotify.com/track/2ucFulEWapRAmTn7l6f5Q7'},\n", " 'href': 'https://api.spotify.com/v1/tracks/2ucFulEWapRAmTn7l6f5Q7',\n", " 'id': '2ucFulEWapRAmTn7l6f5Q7',\n", " 'instrumentalness': 0.627,\n", " 'key': 2,\n", " 'liveness': 0.789,\n", " 'loudness': -11.185,\n", " 'lyrical_density': 0.16989787250108546,\n", " 'lyrics': 'honey pie honey pie i love you, honey pie',\n", " 'mode': 1,\n", " 'name': 'Wild Honey Pie - Remastered 2009',\n", " 'original_lyrics': '\\n\\nHoney Pie\\nHoney Pie\\nI love you, Honey Pie\\n\\n',\n", " 'popularity': 41,\n", " 'preview_url': 'https://p.scdn.co/mp3-preview/ddebab4d5e87d46a499ce557405cfadf0330bd9c?cid=null',\n", " 'sentiment': {'label': 'pos',\n", " 'probability': {'neg': 0.39117763475308887,\n", " 'neutral': 0.18873615212514983,\n", " 'pos': 0.6088223652469111}},\n", " 'speechiness': 0.0506,\n", " 'tempo': 89.9,\n", " 'time_signature': 4,\n", " 'track_href': 'https://api.spotify.com/v1/tracks/2ucFulEWapRAmTn7l6f5Q7',\n", " 'track_number': 5,\n", " 'type': 'audio_features',\n", " 'uri': 'spotify:track:2ucFulEWapRAmTn7l6f5Q7',\n", " 'valence': 0.153}" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tracks.find_one({'sentiment': {'$exists': True}})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Analysis\n", "Finally, we can get to the analysis of the data!\n", "\n", "First, what are the lowest-valence songs, and what's the distribution of valences?\n", "\n", "* [Top](#top)" ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
01AVrv7FD10FoKW38oBiKRgRadioheadBloom (Blawan Rmx)0.0325
14rkGGQEqxHIXVJ4oXjOHgFGeorge MartinSea Of Holes - Remastered 20090.0352
201ZpFhrMMqKPVCwyqXneVpRadioheadTrue Love Waits0.0378
353RYTfkLiyZuUZHwJC3WmmRadioheadWe Suck Young Blood0.0378
40ttMfoND7IQqFSMVOPkELCThe BeatlesBlue Jay Way - Remastered 20090.0380
566Pyms4pYaHEcPHZ7DdMbERadioheadTKOL (Altrice Rmx)0.0383
63gKuywOm38axM8sJGq6LaqRadioheadMK 10.0391
775YUnz58ajMo2VIIuUFvOVRadioheadThe Tourist0.0400
80tKuiKb2mazZYdA6fPP7kIRadioheadGood Evening Mrs Magpie (Modeselektor RMX)0.0413
92PbwmAMaxIBIWis8XLViatGeorge MartinSea Of Monsters - Remastered 20090.0422
100COiZ7ncho2yi4HotbzgPvRadioheadMotion Picture Soundtrack0.0425
112uYSbsxAMmK1awUl06T7ixRadioheadMK 20.0437
124gq2bc2770XvbJdEtfUbmwRadioheadGo Slowly0.0453
135olWalQH1oVza5D6xJg4oXRadioheadSail To The Moon0.0458
1449JPfRfsAfjWYRN6lbC3myGeorge MartinPepperland Laid Waste - Remastered 20090.0459
153uxhyRdWVXp7GQvERQl6fARadioheadVideotape0.0468
1629yXMFKIrY1fFY4DYBVZCuRadioheadLife In a Glasshouse0.0516
173cual6JOG286qZJmCxKRATRadioheadTinker Tailor Soldier Sailor Rich Man Poor Man...0.0517
186f6pEjgfTtuRROmJ4a7Gf3RadioheadThe Numbers0.0545
190agoaPIy92gPZ6zRhqXarEThe BeatlesTomorrow Never Knows - Remastered 20090.0556
\n", "
" ], "text/plain": [ " _id artist_name \\\n", "0 1AVrv7FD10FoKW38oBiKRg Radiohead \n", "1 4rkGGQEqxHIXVJ4oXjOHgF George Martin \n", "2 01ZpFhrMMqKPVCwyqXneVp Radiohead \n", "3 53RYTfkLiyZuUZHwJC3Wmm Radiohead \n", "4 0ttMfoND7IQqFSMVOPkELC The Beatles \n", "5 66Pyms4pYaHEcPHZ7DdMbE Radiohead \n", "6 3gKuywOm38axM8sJGq6Laq Radiohead \n", "7 75YUnz58ajMo2VIIuUFvOV Radiohead \n", "8 0tKuiKb2mazZYdA6fPP7kI Radiohead \n", "9 2PbwmAMaxIBIWis8XLViat George Martin \n", "10 0COiZ7ncho2yi4HotbzgPv Radiohead \n", "11 2uYSbsxAMmK1awUl06T7ix Radiohead \n", "12 4gq2bc2770XvbJdEtfUbmw Radiohead \n", "13 5olWalQH1oVza5D6xJg4oX Radiohead \n", "14 49JPfRfsAfjWYRN6lbC3my George Martin \n", "15 3uxhyRdWVXp7GQvERQl6fA Radiohead \n", "16 29yXMFKIrY1fFY4DYBVZCu Radiohead \n", "17 3cual6JOG286qZJmCxKRAT Radiohead \n", "18 6f6pEjgfTtuRROmJ4a7Gf3 Radiohead \n", "19 0agoaPIy92gPZ6zRhqXarE The Beatles \n", "\n", " name valence \n", "0 Bloom (Blawan Rmx) 0.0325 \n", "1 Sea Of Holes - Remastered 2009 0.0352 \n", "2 True Love Waits 0.0378 \n", "3 We Suck Young Blood 0.0378 \n", "4 Blue Jay Way - Remastered 2009 0.0380 \n", "5 TKOL (Altrice Rmx) 0.0383 \n", "6 MK 1 0.0391 \n", "7 The Tourist 0.0400 \n", "8 Good Evening Mrs Magpie (Modeselektor RMX) 0.0413 \n", "9 Sea Of Monsters - Remastered 2009 0.0422 \n", "10 Motion Picture Soundtrack 0.0425 \n", "11 MK 2 0.0437 \n", "12 Go Slowly 0.0453 \n", "13 Sail To The Moon 0.0458 \n", "14 Pepperland Laid Waste - Remastered 2009 0.0459 \n", "15 Videotape 0.0468 \n", "16 Life In a Glasshouse 0.0516 \n", "17 Tinker Tailor Soldier Sailor Rich Man Poor Man... 0.0517 \n", "18 The Numbers 0.0545 \n", "19 Tomorrow Never Knows - Remastered 2009 0.0556 " ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame(list(tracks.find({}, \n", " ['artist_name', 'name', 'valence'], \n", " sort=[('valence', pymongo.ASCENDING)], limit=20)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just the Beatles songs." ] }, { "cell_type": "code", "execution_count": 85, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
1130ttMfoND7IQqFSMVOPkELCThe BeatlesBlue Jay Way - Remastered 20090.0380
1470agoaPIy92gPZ6zRhqXarEThe BeatlesTomorrow Never Knows - Remastered 20090.0556
1096ZrPbHp9kRmQj1tGLvna8UThe BeatlesRevolution 9 - Remastered 20090.0963
10427YZJHyTTDIurMqDu1v2efThe BeatlesLong, Long, Long - Remastered 20090.1350
02ucFulEWapRAmTn7l6f5Q7The BeatlesWild Honey Pie - Remastered 20090.1530
664cLoL5KPfE1hAwfsO84FX7The BeatlesBecause - Remastered 20090.1620
1333ZFBeIyP41HhnALjxWy1pRThe BeatlesA Day In The Life - Remastered 20090.1620
447iABnSNZciNepqGtjMQxxdThe BeatlesCome Together - Remastered 20150.1780
590MKqeOVdZcUFGJvWpGCKbGThe BeatlesCome Together - Remastered 20090.1790
1102tf8ljpWPmXNIFgRVhEuJgThe BeatlesGood Night - Remastered 20090.1920
\n", "
" ], "text/plain": [ " _id artist_name \\\n", "113 0ttMfoND7IQqFSMVOPkELC The Beatles \n", "147 0agoaPIy92gPZ6zRhqXarE The Beatles \n", "109 6ZrPbHp9kRmQj1tGLvna8U The Beatles \n", "104 27YZJHyTTDIurMqDu1v2ef The Beatles \n", "0 2ucFulEWapRAmTn7l6f5Q7 The Beatles \n", "66 4cLoL5KPfE1hAwfsO84FX7 The Beatles \n", "133 3ZFBeIyP41HhnALjxWy1pR The Beatles \n", "44 7iABnSNZciNepqGtjMQxxd The Beatles \n", "59 0MKqeOVdZcUFGJvWpGCKbG The Beatles \n", "110 2tf8ljpWPmXNIFgRVhEuJg The Beatles \n", "\n", " name valence \n", "113 Blue Jay Way - Remastered 2009 0.0380 \n", "147 Tomorrow Never Knows - Remastered 2009 0.0556 \n", "109 Revolution 9 - Remastered 2009 0.0963 \n", "104 Long, Long, Long - Remastered 2009 0.1350 \n", "0 Wild Honey Pie - Remastered 2009 0.1530 \n", "66 Because - Remastered 2009 0.1620 \n", "133 A Day In The Life - Remastered 2009 0.1620 \n", "44 Come Together - Remastered 2015 0.1780 \n", "59 Come Together - Remastered 2009 0.1790 \n", "110 Good Night - Remastered 2009 0.1920 " ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "beatles_df = pd.DataFrame(list(tracks.find({'artist_id': beatles_id}, \n", " ['artist_name', 'name', 'valence'])))\n", "beatles_df.sort_values('valence').head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And plot the valences.." ] }, { "cell_type": "code", "execution_count": 86, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "beatles_df['valence'].hist()" ] }, { "cell_type": "code", "execution_count": 88, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAEACAYAAABMEua6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGiNJREFUeJzt3X+Q5Hdd5/HnO9kYXHPJrITbVQMZSg4NXlEDWkihHt9I\nPGIpFQznGVArw1GWnooU/jhyBbqnl7JgKeOPOrEUMBPuStGLeAEOhEjy4SrkAlaybRITAmiGJeoM\nF0jOpLZMEeftH/2d3cn0p6e//Z3+9vuz/X09qra2vz3d83mme/KZnfd8p8fcHRERWQxnRQeIiMjs\naFMXEVkg2tRFRBaINnURkQWiTV1EZIFoUxcRWSATN3UzO9fMPmlmx83sHjM7Wl9/vZn9TX39XWb2\n/O5zRURkLwcm3cDdnzCzS939pJmdDXzCzP6sfvPPu/v7uk0UEZGmGo1f3P1kffFchp8Itupj6yJK\nRETaabSpm9lZZnYc2ABudve/qN90rZkNzOzXzOyczipFRKQRm+ZlAszsfOBPgdcDX3L3zXozfyfw\nOXe/tptMERFpYuJMfSd3/wcz+zhwubtfV1/3FTO7Hvi53H3MTC8uIyLSgrtPPeJucvbLhWZ2QX35\nq4HLgE+b2ZH6OgNeCdy7R1hRf44ePRrecCY0ldqlJjX1oautJv9S/zrgBjM7i+EngT9y9w+Z2cfM\n7EKG3ywdAD/RumLO1tfXoxNGlNgEZXapqRk1NVdqVxtNTmm8B3hh5vqXdVIkIiKt9fInSldXV6MT\nRpTYBGV2qakZNTVXalcbU5390moBM+96DRGRRWNmeBffKF1EKaXohBElNkGZXWpqRk3NldrVRi83\ndRGRRaXxi4hIgTR+ERGRfm7qJc7PSmyCMrvU1Iyamiu1q41ebuoiIotKM3URkQJppi4iIv3c1Euc\nn5XYBGV2qakZNTVXalcbvdzURUQWlWbqIiIF0kxdRET6uamXOD8rsQnK7FJTM2pqrtSuNnq5qYuI\nLCrN1EVECqSZuoiI9HNTL3F+VmITlNmlpmbU1FypXW30clMXEVlURc3UH330UW688cZOe8Z53vOe\nx0te8pKQtUVEdms7Uy9qU3/729/OW97y3zlw4EWdNu3m/hjnnfcpvvjFB+e6rojIOG039QNdxLTl\n7mxtXc7Jk8c6XikB1Y7jdQ4erLK3nJeUElUV25BTYpeamlFTc6V2tTFxpm5m55rZJ83suJndY2ZH\n6+uXzewOM3vAzP7QzIr6BCEi0keNxi9mdtDdT5rZ2cAngDcAPwvc6O7/08x+Bxi4++9m7tt4/HLs\n2DHe/OaHefLJrv+lvts6T396xcMPr895XRGRvE7PU3f3k/XFcxmObBy4FPiT+vobgB+YdnEREZmt\nRpu6mZ1lZseBDeBm4K+BR919q77JQ8DXd5PYhRQdMKLU82RL7FJTM2pqrtSuNhrNwevN+wVmdj7w\np8AluZuNu//q6irLy8sALC0tsbKycuqbEtsP5vbx1tYJnvqNzFT/Pcvjwa7jjVOtu3vmdRy9/rjj\nwWBQVE9KicFgUFTPTqX0lHpc4sfTTpE9KSXW1tYATu2XbUx9SqOZ/RJwEvhPwBF33zKzFwNH3f17\nM7fXTF1EZEqdzdTN7EIzu6C+/NXAZcB9wK3AD9Y3uxq4adrFRURktprM1L8OuNXMBsAngY+4+4eA\na4CfNbPPAF8LvLu7zFlL0QEjdn8ZWIoSu9TUjJqaK7WrjYkzdXe/B3hh5voHgW/vIkpERNop6mUC\nNFMXERnS66mLiEhfN/UUHTCi1JleiV1qakZNzZXa1UZPN3URkcWkmTqgmbqIlEYzdRER6eumnqID\nRpQ60yuxS03NqKm5Urva6OmmLiKymDRTB2Ads2/h9CsMz9fhwxezsbEesraIlGkhfp1dpOGG3u0n\nuHE2N6d+3kREsno6fknRASNKnemV2KWmZtTUXKldbfR0UxcRWUyaqQOwDjybqPELGF0/DyJyZtF5\n6iIi0tdNPUUHjCh1pldil5qaUVNzpXa10dNNXURkMWmmDmimLiKl0UxdRET6uqmn6IARpc70SuxS\nUzNqaq7UrjZ6uqmLiCwmzdQBzdRFpDSaqYuISF839RQdMKLUmV6JXWpqRk3NldrVxsRN3cwuMrNb\nzOw+M7vHzF5fX3/UzB4ys7vqP5d3nysiInuZOFM3syPAEXcfmNl5wJ3AFcAPAY+5+3UT7q+Z+kSa\nqYvIU3X2euruvgFs1JcfN7P7gW/YXnfaBUVEpDtTzdTNbBlYAT5ZX/VTZjYws3eZ2QUzbutQig4Y\nUepMr8QuNTWjpuZK7Wqj8W8+qkcvNwJvqP/F/g7gV9zdzexa4Drgdbn7rq6usry8DMDS0hIrKytU\nVQWcfjC3j7e2TjDcdKv63qn+e5bHg13HGztqu1ivyXF9tOvxiD4eDAZF9aSUGAwGRfXsVEpPqccl\nfjztFNmTUmJtbQ3g1H7ZRqPz1M3sAPBB4MPu/puZt18MfMDdn595m2bqE2mmLiJP1fV56r8P3Ldz\nQ6+/gbrtSuDeaRcXEZHZanJK43cAPwx8t5kd33H64jEzu9vMBsBLgTd23DpDKTpgxO4vA0tRYpea\nmlFTc6V2tdHk7JdPAGdn3vRns88REZH90Gu/AJqpi0hp9NovIiLS1009RQeMKHWmV2KXmppRU3Ol\ndrXR001dRGQxaaYOaKYuIqXRTF1ERPq6qafogBGlzvRK7FJTM2pqrtSuNnq6qYuILCbN1AHN1EWk\nNJqpi4hIXzf1FB0wotSZXoldampGTc2V2tVGTzd1EZHFpJk6oJm6iJRGM3UREenrpp6iA0aUOtMr\nsUtNzaipuVK72ujppi4ispg0Uwc0UxeR0mimLiIifd3UU3TAiFJneiV2qakZNTVXalcbPd3URUQW\nk2bqgGbqIlIazdRFRKSvm3qKDhhR6kyvxC41NaOm5krtamPipm5mF5nZLWZ2n5ndY2Y/U19/yMw+\namYPmNlHzOyC7nNFRGQvE2fqZnYEOOLuAzM7D7gTuAJ4LfAldz9mZm8CDrn7NZn7a6Y+kWbqIvJU\nnc3U3X3D3Qf15ceB+4GLGG7sN9Q3uwF45bSLi4jIbE01UzezZWAFuAM47O6bMNz4gWfMOq47KTpg\nRKkzvRK71NSMmportauNA01vWI9ebgTe4O6Pm1njecHq6irLy8sALC0tsbKyQlVVwOkHc/t4a+sE\nw023qu+d6r9neTzYdbyxo7aL9SYdn8Oll17KvJ111kG2tk7Ofd1Dhw7z5S8PH/Pdz3+T48FgMNXt\n53G8rZSeUo8Hg0FRPSU9fykl1tbWAE7tl200Ok/dzA4AHwQ+7O6/WV93P1C5+2Y9d7/V3S/J3Fcz\n9YksaO24dfU9BJG9dX2e+u8D921v6LX3A6v15auBm6ZdXEREZqvJKY3fAfww8N1mdtzM7jKzy4G3\nAd9jZg8AlwFv7TZ1llJ0QEaKDhgjRQeMKHH+qaZmSmyCcrvamDhTd/dPAGePefNls80REZH90Gu/\nAJqpz39dzdRF9qbXfhERkb5u6ik6ICNFB4yRogNGlDj/VFMzJTZBuV1t9HRTFxFZTJqpA5qpz39d\nzdRF9qaZuoiI9HVTT9EBGSk6YIwUHTCixPmnmpopsQnK7Wqjp5u6iMhi0kwd0Ex9/utqpi6yN83U\nRUSkr5t6ig7ISNEBY6TogBElzj/V1EyJTVBuVxs93dRFRBaTZuqAZurzX1czdZG9aaYuIiJ93dRT\ndEBGig4YI0UHjChx/qmmZkpsgnK72ujppi4ispg0Uwc0U5//upqpi+xNM3UREenrpp6iAzJSdMAY\nKTpgRInzTzU1U2ITlNvVRk83dRGRxaSZOqCZ+vzX1UxdZG+aqYuISF839RQdkJGiA8ZI0QEjSpx/\nqqmZEpug3K42Jm7qZvZuM9s0s7t3XHfUzB4ys7vqP5d3mykiIk1MnKmb2XcCjwPvcffn19cdBR5z\n9+smLqCZegOaqYvIU3U2U3f324BHcmtOu5iIiHRrPzP1nzKzgZm9y8wumFnRXKTogIwUHTBGig4Y\nUeL8U03NlNgE5Xa1caDl/d4B/Iq7u5ldC1wHvG7cjVdXV1leXgZgaWmJlZUVqqoCTj+Y28dbWycY\nbiRVfe9U/z3L48Gu440dtV2s1+Q4ev1xx4OO3n99tOv5b3I8GAymuv08jvfz39On48FgUFRPSc9f\nSom1tTWAU/tlG43OUzezi4EPbM/Um76tfrtm6hNppi4iT9X1eerGjhm6mR3Z8bYrgXunXVhERGav\nySmNfwDcDjzXzE6Y2WuBY2Z2t5kNgJcCb+y4c8ZSdEBGig4YI0UHjChx/qmmZkpsgnK72pg4U3f3\n12Suvr6DFhER2Se99gugmfr819VMXWRveu0XERHp66aeogMyUnTAGCk6YESJ8081NVNiE5Tb1UZP\nN3URkcWkmTqgmfr819VMXWRvmqmLiEhfN/UUHZCRogPGSNEBI0qcf6qpmRKboNyuNnq6qYuILCbN\n1AHN1OftacATAevC4cMXs7GxHrK2yDTaztTbvkqjyD48QdQn0M1N/RoAWWw9Hb+k6ICMFB0wRooO\nyEjRASNKnMmqqblSu9ro6aYuIrKYNFMHNFPvy7rDtXWOvJwJdJ66iIj0dVNP0QEZKTpgjBQdkJGi\nA0aUOJNVU3OldrXR001dRGQxaaYOaKbel3WHa2umLmcCzdRFRKSvm3qKDshI0QFjpOiAjBQdMKLE\nmayamiu1q42ebuoiIotJM3VAM/W+rDtcWzN1ORNopi4iIn3d1FN0QEaKDhgjRQdkpOiAESXOZNXU\nXKldbUzc1M3s3Wa2aWZ377jukJl91MweMLOPmNkF3WaKiEgTE2fqZvadwOPAe9z9+fV1bwO+5O7H\nzOxNwCF3v2bM/TVTn6hvs23N1EUm6Wym7u63AY/suvoK4Ib68g3AK6ddWEREZq/tTP1fuvsmgLtv\nAM+YXdI8pOiAjBQdMEaKDshI0QEjSpzJqqm5UrvamMtvPlpdXWV5eRmApaUlVlZWqKoKOP1gbh9v\nbZ1g+D9tVd871X/P8niw63hjR20X6zU5jl5/3PGgo/fPhLfvdbz7+Zvm/sOPuXEff22Pd77v3Nuv\numqVzc3PM2+HDh3mfe9778z/e9seDwaD0PXbPn/zOE4psba2BnBqv2yj0XnqZnYx8IEdM/X7gcrd\nN83sCHCru18y5r6aqU/Ut9l2/2bqZnGPtb6HcGbq+jx1q/9sez+wWl++Grhp2oVFRGT2mpzS+AfA\n7cBzzeyEmb0WeCvwPWb2AHBZfXwGSdEBGSk6YIwUHZCRogNGlDmTTdEBI8p8nMrtamPiTN3dXzPm\nTZfNuEVERPZJr/0CaKbel3WHa2umLmeCtjP1uZz9IiJRzq0/oczf4cMXs7GxHrJ2n+m1X4qRogPG\nSNEBGSk6YESZM9kEPMHwK4T5/8mdwlnm41RuVxs93dRFRBaTZuqAZup9WXe4dt9m6n17rBeFXk9d\nRET6uqmn6ICMFB0wRooOyEjRASPKnMmm6IARZT5O5Xa10dNNXURkMfX0lMYqOiCjig4Yo4oOyKii\nA0Zsv0BTWarg9WNOp2xzKmWZz187Pd3URaR726dTztfmZsx5+aXo6fglRQdkpOiAMVJ0QEaKDhhR\n5kw2RQdkpOiArDKfv3Z6uqmLiCymnm7qVXRARhUdMEYVHZBRRQeMKHMmW0UHZFTRAVllPn/t9HRT\nFxFZTD3d1FN0QEaKDhgjRQdkpOiAEWXOZFN0QEaKDsgq8/lrp6ebuojIYurppl5FB2RU0QFjVNEB\nGVV0wIgyZ7JVdEBGFR2QVebz105PN3URkcXU0009RQdkpOiAMVJ0QEaKDhhR5kw2RQdkpOiArDKf\nv3Z6uqmLiCymnm7qVXRARhUdMEYVHZBRRQeMKHMmW0UHZFTRAVllPn/t9HRTFxFZTD3d1FN0QEaK\nDhgjRQdkpOiAEWXOZFN0QEaKDsgq8/lrZ1+v0mhm68D/B7aAr7j7i2YRJSIi7ez3pXe3gMrdH5lF\nzPxU0QEZVXTAGFV0QEYVHTCizJlsFR2QUUUHZJX5/LWz3/GLzeB9iIjIjOx3Q3bgI2b2F2b2Y7MI\nmo8UHZCRogPGSNEBGSk6YESZM9kUHZCRogOyynz+2tnv+OUl7r5hZs8Abjaz+939tt03Wl1dZXl5\nGYClpSVWVlZOfbmz/WBuH29tnWD4xFf1vVP99yyPB7uON3bUdrFek+Po9ccdDzp6/0x4+17Hu5+/\nae4//Jgb9/HX9njn+97r7fN//ravm9d6k467+njafVwfzej5m8dxSom1tTWAU/tlG+Y+m183ZWZH\ngcfc/bpd13vTNY4dO8ab3/wwTz55bCZNza0DzybiV28NWdDafVt3uPasPuanWtX6+VhH/TdHPMez\nZma4+9S/m6/1+MXMDprZefXlrwH+LXBv2/cnIiL7t5+Z+mHgNjM7DtwBfMDdPzqbrK6l6ICMFB0w\nRooOyEjRASPKnMmm6ICMFB2QVebz107rmbq7PwiszLBFRET2qaenI1bRARlVdMAYVXRARhUdMKLM\n85yr6ICMKjogq8znr539nv0icoY5t/6mpchi6um/1FN0QEaKDhgjRQdkpH3c9wmGZ2TM+s+tE94e\nIQWtu5cUHZC1SDP1nm7qIiKLqaebehUdkFFFB4xRRQdkVNEBGVV0QEYVHZBRRQdkLdJMvaebuojI\nYurppp6iAzJSdMAYKTogI0UHZKTogIwUHZCRogOyNFMXEZEi9fSUxio6IKOKDhijig7IqKIDMqro\ngIwqOiCjmsMaMaetHj58MRsb63Nfd7eebuoisri2T1udr83NMn7+oafjlxQdkJGiA8ZI0QEZKTog\nI0UHZKTogIwUHTBGig6YmZ5u6iIii6mnm3oVHZBRRQeMUUUHZFTRARlVdEBGFR2QUUUHjFFFB8xM\nTzd1EZHF1NNNPUUHZKTogDFSdEBGig7ISNEBGSk6ICNFB4yRogNmpqebuojIYurppl5FB2RU0QFj\nVNEBGVV0QEYVHZBRRQdkVNEBY1TRATPT001dRGQx9XRTT9EBGSk6YIwUHZCRogMyUnRARooOyEjR\nAWOk6ICZ6emmLiKymHq6qVfRARlVdMAYVXRARhUdkFFFB2RU0QEZVXTAGFV0wMz0dFMXEVlM+9rU\nzexyM/u0mX3GzN40q6jupeiAjBQdMEaKDshI0QEZKTogI0UHZKTogDFSdMDMtN7Uzews4L8BLwe+\nBXi1mX3zrMK6NYgOyCixCcrsUlMzamqu1K7p7edf6i8CPuvun3f3rwDvBa6YTVbXHo0OyCixCcrs\nUlMzamqu1K7p7WdT/wbgCzuOH6qvExGRIPv5JRm5V4Tf1yvTn3POORw48CccPHj/ft7NRCdPHufg\nwTtPHbuf5LHHOl2ygfXogDHWowMy1qMDMtajAzLWowMy1qMDxliPDpgZc2+3D5vZi4H/4u6X18fX\nAO7ub9t1u/n/ChIRkQXg7lP/OqX9bOpnAw8ALwP+HvgU8Gp37/af2SIiMlbr8Yu7/5OZ/TTwUYaz\n+XdrQxcRidX6X+oiIlKemf1E6aQfRDKzrzKz95rZZ83s/5rZs2a19j6avsvM7jSzr5jZlV33NGx6\no5n9lZkNzOxmM3tmAU0/bmZ3m9lxM/s/8/p5hKY/3GZm/87MtszshdFNZna1mX3RzO6q//yH6Kb6\nNv++/ri6x8z+R3STmV1XfzzdZWYPmNmXC2h6ppndUjcNzOx7C2h6lpn9uZn9Zd329RPfqbvv+w/D\nTw6fAy4GzmF4Jv8377rNfwTeUV/+IeC9s1h7n03PAv41sAZc2WXPFE0vBZ5WX/6JQh6n83ZcfgXw\n4RIeq+024OPA7cALo5uAq4Hf6vrxmbLpOcCdwPn18YXRTbtu/9PAu6KbgN8Ffry+fAnwYAFNfwz8\nSH25At4z6f3O6l/qTX4Q6QrghvryjQy/wdqliU3ufsLd72Wfp2LOuOnj7v6P9eEddH/uf5Omx3cc\nngdsddzUqKv2X4G3AU8U1DT1GQsdN/0Y8Nvu/g8A7v5wAU07vRr4wwKatoDz68tLwN8W0PQ84BYA\nd0+Zt4+Y1abe5AeRTt3G3f8JeNTMvnZG67dtmrdpm14HfLjTooZNZvaTZvY54K3Az3Tc1KjLzFaA\ni9z9Q3PoadRUu7L+8v2PzeyiApqeC3yTmd1mZreb2csLaAKG4wVgmXrjCm76ZeBHzewLwAeB1xfQ\nNABeBVCPiM8zs0N7vdNZbepNfhBp920sc5tZmvkPR81A4yYz+xHgW4G3d1rUsMnd3+HuzwHeBPxi\nx00wocvMDPh14Ocm3GduTbX3A8vuvgJ8jNNfnUY2HWA4gvk3wGuAd5nZ+SP3mm/TtquAG72eL3So\nSdOrgevd/ZnA9wFdf++hSdMvAJWZ3Ql8F8OvHp7c653OalN/iOF8ettFwN/tus0XgGfCqXPcz3f3\nR2a0ftumeWvUZGaXAf8ZeEX9ZVl40w5/BLyy06KhSV3/guELySUzexB4MXBTx98snfhYufsjO56z\ndzL8xNylJs/fQ8BN7r7l7usMf77kXwU3bbuK7kcv0KzpdQxn2Lj7HcDTzOzCyCZ3/3t3f5W7fyvw\nlvq6vX/+fUYD/7M5PfD/KoZfMlyy6zY/yelvlF5F998AnNi047bXA6/qsmeKx+kF9W2+seueKZqe\ns+PyK4BPldC16/a3Ai+IbgKO7Lj8A8DtBTS9HFirL18IfB44FP3cAd8E/E3XH0tTPE7/G7i6vnwJ\n8FABTU/n9Knn1zL8Kf693+8MAy9n+C+AzwLX1Nf9MvD99eVzGX4W/CzDbwAuz+GJnNT0bQy/gngM\n+H/APQU03czwJ3TvAo4D/6uApt8A7q2bPrbX5jrPrl23vYWOz35p+Fj9av1YHa8fq+dGN9XHvwb8\nFfCXwA8W0nQU+NV5fCw1fO4uAW6rN9e7gJcV0PQq4DPAp4HfA86Z9D71w0ciIgtEv85ORGSBaFMX\nEVkg2tRFRBaINnURkQWiTV1EZIFoUxcRWSDa1EVEFog2dRGRBfLPJxAEd5jUAhMAAAAASUVORK5C\nYII=\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": 89, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nke13pqTNkr4j6Yp2z7uNx8VbJH1P0sJs+9x2z7uNtbhT0ieyry+V9Gy7593CevyqpB5JT8zw/fdJ\n+vfs66skba32ms1aqddyIdJ1ktZnX39FE2+wFk3VOrj7ZnevXGGxVcU9t7/Wi9PWSrpD0pGUk0us\nllr8vqS/dveXJcnd9yaeYyq11GJc0sLs6y5JP0k4v6TcfYukfbPscp2ke7N9/0vSIjM7f7bXbFZT\nr+VCpMl93P2YpFEzO6dJ43eKei/IuknSN1o6o/apWovsv5IXuvvXU06sDWo5Lt4q6RIz22Jm3zGz\n9yabXVq11OKzkj5qZs9J+jdJf5pobp1oer1+oioLwWZ98HQtFyJN38dOsM/JruYLssxslaRf1kQc\nU0Sz1sImrvL6gqQbqjynCGo5Lk7VRATzLklLJD1mZm+vrNwLpJZafETSPe7+hex6mA2auL/UXFT3\nRZ7NWqnv1sSBWHGhpOen7fOcpDdJk+e4L3T32f7bcTKqpQ4ys2sk3Sbp/dl/QYuoWi3O0sQvasnM\nnpW0VNKDBX2ztJbjYrekB9193N3LmrgG5OI000uqllrcJOnLkuTuWyWdbmbnpplex9mtrG9mTthT\npmpWU/+upLeY2UVm9jpJH5b00LR9vqZYlV0vaWOTxu4kVetgZu+Q9CVJv+XuL7ZhjqnMWgt3f9nd\n3+Dub3b3X9DE+wvvd/dtbZpvK9Xy+zEo6WpJyhrYxZL+L+ks06ilFj+WdI0kmdmlkk4r8HsM0sRq\nfKb/pT4k6WPS5FX8o+4+MuurNfFd3BWaWF3sknRr9thnJf1m9vVpmvjXd5cmfoG72/3Oc4veza5W\nh29q4grcbZK2Sxps95zbVYtp+25UQc9+qbUWkj4v6QeSdkq6vt1zblctNHHGyxZNnBmzTdK72z3n\nFtbiPk2svI9IGpL0cUmfkPQHU/b5oibOGNpZy+8IFx8BQIHwcXYAUCA0dQAoEJo6ABQITR0ACoSm\nDgAFQlMHgAKhqQNAgdDUAaBA/h+JY+4p63w4GAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "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": 90, "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
883VgxeWOGdUYvtX1j8C9VyVThe BeatlesI'm So Tired - Remastered 20090.8924890.1463020.1075110.6300
626gLmFcRwyQCQT23Df2Re9GThe BeatlesI Want You (She's So Heavy) - Remastered 20090.8826420.0918190.1173580.4160
1076ZrPbHp9kRmQj1tGLvna8UThe BeatlesRevolution 9 - Remastered 20090.8732850.1723220.1267150.0963
1863EbGioQyKyf4dycuiPOg3kThe BeatlesEverybody's Trying To Be My Baby - Remastered ...0.8669850.9143320.1330150.9370
1679QDgDoBbS7pCrOjIH7ByAThe BeatlesEverybody’s Trying To Be My Baby - Live / Bonu...0.8669850.9143320.1330150.6390
534311wT21Et0q3vepFwXjTuThe BeatlesOne After 909 - Remastered 20090.8657370.1584700.1342630.9040
1483QbhVaulXxTyuAxHY3Pa5NThe BeatlesYou Won't See Me - Remastered 20090.8645850.2472260.1354150.4620
1953Aqo28W4LLAolYpN3duVJlThe BeatlesI'll Cry Instead - Remastered 20090.8637720.1605160.1362280.9610
923OSi8ehmSWLTD5KatlzX8rThe BeatlesDon't Pass Me By - Remastered 20090.8578310.1206760.1421690.9480
1343wAOX1N5M0ta3QNsokmhJVThe BeatlesI'm Only Sleeping - Remastered 20090.8576510.2698000.1423490.7000
\n", "
" ], "text/plain": [ " _id artist_name \\\n", "88 3VgxeWOGdUYvtX1j8C9VyV The Beatles \n", "62 6gLmFcRwyQCQT23Df2Re9G The Beatles \n", "107 6ZrPbHp9kRmQj1tGLvna8U The Beatles \n", "186 3EbGioQyKyf4dycuiPOg3k The Beatles \n", "16 79QDgDoBbS7pCrOjIH7ByA The Beatles \n", "53 4311wT21Et0q3vepFwXjTu The Beatles \n", "148 3QbhVaulXxTyuAxHY3Pa5N The Beatles \n", "195 3Aqo28W4LLAolYpN3duVJl The Beatles \n", "92 3OSi8ehmSWLTD5KatlzX8r The Beatles \n", "134 3wAOX1N5M0ta3QNsokmhJV The Beatles \n", "\n", " name neg neutral \\\n", "88 I'm So Tired - Remastered 2009 0.892489 0.146302 \n", "62 I Want You (She's So Heavy) - Remastered 2009 0.882642 0.091819 \n", "107 Revolution 9 - Remastered 2009 0.873285 0.172322 \n", "186 Everybody's Trying To Be My Baby - Remastered ... 0.866985 0.914332 \n", "16 Everybody’s Trying To Be My Baby - Live / Bonu... 0.866985 0.914332 \n", "53 One After 909 - Remastered 2009 0.865737 0.158470 \n", "148 You Won't See Me - Remastered 2009 0.864585 0.247226 \n", "195 I'll Cry Instead - Remastered 2009 0.863772 0.160516 \n", "92 Don't Pass Me By - Remastered 2009 0.857831 0.120676 \n", "134 I'm Only Sleeping - Remastered 2009 0.857651 0.269800 \n", "\n", " pos valence \n", "88 0.107511 0.6300 \n", "62 0.117358 0.4160 \n", "107 0.126715 0.0963 \n", "186 0.133015 0.9370 \n", "16 0.133015 0.6390 \n", "53 0.134263 0.9040 \n", "148 0.135415 0.4620 \n", "195 0.136228 0.9610 \n", "92 0.142169 0.9480 \n", "134 0.142349 0.7000 " ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipeline = [\n", " {'$match': {'lyrics': {'$exists': True}, 'sentiment': {'$exists': True}, 'valence': {'$exists': True},\n", " 'artist_id': beatles_id}},\n", " {'$project': {'artist_name': '$artist_name',\n", " 'name': '$name',\n", " 'valence': '$valence',\n", " 'neg': '$sentiment.probability.neg',\n", " 'neutral': '$sentiment.probability.neutral',\n", " 'pos': '$sentiment.probability.pos'}}\n", "]\n", "beatles_df = pd.DataFrame(list(tracks.aggregate(pipeline)))\n", "beatles_df.sort_values('neg', ascending=False).head(10)" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
10111qDTSr3Dj4TkPnBcIOqEJRadioheadVegetable0.8832910.1703710.1167090.399
4938WL6GlG9NHFiQS6JxV84rRadioheadMyxomatosis0.8649210.2613550.1350790.560
972zYmvi3w2T8a9Ckrv21bvWRadioheadStop Whispering0.8559820.1886000.1440180.279
341w8QCSDH4QobcQeT4uMKLmRadiohead4 Minute Warning0.8548200.5165740.1451800.219
833aDUSpF3LexOr1lFKvPV2hRadioheadThe Bends0.8542440.5338230.1457560.315
10348IEDejXX5LH8TAC3VIGpcRadioheadI Can't0.8497300.2653750.1502700.269
753SVAN3BRByDmHOhKyIDxfCRadioheadKarma Police0.8461290.1004380.1538710.311
894dPKQxaraW6CG1rTBzV6DWRadioheadMy Iron Lung0.8450800.1908630.1549200.643
245SdmtFbNOD7Qej6jFCHkOMRadioheadFaust Arp0.8385320.1677780.1614680.224
4677SPrxY5gn6VPrKPGrfLnMRadioheadThere, There0.8355410.1359510.1644590.726
\n", "
" ], "text/plain": [ " _id artist_name name neg neutral \\\n", "101 11qDTSr3Dj4TkPnBcIOqEJ Radiohead Vegetable 0.883291 0.170371 \n", "49 38WL6GlG9NHFiQS6JxV84r Radiohead Myxomatosis 0.864921 0.261355 \n", "97 2zYmvi3w2T8a9Ckrv21bvW Radiohead Stop Whispering 0.855982 0.188600 \n", "34 1w8QCSDH4QobcQeT4uMKLm Radiohead 4 Minute Warning 0.854820 0.516574 \n", "83 3aDUSpF3LexOr1lFKvPV2h Radiohead The Bends 0.854244 0.533823 \n", "103 48IEDejXX5LH8TAC3VIGpc Radiohead I Can't 0.849730 0.265375 \n", "75 3SVAN3BRByDmHOhKyIDxfC Radiohead Karma Police 0.846129 0.100438 \n", "89 4dPKQxaraW6CG1rTBzV6DW Radiohead My Iron Lung 0.845080 0.190863 \n", "24 5SdmtFbNOD7Qej6jFCHkOM Radiohead Faust Arp 0.838532 0.167778 \n", "46 77SPrxY5gn6VPrKPGrfLnM Radiohead There, There 0.835541 0.135951 \n", "\n", " pos valence \n", "101 0.116709 0.399 \n", "49 0.135079 0.560 \n", "97 0.144018 0.279 \n", "34 0.145180 0.219 \n", "83 0.145756 0.315 \n", "103 0.150270 0.269 \n", "75 0.153871 0.311 \n", "89 0.154920 0.643 \n", "24 0.161468 0.224 \n", "46 0.164459 0.726 " ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipeline = [\n", " {'$match': {'lyrics': {'$exists': True}, 'sentiment': {'$exists': True}, 'valence': {'$exists': True},\n", " 'artist_id': radiohead_id}},\n", " {'$project': {'artist_name': '$artist_name',\n", " 'name': '$name',\n", " 'valence': '$valence',\n", " 'neg': '$sentiment.probability.neg',\n", " 'neutral': '$sentiment.probability.neutral',\n", " 'pos': '$sentiment.probability.pos'}}\n", "]\n", "radiohead_df = pd.DataFrame(list(tracks.aggregate(pipeline)))\n", "radiohead_df.sort_values('neg', ascending=False).head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot the valence/negativity scatter plot, using blue for The Beatles and red for Radiohead.\n", "\n", "If valence and negativity are correlated, I'd expect to see a trend from high negativity/low valence to low negativity/high valence." ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(beatles_df['valence'], beatles_df['neg'], color='blue')\n", "plt.scatter(radiohead_df['valence'], radiohead_df['neg'], color='red')\n", "plt.xlabel('Valence')\n", "plt.ylabel('Sentiment negativity')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Neutrality, I think, is to do with the confidence in the classification." ] }, { "cell_type": "code", "execution_count": 93, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(beatles_df['neutral'], beatles_df['neg'], color='blue')\n", "plt.scatter(radiohead_df['neutral'], radiohead_df['neg'], color='red')\n", "plt.xlabel('Sentiment neutrality')\n", "plt.ylabel('Sentiment negativity')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This plot shows that most songs have a low neutrality, so express a clear sentiment in the lyrics. Let's plot the distribution of \"neutral\" scores to highlight this." ] }, { "cell_type": "code", "execution_count": 95, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nk/SS1tcDkh7t4vq6xt03SHpigV3OlvTN1r4/lrTCzI5f7H47PfDnehPW/kNsZh93f0HSpJkd0+F1\n9UKRLGa7QNIPOrqi3lk0i9Y/UVe6+w3dXFgPFHlc/LqkU8xsg5n9yMze2bXVdVeRLD4v6YNm9oik\n6yV9oktry83+WT2qAheInf60zCJvwtp/H5tjn35Q+A1pZvYBSW/UVMXTjxbMwsxM0pcknb/IMf2g\nyONiuaZqnd+RNCjpP83sddNX/H2kSBbvl3SZu3+p9Z6fyyW9ruMry0/heTJbp6/wt2rqATptpaY+\nUG22RySdKM28hv8l7r7QP2WWqiJZyMzOkHSRpHe3/lnbjxbL4ihN/SVumNlDkk6XdE2fPnFb5HGx\nVdI17r7P3Zuaep/Lq7uzvK4qksUFkr4nSe6+UdKhZvbS7iwvK1vVmpstc86T/XV64P9U0slmdpKZ\nHSLpfZKu3W+f6xRXcudJuqXDa+qVRbMwszdI+rqk97j7zh6ssVsWzMLdn3T349z9Ve7+q5p6PuPd\n7n5Hj9bbSUX+jlwt6e2S1Bpur5b0866usjuKZPGwpDMkycxOlfQrffychmn+f9leK+lD0synG0y6\n+47F7rCjlY7P8yYsM/u8pJ+6+/WSLpX0L2a2RdJOTf1P7jsFs/hbSUdIurJVazzs7uk/47bHCmbx\nokPUp5VOkSzc/UYz+30zu1vS85I+24//Ci74uPispH80s09r6gnc8+e/x6XLzL4tabWkY81sXNLF\nkg7R1MfUfMPdbzCzs8zsQUl7JH240P22XtYDAOhz/BJzAKgIBj4AVAQDHwAqgoEPABXBwAeAimDg\nA0BFMPABoCIY+ABQEf8PYDmDh24027cAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "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": 97, "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
27966cuLvkHsW7dNkfNk6gQP9Radiohead1.5052621.991725A Wolf At the Door0.7933630.3630
50GRplBEB2FWCKutwMmS6nYThe Beatles1.4750371.853118Ticket To Ride - Live / Remastered0.8254390.4050
2525SdmtFbNOD7Qej6jFCHkOMRadiohead1.3989201.411166Faust Arp0.8385320.2240
893VgxeWOGdUYvtX1j8C9VyVThe Beatles1.3936971.708599I'm So Tired - Remastered 20090.8924890.6300
1086ZrPbHp9kRmQj1tGLvna8UThe Beatles1.2703270.874479Revolution 9 - Remastered 20090.8732850.0963
745H9q6ctIlamkqukdTrNt3kThe Beatles1.2615392.616693Her Majesty - Remastered 20090.5566080.4900
3113aDUSpF3LexOr1lFKvPV2hRadiohead1.2397681.100731The Bends0.8542440.3150
240mNQUZEATk2uItMUtiLWK5The Beatles1.2136451.615224A Hard Day's Night - Remastered 20150.8333090.7520
1120ttMfoND7IQqFSMVOPkELCThe Beatles1.2121480.799772Blue Jay Way - Remastered 20090.8124900.0380
1615ou2BiQ9FxIYkxsYvYHpATThe Beatles1.2103781.648037Help! - Remastered 20090.8239150.7610
\n", "
" ], "text/plain": [ " _id artist_name gloom lyrical_density \\\n", "279 66cuLvkHsW7dNkfNk6gQP9 Radiohead 1.505262 1.991725 \n", "5 0GRplBEB2FWCKutwMmS6nY The Beatles 1.475037 1.853118 \n", "252 5SdmtFbNOD7Qej6jFCHkOM Radiohead 1.398920 1.411166 \n", "89 3VgxeWOGdUYvtX1j8C9VyV The Beatles 1.393697 1.708599 \n", "108 6ZrPbHp9kRmQj1tGLvna8U The Beatles 1.270327 0.874479 \n", "74 5H9q6ctIlamkqukdTrNt3k The Beatles 1.261539 2.616693 \n", "311 3aDUSpF3LexOr1lFKvPV2h Radiohead 1.239768 1.100731 \n", "24 0mNQUZEATk2uItMUtiLWK5 The Beatles 1.213645 1.615224 \n", "112 0ttMfoND7IQqFSMVOPkELC The Beatles 1.212148 0.799772 \n", "161 5ou2BiQ9FxIYkxsYvYHpAT The Beatles 1.210378 1.648037 \n", "\n", " name neg valence \n", "279 A Wolf At the Door 0.793363 0.3630 \n", "5 Ticket To Ride - Live / Remastered 0.825439 0.4050 \n", "252 Faust Arp 0.838532 0.2240 \n", "89 I'm So Tired - Remastered 2009 0.892489 0.6300 \n", "108 Revolution 9 - Remastered 2009 0.873285 0.0963 \n", "74 Her Majesty - Remastered 2009 0.556608 0.4900 \n", "311 The Bends 0.854244 0.3150 \n", "24 A Hard Day's Night - Remastered 2015 0.833309 0.7520 \n", "112 Blue Jay Way - Remastered 2009 0.812490 0.0380 \n", "161 Help! - Remastered 2009 0.823915 0.7610 " ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipeline = [\n", " {'$match': {'lyrics': {'$exists': True}, 'sentiment': {'$exists': True}, 'valence': {'$exists': True}}},\n", " {'$project': {'artist_name': '$artist_name',\n", " 'name': '$name',\n", " 'valence': '$valence',\n", " 'neg': '$sentiment.probability.neg',\n", " 'lyrical_density': '$lyrical_density',\n", " 'gloom': {'$divide': [{'$add': [{'$subtract': [1, '$valence']},\n", " {'$multiply': ['$sentiment.probability.neg', \n", " {'$add': ['$lyrical_density', 1]}]}]}, \n", " 2]}}}]\n", "results = pd.DataFrame(list(tracks.aggregate(pipeline)))\n", "results.sort_values('gloom', ascending=False).head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Interestingly, the gloomiest songs seem pretty evenly spread between Radiohead and The Beatles." ] }, { "cell_type": "code", "execution_count": 471, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
6166cuLvkHsW7dNkfNk6gQP9Radiohead1.5052621.991725A Wolf At the Door0.7933630.3630
435SdmtFbNOD7Qej6jFCHkOMRadiohead1.3989201.411166Faust Arp0.8385320.2240
93aDUSpF3LexOr1lFKvPV2hRadiohead1.2397681.100731The Bends0.8542440.3150
340eZN5WsQfmNFICHuw59ZfzRadiohead1.1509020.705463Glass Eyes0.8001950.0629
203ovbSnT5NNhl1gzMcw1NRZRadiohead1.1421151.151468Thinking About You0.7916600.4190
11045sp2JToyTaaKyXkGejPyRadiohead1.0908130.581341Fake Plastic Trees0.8275420.1270
244D6ZExVvYLZxhcAvifX5pxRadiohead1.0740470.749795Prove Yourself0.8150060.2780
134SE81CrzH0qPA8KHqM9SyzRadiohead1.0649140.856048Just0.8091540.3720
44aOAzvRdOsZSwZIgwcdeL0Radiohead1.0638680.524102Let Down0.8258870.1310
2311qDTSr3Dj4TkPnBcIOqEJRadiohead1.0561870.711071Vegetable0.8832910.3990
\n", "
" ], "text/plain": [ " _id artist_name gloom lyrical_density \\\n", "61 66cuLvkHsW7dNkfNk6gQP9 Radiohead 1.505262 1.991725 \n", "43 5SdmtFbNOD7Qej6jFCHkOM Radiohead 1.398920 1.411166 \n", "9 3aDUSpF3LexOr1lFKvPV2h Radiohead 1.239768 1.100731 \n", "34 0eZN5WsQfmNFICHuw59Zfz Radiohead 1.150902 0.705463 \n", "20 3ovbSnT5NNhl1gzMcw1NRZ Radiohead 1.142115 1.151468 \n", "11 045sp2JToyTaaKyXkGejPy Radiohead 1.090813 0.581341 \n", "24 4D6ZExVvYLZxhcAvifX5px Radiohead 1.074047 0.749795 \n", "13 4SE81CrzH0qPA8KHqM9Syz Radiohead 1.064914 0.856048 \n", "4 4aOAzvRdOsZSwZIgwcdeL0 Radiohead 1.063868 0.524102 \n", "23 11qDTSr3Dj4TkPnBcIOqEJ Radiohead 1.056187 0.711071 \n", "\n", " name neg valence \n", "61 A Wolf At the Door 0.793363 0.3630 \n", "43 Faust Arp 0.838532 0.2240 \n", "9 The Bends 0.854244 0.3150 \n", "34 Glass Eyes 0.800195 0.0629 \n", "20 Thinking About You 0.791660 0.4190 \n", "11 Fake Plastic Trees 0.827542 0.1270 \n", "24 Prove Yourself 0.815006 0.2780 \n", "13 Just 0.809154 0.3720 \n", "4 Let Down 0.825887 0.1310 \n", "23 Vegetable 0.883291 0.3990 " ] }, "execution_count": 471, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipeline = [\n", " {'$match': {'lyrics': {'$exists': True}, 'sentiment': {'$exists': True}, 'valence': {'$exists': True},\n", " 'artist_id': radiohead_id}},\n", " {'$project': {'artist_name': '$artist_name',\n", " 'name': '$name',\n", " 'valence': '$valence',\n", " 'neg': '$sentiment.probability.neg',\n", " 'lyrical_density': '$lyrical_density',\n", " 'gloom': {'$divide': [{'$add': [{'$subtract': [1, '$valence']},\n", " {'$multiply': ['$sentiment.probability.neg', \n", " {'$add': ['$lyrical_density', 1]}]}]}, \n", " 2]}}}]\n", "results = pd.DataFrame(list(tracks.aggregate(pipeline)))\n", "results.sort_values('gloom', ascending=False).head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These, in theory, are the most depressing Radiohead songs. For information, the [fitteR happieR songs](http://rcharlie.com/2017-02-16-fitteR-happieR/) were:\n", "\n", " | gloom_index| track_name\n", "--|------------|--------------------------|\n", "1 | 1.00 | True Love Waits\n", "2 | 6.46 | Give Up The Ghost\n", "3 | 9.35 | Motion Picture Soundtrack\n", "4 | 13.70 | Let Down\n", "5 | 14.15 | Pyramid Song\n", "6 | 14.57 | Exit Music (For a Film)\n", "7 | 15.29 | Dollars & Cents\n", "8 | 15.69 | High And Dry\n", "9 | 15.80 | Tinker Tailor Soldier ...\n", "10| 16.03 | Videotape\n", "\n", "...which has only one song in common, \"Let Down\". I'm not convinced by this analysis.\n", "\n", "What does the same analysis say for The Beatles?" ] }, { "cell_type": "code", "execution_count": 98, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.4050
883VgxeWOGdUYvtX1j8C9VyVThe Beatles1.3936971.708599I'm So Tired - Remastered 20090.8924890.6300
1076ZrPbHp9kRmQj1tGLvna8UThe Beatles1.2703270.874479Revolution 9 - Remastered 20090.8732850.0963
735H9q6ctIlamkqukdTrNt3kThe Beatles1.2615392.616693Her Majesty - Remastered 20090.5566080.4900
230mNQUZEATk2uItMUtiLWK5The Beatles1.2136451.615224A Hard Day's Night - Remastered 20150.8333090.7520
1110ttMfoND7IQqFSMVOPkELCThe Beatles1.2121480.799772Blue Jay Way - Remastered 20090.8124900.0380
1605ou2BiQ9FxIYkxsYvYHpATThe Beatles1.2103781.648037Help! - Remastered 20090.8239150.7610
101alcPfZWUHh01l4Fnoo5JtThe Beatles1.2034161.332561Help! - Live / Remastered0.8239150.5150
2202Iccm3cKBQHWt5yk0yX9nhThe Beatles1.2001581.530785Please Please Me - Remastered 20090.8330680.7080
271dfuJYDSIc41cw5RPsaCF1The Beatles1.1874381.651824Help! - Remastered 20150.8239150.8100
\n", "
" ], "text/plain": [ " _id artist_name gloom lyrical_density \\\n", "4 0GRplBEB2FWCKutwMmS6nY The Beatles 1.475037 1.853118 \n", "88 3VgxeWOGdUYvtX1j8C9VyV The Beatles 1.393697 1.708599 \n", "107 6ZrPbHp9kRmQj1tGLvna8U The Beatles 1.270327 0.874479 \n", "73 5H9q6ctIlamkqukdTrNt3k The Beatles 1.261539 2.616693 \n", "23 0mNQUZEATk2uItMUtiLWK5 The Beatles 1.213645 1.615224 \n", "111 0ttMfoND7IQqFSMVOPkELC The Beatles 1.212148 0.799772 \n", "160 5ou2BiQ9FxIYkxsYvYHpAT The Beatles 1.210378 1.648037 \n", "10 1alcPfZWUHh01l4Fnoo5Jt The Beatles 1.203416 1.332561 \n", "220 2Iccm3cKBQHWt5yk0yX9nh The Beatles 1.200158 1.530785 \n", "27 1dfuJYDSIc41cw5RPsaCF1 The Beatles 1.187438 1.651824 \n", "\n", " name neg valence \n", "4 Ticket To Ride - Live / Remastered 0.825439 0.4050 \n", "88 I'm So Tired - Remastered 2009 0.892489 0.6300 \n", "107 Revolution 9 - Remastered 2009 0.873285 0.0963 \n", "73 Her Majesty - Remastered 2009 0.556608 0.4900 \n", "23 A Hard Day's Night - Remastered 2015 0.833309 0.7520 \n", "111 Blue Jay Way - Remastered 2009 0.812490 0.0380 \n", "160 Help! - Remastered 2009 0.823915 0.7610 \n", "10 Help! - Live / Remastered 0.823915 0.5150 \n", "220 Please Please Me - Remastered 2009 0.833068 0.7080 \n", "27 Help! - Remastered 2015 0.823915 0.8100 " ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipeline = [\n", " {'$match': {'lyrics': {'$exists': True}, 'sentiment': {'$exists': True}, 'valence': {'$exists': True},\n", " 'artist_id': beatles_id}},\n", " {'$project': {'artist_name': '$artist_name',\n", " 'name': '$name',\n", " 'valence': '$valence',\n", " 'neg': '$sentiment.probability.neg',\n", " 'lyrical_density': '$lyrical_density',\n", " 'gloom': {'$divide': [{'$add': [{'$subtract': [1, '$valence']},\n", " {'$multiply': ['$sentiment.probability.neg', \n", " {'$add': ['$lyrical_density', 1]}]}]}, \n", " 2]}}}]\n", "results = pd.DataFrame(list(tracks.aggregate(pipeline)))\n", "results.sort_values('gloom', ascending=False).head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Revised gloom index\n", "I don't like the calculation for gloom index. If the point of \"lyrical density\" is to scale the gloom index between valence and sentiment, depending on how many words are in the song. Let's do that weighting properly.\n", "\n", "$$gloom = \\frac{(1 - normedLyricDensity)\\times(1 - valence) + normedLyricDensity \\times negativity }{2}$$\n", "\n", "* [Top](#top)" ] }, { "cell_type": "code", "execution_count": 99, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
2584gq2bc2770XvbJdEtfUbmwRadiohead0.201546Go Slowly0.7237740.04530.0396190.472775
30975YUnz58ajMo2VIIuUFvOVRadiohead0.248061The Tourist0.6678640.04000.0566580.471724
24601ZpFhrMMqKPVCwyqXneVpRadiohead0.218723True Love Waits0.5322060.03780.0459110.471229
2685olWalQH1oVza5D6xJg4oXRadiohead0.216752Sail To The Moon0.6057980.04580.0451890.469228
27253RYTfkLiyZuUZHwJC3WmmRadiohead0.276367We Suck Young Blood0.5353580.03780.0670270.466795
2054sLGaMl33I6mcsk7u4xHAURadiohead0.146307Codex0.6379420.06290.0193850.465650
1120ttMfoND7IQqFSMVOPkELCThe Beatles0.799772Blue Jay Way - Remastered 20090.8124900.03800.2587550.461657
2970COiZ7ncho2yi4HotbzgPvRadiohead0.349157Motion Picture Soundtrack0.5768080.04250.0936900.460916
2563uxhyRdWVXp7GQvERQl6fARadiohead0.382643Videotape0.6529620.04680.1059570.460694
3187wB2VenWR6rchtLwawreIgRadiohead0.359311Bullet Proof ... I Wish I Was0.8046360.07810.0974100.455239
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density \\\n", "258 4gq2bc2770XvbJdEtfUbmw Radiohead 0.201546 \n", "309 75YUnz58ajMo2VIIuUFvOV Radiohead 0.248061 \n", "246 01ZpFhrMMqKPVCwyqXneVp Radiohead 0.218723 \n", "268 5olWalQH1oVza5D6xJg4oX Radiohead 0.216752 \n", "272 53RYTfkLiyZuUZHwJC3Wmm Radiohead 0.276367 \n", "205 4sLGaMl33I6mcsk7u4xHAU Radiohead 0.146307 \n", "112 0ttMfoND7IQqFSMVOPkELC The Beatles 0.799772 \n", "297 0COiZ7ncho2yi4HotbzgPv Radiohead 0.349157 \n", "256 3uxhyRdWVXp7GQvERQl6fA Radiohead 0.382643 \n", "318 7wB2VenWR6rchtLwawreIg Radiohead 0.359311 \n", "\n", " name neg valence scaled_ld gloom \n", "258 Go Slowly 0.723774 0.0453 0.039619 0.472775 \n", "309 The Tourist 0.667864 0.0400 0.056658 0.471724 \n", "246 True Love Waits 0.532206 0.0378 0.045911 0.471229 \n", "268 Sail To The Moon 0.605798 0.0458 0.045189 0.469228 \n", "272 We Suck Young Blood 0.535358 0.0378 0.067027 0.466795 \n", "205 Codex 0.637942 0.0629 0.019385 0.465650 \n", "112 Blue Jay Way - Remastered 2009 0.812490 0.0380 0.258755 0.461657 \n", "297 Motion Picture Soundtrack 0.576808 0.0425 0.093690 0.460916 \n", "256 Videotape 0.652962 0.0468 0.105957 0.460694 \n", "318 Bullet Proof ... I Wish I Was 0.804636 0.0781 0.097410 0.455239 " ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipeline = [\n", " {'$match': {'lyrics': {'$exists': True}, 'sentiment': {'$exists': True}, 'valence': {'$exists': True}}},\n", " {'$project': {'artist_name': '$artist_name',\n", " 'name': '$name',\n", " 'valence': '$valence',\n", " 'neg': '$sentiment.probability.neg',\n", " 'lyrical_density': '$lyrical_density'}}]\n", "results = pd.DataFrame(list(tracks.aggregate(pipeline)))\n", "\n", "# Use pandas to scale the lyrical density values to the range 0 -1\n", "results['scaled_ld'] = (results['lyrical_density'] - results['lyrical_density'].min()) / \\\n", " (results['lyrical_density'].max() - results['lyrical_density'].min())\n", "\n", "# Define a Python function to calculate the revised gloom index\n", "def gloom(row):\n", " w_valence = (1 - row['valence']) * (1 - row['scaled_ld'])\n", " w_neg = row['neg'] * row['scaled_ld']\n", " return (w_valence + w_neg) / 2\n", "\n", "# Apply this function to create a new column\n", "results['gloom'] = results.apply(gloom, axis=1)\n", "\n", "# Push the results back into the database\n", "for row in results.itertuples():\n", " tracks.update_one({'_id': row[1]}, {'$set': {'gloom': row.gloom}})\n", "\n", "results.sort_values('gloom', ascending=False).head(10)" ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
2584gq2bc2770XvbJdEtfUbmwRadiohead0.201546Go Slowly0.7237740.04530.0396190.472775
30975YUnz58ajMo2VIIuUFvOVRadiohead0.248061The Tourist0.6678640.04000.0566580.471724
24601ZpFhrMMqKPVCwyqXneVpRadiohead0.218723True Love Waits0.5322060.03780.0459110.471229
2685olWalQH1oVza5D6xJg4oXRadiohead0.216752Sail To The Moon0.6057980.04580.0451890.469228
27253RYTfkLiyZuUZHwJC3WmmRadiohead0.276367We Suck Young Blood0.5353580.03780.0670270.466795
2054sLGaMl33I6mcsk7u4xHAURadiohead0.146307Codex0.6379420.06290.0193850.465650
2970COiZ7ncho2yi4HotbzgPvRadiohead0.349157Motion Picture Soundtrack0.5768080.04250.0936900.460916
2563uxhyRdWVXp7GQvERQl6fARadiohead0.382643Videotape0.6529620.04680.1059570.460694
3187wB2VenWR6rchtLwawreIgRadiohead0.359311Bullet Proof ... I Wish I Was0.8046360.07810.0974100.455239
2895AiNZnMDCWwujIENPj9PV9Radiohead0.489208Everything In Its Right Place0.7168290.05850.1449920.454462
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density \\\n", "258 4gq2bc2770XvbJdEtfUbmw Radiohead 0.201546 \n", "309 75YUnz58ajMo2VIIuUFvOV Radiohead 0.248061 \n", "246 01ZpFhrMMqKPVCwyqXneVp Radiohead 0.218723 \n", "268 5olWalQH1oVza5D6xJg4oX Radiohead 0.216752 \n", "272 53RYTfkLiyZuUZHwJC3Wmm Radiohead 0.276367 \n", "205 4sLGaMl33I6mcsk7u4xHAU Radiohead 0.146307 \n", "297 0COiZ7ncho2yi4HotbzgPv Radiohead 0.349157 \n", "256 3uxhyRdWVXp7GQvERQl6fA Radiohead 0.382643 \n", "318 7wB2VenWR6rchtLwawreIg Radiohead 0.359311 \n", "289 5AiNZnMDCWwujIENPj9PV9 Radiohead 0.489208 \n", "\n", " name neg valence scaled_ld gloom \n", "258 Go Slowly 0.723774 0.0453 0.039619 0.472775 \n", "309 The Tourist 0.667864 0.0400 0.056658 0.471724 \n", "246 True Love Waits 0.532206 0.0378 0.045911 0.471229 \n", "268 Sail To The Moon 0.605798 0.0458 0.045189 0.469228 \n", "272 We Suck Young Blood 0.535358 0.0378 0.067027 0.466795 \n", "205 Codex 0.637942 0.0629 0.019385 0.465650 \n", "297 Motion Picture Soundtrack 0.576808 0.0425 0.093690 0.460916 \n", "256 Videotape 0.652962 0.0468 0.105957 0.460694 \n", "318 Bullet Proof ... I Wish I Was 0.804636 0.0781 0.097410 0.455239 \n", "289 Everything In Its Right Place 0.716829 0.0585 0.144992 0.454462 " ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results[results['artist_name'] == 'Radiohead'].sort_values('gloom', ascending=False).head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This still isn't the same as the original list, though there are now two songs in common!\n", "\n", "\n", " | gloom_index | track_name\n", "--|-------------|--------------------------\n", "1 | 1.00 | True Love Waits\n", "2 | 6.46 | Give Up The Ghost\n", "3 | 9.35 | Motion Picture Soundtrack\n", "4 | 13.70 | Let Down\n", "5 | 14.15 | Pyramid Song\n", "6 | 14.57 | Exit Music (For a Film)\n", "7 | 15.29 | Dollars & Cents\n", "8 | 15.69 | High And Dry\n", "9 | 15.80 | Tinker Tailor Soldier ...\n", "10| 16.03 | Videotape\n" ] }, { "cell_type": "code", "execution_count": 101, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
1120ttMfoND7IQqFSMVOPkELCThe Beatles0.799772Blue Jay Way - Remastered 20090.8124900.03800.2587550.461657
1086ZrPbHp9kRmQj1tGLvna8UThe Beatles0.874479Revolution 9 - Remastered 20090.8732850.09630.2861210.447499
02ucFulEWapRAmTn7l6f5Q7The Beatles0.169898Wild Honey Pie - Remastered 20090.3911780.15300.0280260.417113
1323ZFBeIyP41HhnALjxWy1pRThe Beatles0.628310A Day In The Life - Remastered 20090.7812960.16200.1959470.413445
1460agoaPIy92gPZ6zRhqXarEThe Beatles0.634931Tomorrow Never Knows - Remastered 20090.3435990.05560.1983720.412609
10327YZJHyTTDIurMqDu1v2efThe Beatles0.429399Long, Long, Long - Remastered 20090.5241220.13500.1230840.411522
654cLoL5KPfE1hAwfsO84FX7The Beatles0.325955Because - Remastered 20090.4662540.16200.0851910.403165
6671Ij3VBYQWMrng61Ae4tBuThe Beatles0.592658You Never Give Me Your Money - Remastered 20090.7534480.22600.1828870.385121
673jPXnX4SskFgAcC4YBKOwNThe Beatles0.273472Sun King - Remastered 20090.3008090.19700.0659660.384936
437iABnSNZciNepqGtjMQxxdThe Beatles0.800176Come Together - Remastered 20150.5625520.17800.2589030.377414
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density \\\n", "112 0ttMfoND7IQqFSMVOPkELC The Beatles 0.799772 \n", "108 6ZrPbHp9kRmQj1tGLvna8U The Beatles 0.874479 \n", "0 2ucFulEWapRAmTn7l6f5Q7 The Beatles 0.169898 \n", "132 3ZFBeIyP41HhnALjxWy1pR The Beatles 0.628310 \n", "146 0agoaPIy92gPZ6zRhqXarE The Beatles 0.634931 \n", "103 27YZJHyTTDIurMqDu1v2ef The Beatles 0.429399 \n", "65 4cLoL5KPfE1hAwfsO84FX7 The Beatles 0.325955 \n", "66 71Ij3VBYQWMrng61Ae4tBu The Beatles 0.592658 \n", "67 3jPXnX4SskFgAcC4YBKOwN The Beatles 0.273472 \n", "43 7iABnSNZciNepqGtjMQxxd The Beatles 0.800176 \n", "\n", " name neg valence \\\n", "112 Blue Jay Way - Remastered 2009 0.812490 0.0380 \n", "108 Revolution 9 - Remastered 2009 0.873285 0.0963 \n", "0 Wild Honey Pie - Remastered 2009 0.391178 0.1530 \n", "132 A Day In The Life - Remastered 2009 0.781296 0.1620 \n", "146 Tomorrow Never Knows - Remastered 2009 0.343599 0.0556 \n", "103 Long, Long, Long - Remastered 2009 0.524122 0.1350 \n", "65 Because - Remastered 2009 0.466254 0.1620 \n", "66 You Never Give Me Your Money - Remastered 2009 0.753448 0.2260 \n", "67 Sun King - Remastered 2009 0.300809 0.1970 \n", "43 Come Together - Remastered 2015 0.562552 0.1780 \n", "\n", " scaled_ld gloom \n", "112 0.258755 0.461657 \n", "108 0.286121 0.447499 \n", "0 0.028026 0.417113 \n", "132 0.195947 0.413445 \n", "146 0.198372 0.412609 \n", "103 0.123084 0.411522 \n", "65 0.085191 0.403165 \n", "66 0.182887 0.385121 \n", "67 0.065966 0.384936 \n", "43 0.258903 0.377414 " ] }, "execution_count": 101, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results[results['artist_name'] == 'The Beatles'].sort_values('gloom', ascending=False).head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I don't know the Radiohead corpus, but I know some Beatles songs. _Blue Jay Way_ is pretty sad, as is _A Day in the Life_. _Revolution 9_ and _Wild Honey Pie_ are just... odd, rather than sad. It's suspicious that some obviously sad Beatles songs are missing. What does this analysis think of unequivocally sad songs like _She's Leaving Home_, _Yesterday_, and _Eleanor Rigby_?" ] }, { "cell_type": "code", "execution_count": 102, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.3340880.359435
1251Ipl1kvks5s6GKn6oqgzeYThe Beatles1.064324She's Leaving Home - Remastered 20090.7645530.3770.3556630.336673
340TRkjwb4uY3CHb5zhr9bBdThe Beatles1.628703Eleanor Rigby - Remastered 20150.8032320.8450.5624010.259783
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density \\\n", "29 63uskN0xLezVg4281wzeQn The Beatles 1.005426 \n", "125 1Ipl1kvks5s6GKn6oqgzeY The Beatles 1.064324 \n", "34 0TRkjwb4uY3CHb5zhr9bBd The Beatles 1.628703 \n", "\n", " name neg valence scaled_ld \\\n", "29 Yesterday - Remastered 2015 0.852156 0.348 0.334088 \n", "125 She's Leaving Home - Remastered 2009 0.764553 0.377 0.355663 \n", "34 Eleanor Rigby - Remastered 2015 0.803232 0.845 0.562401 \n", "\n", " gloom \n", "29 0.359435 \n", "125 0.336673 \n", "34 0.259783 " ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "slh = tracks.find_one({'ctitle': 'shes leaving home'})['_id']\n", "yd = tracks.find_one({'ctitle': 'yesterday'})['_id']\n", "er = tracks.find_one({'ctitle': 'eleanor rigby'})['_id']\n", "results[results['_id'].isin([slh, yd, er])].sort_values('gloom', ascending=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Glee index: anti-gloom\n", "Rather than looking at the saddest songs, how about using the same data to find the happiest songs?\n", "\n", "* [Top](#top)" ] }, { "cell_type": "code", "execution_count": 103, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
843fuEJBCK3kWnJHFTODR4cbThe Beatles1.608806Ob-La-Di, Ob-La-Da - Remastered 20090.0809690.9750.5551120.028035
783TEbDhNDU4NDXq0h86nGZ7The Beatles1.008850Hey Bulldog - Remastered 20090.2391980.9420.3353420.059382
2205VsIn7QQqcacePIb0vO0owThe Beatles0.465201Not A Second Time - Remastered 20090.7738050.9610.1361980.069540
974KIXWIzNcKzorNDgvMQwmDThe Beatles0.631592Birthday - Remastered 20090.3737310.9160.1971490.070560
2107cPPyMrSAQY7A686Cn9eUPThe Beatles0.891649All My Loving - Remastered 20090.2350230.8910.2924110.072925
1873EbGioQyKyf4dycuiPOg3kThe Beatles0.438356Everybody's Trying To Be My Baby - Remastered ...0.8669850.9370.1263650.082298
560cJ053ljI4BuP5P8tJnK5jThe Beatles0.893485For You Blue - Remastered 20090.4718270.9580.2930830.083988
2166xJSJpO6HJwHhu7UaIc8qRThe Beatles0.585885Hold Me Tight - Remastered 20090.8048700.9630.1804060.087764
4872Ob0wrObCXgvGYhFs8vipThe Beatles0.938049Across The Universe - Remastered 20090.2955250.8620.3094080.093370
1416RdvhWyzCULNTHcMbAXwXKThe Beatles0.879719And Your Bird Can Sing - Remastered 20090.5828750.9660.2880410.096049
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density \\\n", "84 3fuEJBCK3kWnJHFTODR4cb The Beatles 1.608806 \n", "78 3TEbDhNDU4NDXq0h86nGZ7 The Beatles 1.008850 \n", "220 5VsIn7QQqcacePIb0vO0ow The Beatles 0.465201 \n", "97 4KIXWIzNcKzorNDgvMQwmD The Beatles 0.631592 \n", "210 7cPPyMrSAQY7A686Cn9eUP The Beatles 0.891649 \n", "187 3EbGioQyKyf4dycuiPOg3k The Beatles 0.438356 \n", "56 0cJ053ljI4BuP5P8tJnK5j The Beatles 0.893485 \n", "216 6xJSJpO6HJwHhu7UaIc8qR The Beatles 0.585885 \n", "48 72Ob0wrObCXgvGYhFs8vip The Beatles 0.938049 \n", "141 6RdvhWyzCULNTHcMbAXwXK The Beatles 0.879719 \n", "\n", " name neg valence \\\n", "84 Ob-La-Di, Ob-La-Da - Remastered 2009 0.080969 0.975 \n", "78 Hey Bulldog - Remastered 2009 0.239198 0.942 \n", "220 Not A Second Time - Remastered 2009 0.773805 0.961 \n", "97 Birthday - Remastered 2009 0.373731 0.916 \n", "210 All My Loving - Remastered 2009 0.235023 0.891 \n", "187 Everybody's Trying To Be My Baby - Remastered ... 0.866985 0.937 \n", "56 For You Blue - Remastered 2009 0.471827 0.958 \n", "216 Hold Me Tight - Remastered 2009 0.804870 0.963 \n", "48 Across The Universe - Remastered 2009 0.295525 0.862 \n", "141 And Your Bird Can Sing - Remastered 2009 0.582875 0.966 \n", "\n", " scaled_ld gloom \n", "84 0.555112 0.028035 \n", "78 0.335342 0.059382 \n", "220 0.136198 0.069540 \n", "97 0.197149 0.070560 \n", "210 0.292411 0.072925 \n", "187 0.126365 0.082298 \n", "56 0.293083 0.083988 \n", "216 0.180406 0.087764 \n", "48 0.309408 0.093370 \n", "141 0.288041 0.096049 " ] }, "execution_count": 103, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results.sort_values('gloom', ascending=True).head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All the top ten most gleeful songs are from The Beatles!\n", "\n", "What about the most gleeful Radiohead songs?" ] }, { "cell_type": "code", "execution_count": 104, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
2476dsq7Nt5mIFzvm5kIYNORyRadiohead0.67427215 Step0.8354880.8480.2127830.148717
27477SPrxY5gn6VPrKPGrfLnMRadiohead0.438813There, There0.8355410.7260.1265320.172527
2696CVdTDYoDbwYj4xn8u5GhaRadiohead0.452573Backdrifts0.8215320.7240.1315730.173889
25515ea10YpJIl3mJq75yzqsDRadiohead0.952216Jigsaw Falling Into Place0.7572250.8180.3145970.181482
2636P67UTTr5qN7XYSSlj0n6XRadiohead0.503609Paperbag Writer0.7546800.7040.1502680.182462
2983OsUjkcv1C1v5udFhgRSFgRadiohead0.329999Airbag0.6423480.6420.0866730.191323
30453aFGAl0Vebwp2bo8wtdWRRadiohead2.019892Fitter Happier0.4468410.7280.7056970.197693
2643STByesnbcQatiGHgwi1TvRadiohead0.622541I Am a Wicked Child0.7637060.6880.1938340.199778
2363pcCifdPTc2BbqmWpEhtUdRadiohead0.439692Burn the Witch0.5826020.6250.1268540.200668
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density \\\n", "1 0eECFDnWy0RdjMmJ8NOeAL Radiohead 0.093389 \n", "247 6dsq7Nt5mIFzvm5kIYNORy Radiohead 0.674272 \n", "274 77SPrxY5gn6VPrKPGrfLnM Radiohead 0.438813 \n", "269 6CVdTDYoDbwYj4xn8u5Gha Radiohead 0.452573 \n", "255 15ea10YpJIl3mJq75yzqsD Radiohead 0.952216 \n", "263 6P67UTTr5qN7XYSSlj0n6X Radiohead 0.503609 \n", "298 3OsUjkcv1C1v5udFhgRSFg Radiohead 0.329999 \n", "304 53aFGAl0Vebwp2bo8wtdWR Radiohead 2.019892 \n", "264 3STByesnbcQatiGHgwi1Tv Radiohead 0.622541 \n", "236 3pcCifdPTc2BbqmWpEhtUd Radiohead 0.439692 \n", "\n", " name neg valence scaled_ld gloom \n", "1 Feral 0.465216 0.751 0.000000 0.124500 \n", "247 15 Step 0.835488 0.848 0.212783 0.148717 \n", "274 There, There 0.835541 0.726 0.126532 0.172527 \n", "269 Backdrifts 0.821532 0.724 0.131573 0.173889 \n", "255 Jigsaw Falling Into Place 0.757225 0.818 0.314597 0.181482 \n", "263 Paperbag Writer 0.754680 0.704 0.150268 0.182462 \n", "298 Airbag 0.642348 0.642 0.086673 0.191323 \n", "304 Fitter Happier 0.446841 0.728 0.705697 0.197693 \n", "264 I Am a Wicked Child 0.763706 0.688 0.193834 0.199778 \n", "236 Burn the Witch 0.582602 0.625 0.126854 0.200668 " ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results[results['artist_name'] == 'Radiohead'].sort_values('gloom', ascending=True).head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Contrasting songs\n", "Going back to the scatter plot of negativity against valence, there are some songs with a high valence (i.e. sound happy) with a high negativity (i.e. sad words). This seems unusual. What songs are they?\n", "\n", "* [Top](#top)\n", "\n", "These are the songs I mean:" ] }, { "cell_type": "code", "execution_count": 105, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(beatles_df['valence'], beatles_df['neg'], color='blue')\n", "plt.scatter(radiohead_df['valence'], radiohead_df['neg'], color='red')\n", "plt.xlabel('Valence')\n", "plt.ylabel('Sentiment negativity')\n", "\n", "ax = plt.gca()\n", "circ = plt.Circle((0.9, 0.8), radius=0.15, color='g', fill=False, linewidth=5)\n", "ax.add_patch(circ)\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 106, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.5213430.202768
281dfuJYDSIc41cw5RPsaCF1The Beatles1.651824Help! - Remastered 20150.8239150.8100.5708700.275942
340TRkjwb4uY3CHb5zhr9bBdThe Beatles1.628703Eleanor Rigby - Remastered 20150.8032320.8450.5624010.259783
4657n1teNb2tkcfiYagPmUWrThe Beatles0.885556Two Of Us - Remastered 20090.7110800.9230.2901790.130498
544311wT21Et0q3vepFwXjTuThe Beatles0.718556One After 909 - Remastered 20090.8657370.9040.2290050.136137
6867jL5ZAf8hNsRZrfBHNuBTThe Beatles1.277562Mean Mr Mustard - Remastered 20090.7006310.9670.4337740.161301
933OSi8ehmSWLTD5KatlzX8rThe Beatles0.733338Don't Pass Me By - Remastered 20090.8578310.9480.2344200.120451
944zExFATo8xg8qFfR4H1ZAnThe Beatles1.364176Why Don't We Do It In The Road? - Remastered 20090.7932420.9510.4655020.197723
13477f3aNeabAbOaSB32Sd5QEThe Beatles1.620131Eleanor Rigby - Remastered 20090.8032320.8210.5592610.264054
16867tvBtAhsfHBFpuqJ13ZUqThe Beatles0.924368Act Naturally - Remastered 20090.7226190.9460.3043960.128762
1701k9tpndMDRwLkNt67Dlg02The Beatles1.408837You Like Me Too Much - Remastered 20090.7734060.9000.4818620.212244
17267VdmhC89bZ6yK2XRys0lAThe Beatles1.087652I've Just Seen A Face - Remastered 20090.8052040.9170.3642080.173016
175009oOX7tpCPLzRL9AFiBS8The Beatles1.242035No Reply - Remastered 20090.7819420.8730.4207610.201287
1765zs8tSd7ZvwBgr4NUmF5zMThe Beatles0.959827I'm A Loser - Remastered 20090.8121140.8430.3173850.182462
1773mKtIanz0poYgLnRxZrfBOThe Beatles1.501767Baby's In Black - Remastered 20090.8200880.8620.5159030.244945
18533BGv6xzxHh5E7v3r1hJLLThe Beatles1.314197I Don't Want To Spoil The Party - Remastered 20090.8178010.8960.4471940.211604
1862YHzfuuDFXzoELxJnqM4atThe Beatles0.626500What You're Doing - Remastered 20090.7519890.8310.1952840.141424
1873EbGioQyKyf4dycuiPOg3kThe Beatles0.438356Everybody's Trying To Be My Baby - Remastered ...0.8669850.9370.1263650.082298
18869d54YOS8TOQiUYjX57XeAThe Beatles1.601816A Hard Day's Night - Remastered 20090.8333090.8020.5525520.274521
1934G5YzDD1nCUPwt5y1LQovFThe Beatles0.901370Tell Me Why - Remastered 20090.8499700.8190.2959720.189498
1947KmRz1oKEwgj9qpfn72OfOThe Beatles1.509096Can't Buy Me Love - Remastered 20090.7383870.8540.5185880.226602
1963Aqo28W4LLAolYpN3duVJlThe Beatles1.349222I'll Cry Instead - Remastered 20090.8637720.9610.4600240.209207
1994dyALlslhDEzwSEr7GteXaThe Beatles1.246021You Can't Do That - Remastered 20090.7274560.9620.4222210.164551
2085tNjuWwp6FxuWCrKQAMBTjThe Beatles0.959614It Won't Be Long - Remastered 20090.7833880.8680.3173070.169345
2091JPTCjLHEtqofOFmHsfiAHThe Beatles1.036117All I've Got To Do - Remastered 20090.7211910.8760.3453310.165114
2110lLeGCsQlAbEjQBPQQxQ1bThe Beatles0.998293Don't Bother Me - Remastered 20090.8248790.9210.3314760.163120
21255nE9EppLFdb0I1HBg2O2mThe Beatles0.695489Little Child - Remastered 20090.8488860.8780.2205550.141159
2145IIBY9M2GxHcVja6DA6wsFThe Beatles1.362221Please Mister Postman - Remastered 20090.8152010.9620.4647860.199616
2166xJSJpO6HJwHhu7UaIc8qRThe Beatles0.585885Hold Me Tight - Remastered 20090.8048700.9630.1804060.087764
2193Ltllbv2lbpjP6NgPMNiFgThe Beatles1.101133Devil In Her Heart - Remastered 20090.7792200.9640.3691470.155179
2205VsIn7QQqcacePIb0vO0owThe Beatles0.465201Not A Second Time - Remastered 20090.7738050.9610.1361980.069540
22333OXG0RTtw0ycGza22tnF6The Beatles1.022599Misery - Remastered 20090.8142300.9020.3403790.170895
2476dsq7Nt5mIFzvm5kIYNORyRadiohead0.67427215 Step0.8354880.8480.2127830.148717
25515ea10YpJIl3mJq75yzqsDRadiohead0.952216Jigsaw Falling Into Place0.7572250.8180.3145970.181482
\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", "93 3OSi8ehmSWLTD5KatlzX8r The Beatles 0.733338 \n", "94 4zExFATo8xg8qFfR4H1ZAn The Beatles 1.364176 \n", "134 77f3aNeabAbOaSB32Sd5QE The Beatles 1.620131 \n", "168 67tvBtAhsfHBFpuqJ13ZUq The Beatles 0.924368 \n", "170 1k9tpndMDRwLkNt67Dlg02 The Beatles 1.408837 \n", "172 67VdmhC89bZ6yK2XRys0lA The Beatles 1.087652 \n", "175 009oOX7tpCPLzRL9AFiBS8 The Beatles 1.242035 \n", "176 5zs8tSd7ZvwBgr4NUmF5zM The Beatles 0.959827 \n", "177 3mKtIanz0poYgLnRxZrfBO The Beatles 1.501767 \n", "185 33BGv6xzxHh5E7v3r1hJLL The Beatles 1.314197 \n", "186 2YHzfuuDFXzoELxJnqM4at The Beatles 0.626500 \n", "187 3EbGioQyKyf4dycuiPOg3k The Beatles 0.438356 \n", "188 69d54YOS8TOQiUYjX57XeA The Beatles 1.601816 \n", "193 4G5YzDD1nCUPwt5y1LQovF The Beatles 0.901370 \n", "194 7KmRz1oKEwgj9qpfn72OfO The Beatles 1.509096 \n", "196 3Aqo28W4LLAolYpN3duVJl The Beatles 1.349222 \n", "199 4dyALlslhDEzwSEr7GteXa The Beatles 1.246021 \n", "208 5tNjuWwp6FxuWCrKQAMBTj The Beatles 0.959614 \n", "209 1JPTCjLHEtqofOFmHsfiAH The Beatles 1.036117 \n", "211 0lLeGCsQlAbEjQBPQQxQ1b The Beatles 0.998293 \n", "212 55nE9EppLFdb0I1HBg2O2m The Beatles 0.695489 \n", "214 5IIBY9M2GxHcVja6DA6wsF The Beatles 1.362221 \n", "216 6xJSJpO6HJwHhu7UaIc8qR The Beatles 0.585885 \n", "219 3Ltllbv2lbpjP6NgPMNiFg The Beatles 1.101133 \n", "220 5VsIn7QQqcacePIb0vO0ow The Beatles 0.465201 \n", "223 33OXG0RTtw0ycGza22tnF6 The Beatles 1.022599 \n", "247 6dsq7Nt5mIFzvm5kIYNORy Radiohead 0.674272 \n", "255 15ea10YpJIl3mJq75yzqsD Radiohead 0.952216 \n", "\n", " name neg valence \\\n", "23 Can't Buy Me Love - Remastered 2015 0.738387 0.957 \n", "28 Help! - Remastered 2015 0.823915 0.810 \n", "34 Eleanor Rigby - Remastered 2015 0.803232 0.845 \n", "46 Two Of Us - Remastered 2009 0.711080 0.923 \n", "54 One After 909 - Remastered 2009 0.865737 0.904 \n", "68 Mean Mr Mustard - Remastered 2009 0.700631 0.967 \n", "93 Don't Pass Me By - Remastered 2009 0.857831 0.948 \n", "94 Why Don't We Do It In The Road? - Remastered 2009 0.793242 0.951 \n", "134 Eleanor Rigby - Remastered 2009 0.803232 0.821 \n", "168 Act Naturally - Remastered 2009 0.722619 0.946 \n", "170 You Like Me Too Much - Remastered 2009 0.773406 0.900 \n", "172 I've Just Seen A Face - Remastered 2009 0.805204 0.917 \n", "175 No Reply - Remastered 2009 0.781942 0.873 \n", "176 I'm A Loser - Remastered 2009 0.812114 0.843 \n", "177 Baby's In Black - Remastered 2009 0.820088 0.862 \n", "185 I Don't Want To Spoil The Party - Remastered 2009 0.817801 0.896 \n", "186 What You're Doing - Remastered 2009 0.751989 0.831 \n", "187 Everybody's Trying To Be My Baby - Remastered ... 0.866985 0.937 \n", "188 A Hard Day's Night - Remastered 2009 0.833309 0.802 \n", "193 Tell Me Why - Remastered 2009 0.849970 0.819 \n", "194 Can't Buy Me Love - Remastered 2009 0.738387 0.854 \n", "196 I'll Cry Instead - Remastered 2009 0.863772 0.961 \n", "199 You Can't Do That - Remastered 2009 0.727456 0.962 \n", "208 It Won't Be Long - Remastered 2009 0.783388 0.868 \n", "209 All I've Got To Do - Remastered 2009 0.721191 0.876 \n", "211 Don't Bother Me - Remastered 2009 0.824879 0.921 \n", "212 Little Child - Remastered 2009 0.848886 0.878 \n", "214 Please Mister Postman - Remastered 2009 0.815201 0.962 \n", "216 Hold Me Tight - Remastered 2009 0.804870 0.963 \n", "219 Devil In Her Heart - Remastered 2009 0.779220 0.964 \n", "220 Not A Second Time - Remastered 2009 0.773805 0.961 \n", "223 Misery - Remastered 2009 0.814230 0.902 \n", "247 15 Step 0.835488 0.848 \n", "255 Jigsaw Falling Into Place 0.757225 0.818 \n", "\n", " scaled_ld gloom \n", "23 0.521343 0.202768 \n", "28 0.570870 0.275942 \n", "34 0.562401 0.259783 \n", "46 0.290179 0.130498 \n", "54 0.229005 0.136137 \n", "68 0.433774 0.161301 \n", "93 0.234420 0.120451 \n", "94 0.465502 0.197723 \n", "134 0.559261 0.264054 \n", "168 0.304396 0.128762 \n", "170 0.481862 0.212244 \n", "172 0.364208 0.173016 \n", "175 0.420761 0.201287 \n", "176 0.317385 0.182462 \n", "177 0.515903 0.244945 \n", "185 0.447194 0.211604 \n", "186 0.195284 0.141424 \n", "187 0.126365 0.082298 \n", "188 0.552552 0.274521 \n", "193 0.295972 0.189498 \n", "194 0.518588 0.226602 \n", "196 0.460024 0.209207 \n", "199 0.422221 0.164551 \n", "208 0.317307 0.169345 \n", "209 0.345331 0.165114 \n", "211 0.331476 0.163120 \n", "212 0.220555 0.141159 \n", "214 0.464786 0.199616 \n", "216 0.180406 0.087764 \n", "219 0.369147 0.155179 \n", "220 0.136198 0.069540 \n", "223 0.340379 0.170895 \n", "247 0.212783 0.148717 \n", "255 0.314597 0.181482 " ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results[(results['valence'] > 0.8) & (results['neg'] > 0.7)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That's interesting. This list contains a lot of the Beatles' most well-known songs. Is there something in this?\n", "\n", "Let's define \"complexity\" as the product of valence and negativity, and see which are the most complext songs." ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
1963Aqo28W4LLAolYpN3duVJlThe Beatles1.349222I'll Cry Instead - Remastered 20090.8637720.9610.4600240.2092070.830085
933OSi8ehmSWLTD5KatlzX8rThe Beatles0.733338Don't Pass Me By - Remastered 20090.8578310.9480.2344200.1204510.813223
1873EbGioQyKyf4dycuiPOg3kThe Beatles0.438356Everybody's Trying To Be My Baby - Remastered ...0.8669850.9370.1263650.0822980.812365
2145IIBY9M2GxHcVja6DA6wsFThe Beatles1.362221Please Mister Postman - Remastered 20090.8152010.9620.4647860.1996160.784223
544311wT21Et0q3vepFwXjTuThe Beatles0.718556One After 909 - Remastered 20090.8657370.9040.2290050.1361370.782626
2166xJSJpO6HJwHhu7UaIc8qRThe Beatles0.585885Hold Me Tight - Remastered 20090.8048700.9630.1804060.0877640.775090
2110lLeGCsQlAbEjQBPQQxQ1bThe Beatles0.998293Don't Bother Me - Remastered 20090.8248790.9210.3314760.1631200.759713
944zExFATo8xg8qFfR4H1ZAnThe Beatles1.364176Why Don't We Do It In The Road? - Remastered 20090.7932420.9510.4655020.1977230.754373
2193Ltllbv2lbpjP6NgPMNiFgThe Beatles1.101133Devil In Her Heart - Remastered 20090.7792200.9640.3691470.1551790.751168
21255nE9EppLFdb0I1HBg2O2mThe Beatles0.695489Little Child - Remastered 20090.8488860.8780.2205550.1411590.745322
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density \\\n", "196 3Aqo28W4LLAolYpN3duVJl The Beatles 1.349222 \n", "93 3OSi8ehmSWLTD5KatlzX8r The Beatles 0.733338 \n", "187 3EbGioQyKyf4dycuiPOg3k The Beatles 0.438356 \n", "214 5IIBY9M2GxHcVja6DA6wsF The Beatles 1.362221 \n", "54 4311wT21Et0q3vepFwXjTu The Beatles 0.718556 \n", "216 6xJSJpO6HJwHhu7UaIc8qR The Beatles 0.585885 \n", "211 0lLeGCsQlAbEjQBPQQxQ1b The Beatles 0.998293 \n", "94 4zExFATo8xg8qFfR4H1ZAn The Beatles 1.364176 \n", "219 3Ltllbv2lbpjP6NgPMNiFg The Beatles 1.101133 \n", "212 55nE9EppLFdb0I1HBg2O2m The Beatles 0.695489 \n", "\n", " name neg valence \\\n", "196 I'll Cry Instead - Remastered 2009 0.863772 0.961 \n", "93 Don't Pass Me By - Remastered 2009 0.857831 0.948 \n", "187 Everybody's Trying To Be My Baby - Remastered ... 0.866985 0.937 \n", "214 Please Mister Postman - Remastered 2009 0.815201 0.962 \n", "54 One After 909 - Remastered 2009 0.865737 0.904 \n", "216 Hold Me Tight - Remastered 2009 0.804870 0.963 \n", "211 Don't Bother Me - Remastered 2009 0.824879 0.921 \n", "94 Why Don't We Do It In The Road? - Remastered 2009 0.793242 0.951 \n", "219 Devil In Her Heart - Remastered 2009 0.779220 0.964 \n", "212 Little Child - Remastered 2009 0.848886 0.878 \n", "\n", " scaled_ld gloom complexity \n", "196 0.460024 0.209207 0.830085 \n", "93 0.234420 0.120451 0.813223 \n", "187 0.126365 0.082298 0.812365 \n", "214 0.464786 0.199616 0.784223 \n", "54 0.229005 0.136137 0.782626 \n", "216 0.180406 0.087764 0.775090 \n", "211 0.331476 0.163120 0.759713 \n", "94 0.465502 0.197723 0.754373 \n", "219 0.369147 0.155179 0.751168 \n", "212 0.220555 0.141159 0.745322 " ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results['complexity'] = results['valence'] * results['neg']\n", "results.sort_values('complexity', ascending=False).head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There's possibly something in it. The most \"complex\" song has a very upbeat pop tune and very sad lyrics. The others are similarly interesting.\n", "\n", "What about the least \"complex\" songs?" ] }, { "cell_type": "code", "execution_count": 108, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
2436f6pEjgfTtuRROmJ4a7Gf3Radiohead0.393192The Numbers0.2920080.05450.1098210.4368660.015914
1460agoaPIy92gPZ6zRhqXarEThe Beatles0.634931Tomorrow Never Knows - Remastered 20090.3435990.05560.1983720.4126090.019104
24601ZpFhrMMqKPVCwyqXneVpRadiohead0.218723True Love Waits0.5322060.03780.0459110.4712290.020117
27253RYTfkLiyZuUZHwJC3WmmRadiohead0.276367We Suck Young Blood0.5353580.03780.0670270.4667950.020237
2970COiZ7ncho2yi4HotbzgPvRadiohead0.349157Motion Picture Soundtrack0.5768080.04250.0936900.4609160.024514
2453cual6JOG286qZJmCxKRATRadiohead0.332577Tinker Tailor Soldier Sailor Rich Man Poor Man...0.4773220.05170.0876170.4535170.024678
30975YUnz58ajMo2VIIuUFvOVRadiohead0.248061The Tourist0.6678640.04000.0566580.4717240.026715
2685olWalQH1oVza5D6xJg4oXRadiohead0.216752Sail To The Moon0.6057980.04580.0451890.4692280.027746
2563uxhyRdWVXp7GQvERQl6fARadiohead0.382643Videotape0.6529620.04680.1059570.4606940.030559
1120ttMfoND7IQqFSMVOPkELCThe Beatles0.799772Blue Jay Way - Remastered 20090.8124900.03800.2587550.4616570.030875
\n", "
" ], "text/plain": [ " _id artist_name lyrical_density \\\n", "243 6f6pEjgfTtuRROmJ4a7Gf3 Radiohead 0.393192 \n", "146 0agoaPIy92gPZ6zRhqXarE The Beatles 0.634931 \n", "246 01ZpFhrMMqKPVCwyqXneVp Radiohead 0.218723 \n", "272 53RYTfkLiyZuUZHwJC3Wmm Radiohead 0.276367 \n", "297 0COiZ7ncho2yi4HotbzgPv Radiohead 0.349157 \n", "245 3cual6JOG286qZJmCxKRAT Radiohead 0.332577 \n", "309 75YUnz58ajMo2VIIuUFvOV Radiohead 0.248061 \n", "268 5olWalQH1oVza5D6xJg4oX Radiohead 0.216752 \n", "256 3uxhyRdWVXp7GQvERQl6fA Radiohead 0.382643 \n", "112 0ttMfoND7IQqFSMVOPkELC The Beatles 0.799772 \n", "\n", " name neg valence \\\n", "243 The Numbers 0.292008 0.0545 \n", "146 Tomorrow Never Knows - Remastered 2009 0.343599 0.0556 \n", "246 True Love Waits 0.532206 0.0378 \n", "272 We Suck Young Blood 0.535358 0.0378 \n", "297 Motion Picture Soundtrack 0.576808 0.0425 \n", "245 Tinker Tailor Soldier Sailor Rich Man Poor Man... 0.477322 0.0517 \n", "309 The Tourist 0.667864 0.0400 \n", "268 Sail To The Moon 0.605798 0.0458 \n", "256 Videotape 0.652962 0.0468 \n", "112 Blue Jay Way - Remastered 2009 0.812490 0.0380 \n", "\n", " scaled_ld gloom complexity \n", "243 0.109821 0.436866 0.015914 \n", "146 0.198372 0.412609 0.019104 \n", "246 0.045911 0.471229 0.020117 \n", "272 0.067027 0.466795 0.020237 \n", "297 0.093690 0.460916 0.024514 \n", "245 0.087617 0.453517 0.024678 \n", "309 0.056658 0.471724 0.026715 \n", "268 0.045189 0.469228 0.027746 \n", "256 0.105957 0.460694 0.030559 \n", "112 0.258755 0.461657 0.030875 " ] }, "execution_count": 108, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results.sort_values('complexity', ascending=True).head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Interestingly, all of the \"complex\" songs are by The Beatles, while most of the least \"complex\" songs are by Radiohead. How true is that for all songs?" ] }, { "cell_type": "code", "execution_count": 109, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 109, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nhfx/+y1eYdT8898AAAAASUVORK5CYII=\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": 110, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [], "source": [ "# Push the results back into the database\n", "for row in results.itertuples():\n", " tracks.update_one({'_id': row[1]}, {'$set': {'complexity': row.complexity}})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Average gloom per album\n", "How close can we easily get to the final plot at the end of the fitteR happieR post?\n", "\n", "First, we find average gloom per album.\n", "\n", "* [Top](#top)" ] }, { "cell_type": "code", "execution_count": 111, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "defaultdict(int,\n", " {'03Qh833fEdVT30Pfs93ea6': 0.24623580565335343,\n", " '0PYyrqs9NXtxPhf0CZkq2L': 0.23500175198141857,\n", " '19K3IHYeVkUTjcBHGfbCOi': 0.22062175593822878,\n", " '19RUXBFyM4PpmrLRdtqWbp': 0.3431302979758603,\n", " '1DBkJIEoeHrTX4WCBQGcCi': 0.28205809775367074,\n", " '1PULmKbHeOqlkIwcDMNwD4': 0.2284613266716491,\n", " '1oW3v5Har9mvXnGk0x4fHm': 0.31375539654482865,\n", " '2Pqkn9Dq2DFtdfkKAeqgMd': 0.2884934384506727,\n", " '2pCqZLeavM2BMovJXsJEIV': 0.2186076399504195,\n", " '36lJLPoPPOKNFddTAcirnc': 0.3821905201779125,\n", " '3OdI6e43crvyAHhaqpxSyz': 0.2121785350158011,\n", " '3nkEsxmIX0zRNXGAexaHAn': 0.15291310732486194,\n", " '47bcKzmKgmMPHXNVOWpLiu': 0.17887638062333686,\n", " '500FEaUzn8lN9zWFyZG5C2': 0.3411762104912795,\n", " '5XfJmldgWzrc1AIdbBaVZn': 0.2506029443837317,\n", " '5ju5Ouzan3QwXqQt1Tihbh': 0.22464122677656365,\n", " '6400dnyeDyD2mIFHfkwHXN': 0.34531516064731943,\n", " '6Eo5EkmdLvZrONzi046iC2': 0.25747581401566805,\n", " '6P9yO0ukhOx3dvmhGKeYoC': 0.2684584850649835,\n", " '6V9YnBmFjWmXCBaUVRCVXP': 0.37361679839282097,\n", " '6vuykQgDLUCiZ7YggIpLM9': 0.3823911679811044,\n", " '71Mwd9tntFQYUk4k2DwA0D': 0.21540669157651762,\n", " '7BgGBZndAvDlKOcwe5rscZ': 0.1751092911259364,\n", " '7dxKtc08dYeRVHt3p9CZJn': 0.35290227411012665,\n", " '7eyQXxuf2nGj9d2367Gi5f': 0.3242377357445757,\n", " '7gDXyW16byCQOgK965BRzn': 0.1772079427962885})" ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipeline = [\n", " {'$match': {'gloom': {'$exists': True}}},\n", " {'$group': {'_id': '$album.id', 'avg_gloom': {'$avg': '$gloom'}}}]\n", "album_glooms = collections.defaultdict(int, {a['_id']: a['avg_gloom'] for a in tracks.aggregate(pipeline)})\n", "album_glooms" ] }, { "cell_type": "code", "execution_count": 112, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.177208
143nkEsxmIX0zRNXGAexaHAnThe BeatlesWith The Beatles (Remastered)1963-11-220.152913
1271Mwd9tntFQYUk4k2DwA0DThe BeatlesA Hard Day's Night (Remastered)1964-07-100.215407
117BgGBZndAvDlKOcwe5rscZThe BeatlesBeatles For Sale (Remastered)1964-12-040.175109
1019K3IHYeVkUTjcBHGfbCOiThe BeatlesHelp! (Remastered)1965-08-060.220622
93OdI6e43crvyAHhaqpxSyzThe BeatlesRubber Soul (Remastered)1965-12-030.212179
80PYyrqs9NXtxPhf0CZkq2LThe BeatlesRevolver (Remastered)1966-08-050.235002
71PULmKbHeOqlkIwcDMNwD4The BeatlesSgt. Pepper's Lonely Hearts Club Band (Remaste...1967-06-010.228461
66P9yO0ukhOx3dvmhGKeYoCThe BeatlesMagical Mystery Tour (Remastered)1967-11-270.268458
503Qh833fEdVT30Pfs93ea6The BeatlesThe Beatles (Remastered)1968-11-220.246236
447bcKzmKgmMPHXNVOWpLiuThe BeatlesYellow Submarine (Remastered)1969-01-170.178876
32Pqkn9Dq2DFtdfkKAeqgMdThe BeatlesAbbey Road (Remastered)1969-09-260.288493
22pCqZLeavM2BMovJXsJEIVThe BeatlesLet It Be (Remastered)1970-05-080.218608
276400dnyeDyD2mIFHfkwHXNRadioheadPablo Honey1993-02-220.345315
26500FEaUzn8lN9zWFyZG5C2RadioheadThe Bends1995-03-280.341176
257dxKtc08dYeRVHt3p9CZJnRadioheadOK Computer1997-05-280.352902
2419RUXBFyM4PpmrLRdtqWbpRadioheadKid A2000-10-010.343130
15ju5Ouzan3QwXqQt1TihbhThe Beatles1 (Remastered)2000-11-130.224641
226svTt5o2lUgIrgYDKVmdnDRadioheadI Might Be Wrong2001-01-010.000000
236V9YnBmFjWmXCBaUVRCVXPRadioheadAmnesiac2001-03-120.373617
211oW3v5Har9mvXnGk0x4fHmRadioheadHail To the Thief2003-01-010.313755
206Eo5EkmdLvZrONzi046iC2RadioheadCom Lag: 2+2=52004-03-240.257476
1936lJLPoPPOKNFddTAcirncRadioheadIn Rainbows Disk 22007-01-010.382191
187eyQXxuf2nGj9d2367Gi5fRadioheadIn Rainbows2007-12-280.324238
131DBkJIEoeHrTX4WCBQGcCiRadioheadThe King Of Limbs2011-02-180.282058
1747xaqCsJcYFWqD1gwujl1TRadioheadTKOL RMX 12345672011-10-100.000000
166vuykQgDLUCiZ7YggIpLM9RadioheadA Moon Shaped Pool2016-05-080.382391
05XfJmldgWzrc1AIdbBaVZnThe BeatlesLive At The Hollywood Bowl2016-09-090.250603
\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", "27 6400dnyeDyD2mIFHfkwHXN Radiohead \n", "26 500FEaUzn8lN9zWFyZG5C2 Radiohead \n", "25 7dxKtc08dYeRVHt3p9CZJn Radiohead \n", "24 19RUXBFyM4PpmrLRdtqWbp Radiohead \n", "1 5ju5Ouzan3QwXqQt1Tihbh The Beatles \n", "22 6svTt5o2lUgIrgYDKVmdnD Radiohead \n", "23 6V9YnBmFjWmXCBaUVRCVXP Radiohead \n", "21 1oW3v5Har9mvXnGk0x4fHm Radiohead \n", "20 6Eo5EkmdLvZrONzi046iC2 Radiohead \n", "19 36lJLPoPPOKNFddTAcirnc Radiohead \n", "18 7eyQXxuf2nGj9d2367Gi5f Radiohead \n", "13 1DBkJIEoeHrTX4WCBQGcCi Radiohead \n", "17 47xaqCsJcYFWqD1gwujl1T Radiohead \n", "16 6vuykQgDLUCiZ7YggIpLM9 Radiohead \n", "0 5XfJmldgWzrc1AIdbBaVZn The Beatles \n", "\n", " name release_date gloom \n", "15 Please Please Me (Remastered) 1963-03-22 0.177208 \n", "14 With The Beatles (Remastered) 1963-11-22 0.152913 \n", "12 A Hard Day's Night (Remastered) 1964-07-10 0.215407 \n", "11 Beatles For Sale (Remastered) 1964-12-04 0.175109 \n", "10 Help! (Remastered) 1965-08-06 0.220622 \n", "9 Rubber Soul (Remastered) 1965-12-03 0.212179 \n", "8 Revolver (Remastered) 1966-08-05 0.235002 \n", "7 Sgt. Pepper's Lonely Hearts Club Band (Remaste... 1967-06-01 0.228461 \n", "6 Magical Mystery Tour (Remastered) 1967-11-27 0.268458 \n", "5 The Beatles (Remastered) 1968-11-22 0.246236 \n", "4 Yellow Submarine (Remastered) 1969-01-17 0.178876 \n", "3 Abbey Road (Remastered) 1969-09-26 0.288493 \n", "2 Let It Be (Remastered) 1970-05-08 0.218608 \n", "27 Pablo Honey 1993-02-22 0.345315 \n", "26 The Bends 1995-03-28 0.341176 \n", "25 OK Computer 1997-05-28 0.352902 \n", "24 Kid A 2000-10-01 0.343130 \n", "1 1 (Remastered) 2000-11-13 0.224641 \n", "22 I Might Be Wrong 2001-01-01 0.000000 \n", "23 Amnesiac 2001-03-12 0.373617 \n", "21 Hail To the Thief 2003-01-01 0.313755 \n", "20 Com Lag: 2+2=5 2004-03-24 0.257476 \n", "19 In Rainbows Disk 2 2007-01-01 0.382191 \n", "18 In Rainbows 2007-12-28 0.324238 \n", "13 The King Of Limbs 2011-02-18 0.282058 \n", "17 TKOL RMX 1234567 2011-10-10 0.000000 \n", "16 A Moon Shaped Pool 2016-05-08 0.382391 \n", "0 Live At The Hollywood Bowl 2016-09-09 0.250603 " ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ "albums_df = pd.DataFrame(list(albums.find({}, ['release_date', 'name', 'artist_name'])))\n", "\n", "def try_date(d):\n", " try:\n", " return datetime.strptime(d, \"%Y-%m-%d\")\n", " except ValueError:\n", " return datetime.strptime(d, \"%Y\")\n", "\n", "albums_df['release_date'] = albums_df['release_date'].apply(lambda d: try_date(d))\n", "albums_df['gloom'] = albums_df['_id'].apply(lambda i: album_glooms[i])\n", "albums_df.sort_values('release_date', inplace=True)\n", "albums_df" ] }, { "cell_type": "code", "execution_count": 113, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\ng/4/Jzf7buWu9R8AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot_date(albums_df['release_date'], albums_df['gloom'])\n", "\n", "fig.autofmt_xdate()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One thing that's noticable is the split in time between the groups, and the much shorter period the Beatles were active for." ] }, { "cell_type": "code", "execution_count": 114, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.177208
143nkEsxmIX0zRNXGAexaHAnThe BeatlesWith The Beatles (Remastered)1963-11-220.152913
1271Mwd9tntFQYUk4k2DwA0DThe BeatlesA Hard Day's Night (Remastered)1964-07-100.215407
117BgGBZndAvDlKOcwe5rscZThe BeatlesBeatles For Sale (Remastered)1964-12-040.175109
1019K3IHYeVkUTjcBHGfbCOiThe BeatlesHelp! (Remastered)1965-08-060.220622
93OdI6e43crvyAHhaqpxSyzThe BeatlesRubber Soul (Remastered)1965-12-030.212179
80PYyrqs9NXtxPhf0CZkq2LThe BeatlesRevolver (Remastered)1966-08-050.235002
71PULmKbHeOqlkIwcDMNwD4The BeatlesSgt. Pepper's Lonely Hearts Club Band (Remaste...1967-06-010.228461
66P9yO0ukhOx3dvmhGKeYoCThe BeatlesMagical Mystery Tour (Remastered)1967-11-270.268458
503Qh833fEdVT30Pfs93ea6The BeatlesThe Beatles (Remastered)1968-11-220.246236
447bcKzmKgmMPHXNVOWpLiuThe BeatlesYellow Submarine (Remastered)1969-01-170.178876
32Pqkn9Dq2DFtdfkKAeqgMdThe BeatlesAbbey Road (Remastered)1969-09-260.288493
22pCqZLeavM2BMovJXsJEIVThe BeatlesLet It Be (Remastered)1970-05-080.218608
\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.177208 \n", "14 With The Beatles (Remastered) 1963-11-22 0.152913 \n", "12 A Hard Day's Night (Remastered) 1964-07-10 0.215407 \n", "11 Beatles For Sale (Remastered) 1964-12-04 0.175109 \n", "10 Help! (Remastered) 1965-08-06 0.220622 \n", "9 Rubber Soul (Remastered) 1965-12-03 0.212179 \n", "8 Revolver (Remastered) 1966-08-05 0.235002 \n", "7 Sgt. Pepper's Lonely Hearts Club Band (Remaste... 1967-06-01 0.228461 \n", "6 Magical Mystery Tour (Remastered) 1967-11-27 0.268458 \n", "5 The Beatles (Remastered) 1968-11-22 0.246236 \n", "4 Yellow Submarine (Remastered) 1969-01-17 0.178876 \n", "3 Abbey Road (Remastered) 1969-09-26 0.288493 \n", "2 Let It Be (Remastered) 1970-05-08 0.218608 " ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "beatles_df = albums_df[albums_df['release_date'] < datetime(1971, 1, 1)]\n", "beatles_df" ] }, { "cell_type": "code", "execution_count": 115, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\noB8AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot_date(beatles_df['release_date'].values, beatles_df['gloom'].values, linestyle='-')\n", "\n", "fig.autofmt_xdate()\n", "\n", "for a in beatles_df.itertuples():\n", " for t in tracks.find({'album.id': a[1], 'gloom': {'$exists': True}}):\n", " ax.scatter(a.release_date, t['gloom'])\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 116, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.345315
26500FEaUzn8lN9zWFyZG5C2RadioheadThe Bends1995-03-280.341176
257dxKtc08dYeRVHt3p9CZJnRadioheadOK Computer1997-05-280.352902
2419RUXBFyM4PpmrLRdtqWbpRadioheadKid A2000-10-010.343130
236V9YnBmFjWmXCBaUVRCVXPRadioheadAmnesiac2001-03-120.373617
211oW3v5Har9mvXnGk0x4fHmRadioheadHail To the Thief2003-01-010.313755
206Eo5EkmdLvZrONzi046iC2RadioheadCom Lag: 2+2=52004-03-240.257476
1936lJLPoPPOKNFddTAcirncRadioheadIn Rainbows Disk 22007-01-010.382191
187eyQXxuf2nGj9d2367Gi5fRadioheadIn Rainbows2007-12-280.324238
131DBkJIEoeHrTX4WCBQGcCiRadioheadThe King Of Limbs2011-02-180.282058
166vuykQgDLUCiZ7YggIpLM9RadioheadA Moon Shaped Pool2016-05-080.382391
\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", "24 19RUXBFyM4PpmrLRdtqWbp Radiohead Kid A 2000-10-01 \n", "23 6V9YnBmFjWmXCBaUVRCVXP Radiohead Amnesiac 2001-03-12 \n", "21 1oW3v5Har9mvXnGk0x4fHm Radiohead Hail To the Thief 2003-01-01 \n", "20 6Eo5EkmdLvZrONzi046iC2 Radiohead Com Lag: 2+2=5 2004-03-24 \n", "19 36lJLPoPPOKNFddTAcirnc Radiohead In Rainbows Disk 2 2007-01-01 \n", "18 7eyQXxuf2nGj9d2367Gi5f Radiohead In Rainbows 2007-12-28 \n", "13 1DBkJIEoeHrTX4WCBQGcCi Radiohead The King Of Limbs 2011-02-18 \n", "16 6vuykQgDLUCiZ7YggIpLM9 Radiohead A Moon Shaped Pool 2016-05-08 \n", "\n", " gloom \n", "27 0.345315 \n", "26 0.341176 \n", "25 0.352902 \n", "24 0.343130 \n", "23 0.373617 \n", "21 0.313755 \n", "20 0.257476 \n", "19 0.382191 \n", "18 0.324238 \n", "13 0.282058 \n", "16 0.382391 " ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ "radiohead_df = albums_df[(albums_df['artist_name'] == 'Radiohead') & (albums_df['gloom'] > 0)]\n", "radiohead_df" ] }, { "cell_type": "code", "execution_count": 117, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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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['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": 118, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "defaultdict(int,\n", " {'03Qh833fEdVT30Pfs93ea6': 0.3031378075765009,\n", " '0PYyrqs9NXtxPhf0CZkq2L': 0.3955461017790891,\n", " '19K3IHYeVkUTjcBHGfbCOi': 0.49267873060230916,\n", " '19RUXBFyM4PpmrLRdtqWbp': 0.19682403824100217,\n", " '1DBkJIEoeHrTX4WCBQGcCi': 0.23682091199666255,\n", " '1PULmKbHeOqlkIwcDMNwD4': 0.33137519763673373,\n", " '1oW3v5Har9mvXnGk0x4fHm': 0.29898400325001767,\n", " '2Pqkn9Dq2DFtdfkKAeqgMd': 0.28015413095314634,\n", " '2pCqZLeavM2BMovJXsJEIV': 0.354664325706374,\n", " '36lJLPoPPOKNFddTAcirnc': 0.1704162869852709,\n", " '3OdI6e43crvyAHhaqpxSyz': 0.44772169900647624,\n", " '3nkEsxmIX0zRNXGAexaHAn': 0.5849736696540723,\n", " '47bcKzmKgmMPHXNVOWpLiu': 0.2953681657492741,\n", " '500FEaUzn8lN9zWFyZG5C2': 0.23613033343466053,\n", " '5XfJmldgWzrc1AIdbBaVZn': 0.3884655768099993,\n", " '5ju5Ouzan3QwXqQt1Tihbh': 0.4001232105218359,\n", " '6400dnyeDyD2mIFHfkwHXN': 0.22536295726702718,\n", " '6Eo5EkmdLvZrONzi046iC2': 0.3776567485151355,\n", " '6P9yO0ukhOx3dvmhGKeYoC': 0.2752720160835255,\n", " '6V9YnBmFjWmXCBaUVRCVXP': 0.1561887159181926,\n", " '6vuykQgDLUCiZ7YggIpLM9': 0.12056755508379578,\n", " '71Mwd9tntFQYUk4k2DwA0D': 0.5490106468656754,\n", " '7BgGBZndAvDlKOcwe5rscZ': 0.5087387310808495,\n", " '7dxKtc08dYeRVHt3p9CZJn': 0.16146444373155444,\n", " '7eyQXxuf2nGj9d2367Gi5f': 0.2913466657800584,\n", " '7gDXyW16byCQOgK965BRzn': 0.4732550728695838})" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pipeline = [\n", " {'$match': {'gloom': {'$exists': True}}},\n", " {'$group': {'_id': '$album.id', 'avg_complexity': {'$avg': '$complexity'}}}]\n", "album_complexities = collections.defaultdict(int, {a['_id']: a['avg_complexity'] for a in tracks.aggregate(pipeline)})\n", "album_complexities" ] }, { "cell_type": "code", "execution_count": 119, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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.1772080.473255
143nkEsxmIX0zRNXGAexaHAnThe BeatlesWith The Beatles (Remastered)1963-11-220.1529130.584974
1271Mwd9tntFQYUk4k2DwA0DThe BeatlesA Hard Day's Night (Remastered)1964-07-100.2154070.549011
117BgGBZndAvDlKOcwe5rscZThe BeatlesBeatles For Sale (Remastered)1964-12-040.1751090.508739
1019K3IHYeVkUTjcBHGfbCOiThe BeatlesHelp! (Remastered)1965-08-060.2206220.492679
\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.177208 0.473255 \n", "14 1963-11-22 0.152913 0.584974 \n", "12 1964-07-10 0.215407 0.549011 \n", "11 1964-12-04 0.175109 0.508739 \n", "10 1965-08-06 0.220622 0.492679 " ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" } ], "source": [ "albums_df['complexity'] = albums_df['_id'].apply(lambda i: album_complexities[i])\n", "beatles_df = albums_df[albums_df['release_date'] < datetime(1971, 1, 1)]\n", "radiohead_df = albums_df[(albums_df['artist_name'] == 'Radiohead') & (albums_df['gloom'] > 0)]\n", "albums_df.head()" ] }, { "cell_type": "code", "execution_count": 120, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n0gWkfWoAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot_date(beatles_df['release_date'].values, beatles_df['complexity'].values, linestyle='-')\n", "\n", "fig.autofmt_xdate()\n", "\n", "for a in beatles_df.itertuples():\n", " for t in tracks.find({'album.id': a[1], 'complexity': {'$exists': True}}):\n", " ax.scatter(a.release_date, t['complexity'])\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 121, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nP7ZvV332WXcTGznSjePSS1WfeUZ127aPt7en0d3x+6ZXMEo+yMfBtWubdNq0Oq2qul6nTavbGaqW\nS6KQRjlXFltbm+q//qvqD37g00AD5I03VPfbz4Uw+sm8eW6lbb5JuHVuvtm5dQYOVD3zzN3dOps2\nbdI+fQYpfEPheoVvaJ8+g0J9LueShoYGLSs7YrebXlnZJzO+6RWEkg/ycXDt2iYdNSp9THIhkyuL\n7brrVCdP7trtEeab4HPPOUX/xhv+HK+93UXwPPusP8fzk85unQkTVK++ukkHD75kt2tm6NCLC/aa\n8TtCryCU/C7lskJhnsIK3x8HW1udy2DyZMsTko5cTEr/9req+++v+tZb6dtEYVLvppuc62b79uyP\n9YtfqB51VPgnn7dvV128WPWww+yaScZZ8iMVBitUKgzW0tKKnFjysSnkXVFRwebNK4AzcUkxb+H9\n99d1WeNVFbZsgbff3n3btCn1vm3b3PL1997LX9bDsFNeXk5t7Ze4664vAAcBb1Bb+9WMw+VaWuD8\n8114YLpFOlEpdD5rFjz/PHzzm3DHHZkfRxVuvhn+/d/Dn5qgpAQmTYIDDuhgzZqPXzMNDR288w7s\ns09ehpc3dq9J7bKGikzNSU3q2Cj5l156GVc44hF2FY74Krff/jpDh5anVdwiTnkktn33dX8/8QkX\nF5y8b9Ag13769F48+ujH84QUFcWmLnrGtLS0MHfuw8BSEjH9c+dWc/313+mxwlWFL38Zpk+HE05I\n3y4qqZ979XJJzI46yhUZOffczI7zu9/BBx+4PDlRIV1unba2XowaBZMnQ20tHH98/tI1B0kiyWFt\n7dTdVujn5HxNZ+LnYyMLd82ECeenfBwcPPgavfRS1TlzVO+9V/WXv1T9y19UX38980LMqXzyQ4de\nrfvv36Q1Narr12csRuTx0yf/n//pwvR27Oi6XdTC85Yvd6t1X301s+8ff7zqT3/q65ByTlfzWO++\nq3r33arjxrkoneuvV123Lt8jDgaLk+8BRx99dScF77ajj74642N2RSK6prp6V3TN1q1ugnCffVwU\niB++16jhl8L9619Vy8tV167tXvsohZiqusiTMWNU33+/Z99raFA96KBonluprpnOLF+uetll7hqa\nOFH1sccsgVp3yLmSx/lJVgFrgFkpPr8Sl2v+JeBZ4KA0x8lYyDAVTXjtNdUvfMFdxGGMfsg12Src\n999XPeQQt2K0J4Q5uiYVX/mK6tln92zy9IwzXKbLuNPa6n7/SZOcwp85U/XFF/M9qvCSUyWPqxOb\nqAxV7CnyMZ3aHAuUeq8vwRUW8VXJNzYuUzhzt8dBOFMbG5dlfMxs6OhQfeIJt1Bk6tTMk0dFlWwU\n7pe+pFpbm4NBhYzWVueiuP327rVfscItBtu6NbfjChtNTap1daojRrg0znfdldtUEVGkKyXvx0zh\n0cBrqtqsqm3AAuC0Tn7/36vqNu/tUmCYD/3uhmo7/fuvAW4DZgO30a/falzhquARcUmdXn0VjjgC\nxo2Dm26C7dvzMpxAWbeumSuvvIdvfetJrrzynh4VlH74YfjrX7OLPokKpaXw+OPuvPjznz/+eUtL\nC42NjTurm916K1x2GfTtG/BA88yIETB7Nqxd6/4Hf/wjjBwJ550Hv/0tdFhQW9ek0/7d3YCpwH8l\nvZ8O3NlF+x8D307zWcZ3snxMvvXEWl27VvX0050b4qmncjakvJPNQrHVq92E5CuvBDDQEPHkk6rD\nhu2+DqBz3P+ddz6he+9tFmyCd95xeXuOPFK1osIFVhTa03Iy5Nhd88UUSv6ONG2nA38BitN8rrNn\nz965LVmypEeCBjn5lunim6efVj30UNVTT+3+pGJUaG9XPfXUzOZGtm1zj+J33x3QYEPGd76jWl3t\n0jekWlBWVHSvzpixZz9N1OYlsqWjQ3XZMlflavBgtyp64cLU+XPixJIlS3bTlblW8hOAZ5LeX0vq\nydeJuMnXfbo4VtbCB3GSZ/vUsG2bW/24zz6qs2cHXyrOD7ZsUX3+eReW+vWvu7wye+2lWlJyfcoo\np+rq67s83hVXuEnFsK/gzBUffeSiSa69NrEa8mBvNeQ4hUMV/qm/+c3yLo8RhVW/ueTDD1UffdTl\n8xkyxJU6fPnlfI8qGLpS8n745BuBQ0RkhIiUAOcCTyQ3EJFK4F7gVFV9x4c+80pi8Y1b7APJi2+6\nQ58+brXiiy86n/3hh8MTTzh1GDZUobnZje+GG+CLX4TDDoPycrj0Uld6b/Ro+P73oakJzjorsegl\nma0ccED6U+03v4Ff/MKVy8tmBWdnH3aUKCqCxx6DRx+FF17Yj9bWN4ElwDLgj8DPGTkyfcWO5FW/\nmzcvo7V1CbW1MyL5v8iUsrJdfvoXXoC99nLlDMePh3vvhc2b8z3CPJFO+/dkw4VQrgZeA6719s0B\nTvZePwu8CbwILAd+leY4Wd3NgrJk/Pb/P/usC7c88UTVNWt8HmwP+PBDF4d9//0uZO3zn1cdNMjl\njZkyRXXWLBe3/Oqrzq2QinQLxdL55DdsUB06VPWPf8xu7HGxYp9/XnXvvXdonz5f2O1JqE+fKV0u\nKItKKt+g3UkffeRcpIlkadOnqy5ZEr8nRgphMVTQE68zZ16uLovcoQplOnPm5Vkdb/t21R/+0Llw\nvv1t5w7pjF8XSEeHy4b45JOq3/++i9UeM0a1rMxNZJ1/vup//IfLnJhJV8mLXiZNqtPy8qaUE4Yf\nfeT80N/7XlbiRG7F6564+eb3FRYpXKEuLe+395iWNwr/g3zfiFta3CrqT35SddQoV/AkLqvTC0LJ\n+52fuStyWf5vwwbV885zy7sff3yXxZHpBdLa6iamHnzQ+Sirq90E1b77uoUm11yj+vDDLqJlT+kD\nMuXrX1f92tc+vv+GG1Srqpyyz4aoWLHd5fXXm7RPn8u1p2l5w7zqN0w3oY4O98R68cWqe+/tFi4+\n/ng0VxEnKAgl73d+5q4IQqnU1zuLY+JE1T//+Z09Flzo6FDduNE9mt5yi7tRHH64ammpO860aS7V\nwqJFXafszQXvvad6wAGqf/jDrn1/+pNz0/hhSYVJgfhBNqu3wxpdE9Yb8datLvf9scc6w+eqqzLP\nKZRPulLysclCuWXLFsrK9qO1tRq3+LaZ0tKhbNmyxfe+Kioq2LGjCXiFRKbFtrZmX9OEHnssLF8O\nd98NU6a8y/btZwHfJ5Fhc8eOf3DjjasoLi7n5Zfh5ZfdopAjj3TbCSe4lLZjx7qJ3nwycCDceSd8\n+cvNjB8/j/XrO3jxxV7ccceFDBs2Iuvj78roV537jH4BsGFD5qmsy8vLQyl3ENdMJvTt61JZn38+\n/P3v8OCDLjXyQQe5rJjnnAMDBuR1iNmTTvvnY8MXn7z/LpRUBPlofNJJ16a07A488Lt6881ucdWG\nDeGaTOpsUb7+epP27ZvbalphtWJ7SpjyMPlJmN1JybS1ufmqM85wk7UXXOCeQsN0fXWGQnDXqAZ/\nEgWlVKqqMos9zxep5g/iqrhyQZzLS0btRvzWW6q33eZKLR56qKtju3Gjf8e3VMMZEORJFFRfUVKQ\n6fzjxxxzbaRuVPmmO2l5jeDo6HB1KGprXVjxKaeo/upX2QUr+BltVFBKPiiCDAeLkmWXboJt8uTL\nInOjijJRs5SjyAcfuGi1Y45xwQPf/KbqypU9O4bfwQKm5H0mH9Ect9/+Yy0qOlyLik7UoqLD9fbb\nf5yzvrJzK2zaAAAS70lEQVQh3f+msXFZZG5UUSXfceiFyKpVqt/6lup++7nUHnPndq/inN/RRqbk\nfSbocLCohQimmxtZu7ZJTzrpSh0z5qt60klXmoL3kaidI3Fjxw7nvjn1VOfOuegi1T//Of1krVny\nISfoCyrIhV5+kcptMHPmN9StZThM/VglbOwirHHonSkEd9LGjW6tymGHuZXkP/hB6rUpfgaKmJLP\nAUFG8gS50CtXxEGGMBMFS/6xxxZoaekg7ddvtJaWDoq9O6mjw+VkuvBCF4p5+umqv/71rrxPa9c2\n6dSp1+q4cVfo1KnXZvVka0o+RwRllThLfqS61LOVCoO1tLQidFZaV8ybN8+z4DVpO1TnzZuX76HF\nhjDHoW/atEmLi/dS2Ftd+uS9tbi4f6huQrnk/fdd4r8JE1zCv0suadLhw/2bozIlH3GCXuiVC8yS\nD4awukMWLVqk0LfT799XFy1alO+hBc6rr6qOGeNvWHRXSt6PfPKIyBQRWSUia0RkVorP/01ElolI\nm4ic6UefYSCo/OWJZfulpWfQr990SkvPiNyy/SFDhlBUJEAVMA6ooqhIGDJkSH4HZgTIASTXYID9\n8ziW/PGJT8B++2WeuqKnZK3kRaQXcBcwGTgcqBGRMZ2aNQMXAI9m219YmD9/ISNGjGHSpEsYMWIM\n8+cvDKTf9nYNpB+/aWpqon//MbiyA/cBq+nXb3S3C60YeyZf52R3qKyspKSkBZe7BuAVSkr+QWVl\nZT6HlTeGDet5cZ2MSWfid3fDlf97Oul9yvJ/3mc/Bc7s4lgZPaoETdCTXLv8mQMVRisMjJw/MwoT\ng1EmCv/fxJxBv36fCt2cQdA0Ni5TOHM3nzycqY2NyzI6Hjl21wwD3kh6v97bF1uyLf/XU5YvX05b\n2w5AgFJAaGtrY/ny5TnpLxckXE5lZdUMGDCOsrLqyLmcwkzQ52Qm1NScQ3PzKpYseYDm5lXU1JyT\n7yHlDdV2+vdfA9wGzAZuo1+/1ai2+96XH6mGU1XljKZPoZsEnTb1vffew3nWfr+zP5jg7Y8ONTXn\nMHHicTQ1NVFRUWEK3kfCmsq3M2FNhRw0FRUVtLdvBM4g8Xt1dNyZk9/LDyW/Hhie9P5AYGOmB6ur\nq9v5uqqqiqqqqkwPlTPyk7+886TVATnsK3fk8iJvaWkp2BtI3HLqx51sf6/6+nrq6+u711k6P053\nN6AI+DuuUkcJ8BIwNk3bnwJTuzhWRv6ofBFUuFoUw8+CDuWLY96WFStW6Lx583oUZhrWEEojNZFJ\nNQxMwYVNvAZc6+2bA5zsvT4K57f/AGgB/pbmOFkJqhrPk9xNvPb3FpJUhn4hSdAK169JxzCdO5YC\nwugJOVfyfm3ZKvk4WnMJdi0JPyzUS8LzEeXhR96WMJ07tnCscIiMJe/Xlo2Sj0IIWbZk8vgeNPlI\nlJXtbx+2c8dSQBQGVjSkh+QjU2OQSjdMlmZX7Elh5solkk0MdtgyOGZjyYfJ5WSkx1INZ0DQj7hB\n+kzDZmnuiXSJsnJ5o8omw2EY/78zZ17unV+Hdvv8ioohYFjRkIwIMlNj0DeUsFma3aGzRZlLRerH\nscOYwbEnT4pxSGJXSARpyfsRJx8K3CKCzcDPcYl/tiIyNSeLCxoaGoCD2D1u/UAaGhoYO3as7/1F\nZaFLMp3j4RMrMltbP74iM9tYbj+OHcaFWmPHju32+eRWtg4CpgIVQBOqA3z5/xr+k4iTv+iiYykq\n2pf29k3MnXtvTn6r2Cj5XYsLpuZ8McjRRx+NiwjdpXRhvbfff+Kw0GXXjaqexE3YrxuVXzfBKK/G\n7N+/P62tbwJLSfwPtm2bQP/+/fM8MqMrXH7HMu9vjkhn4udjI0Jx8pn4TLMlSpNqqcY6adKJu/3P\nTjjhRN/6C6O7JUiiUiIySudwLrGJ14gQhZDGfJBqAjCIeYxCViBhnDzujE0M78ImXo3Ikk7Z3Hnn\nnV4k0iZvYnCTxX7vgZ7etMK8YC4KN6EgCdKSz6EjyPCboCpRZcOulLf7A43A/hQXj2Do0KG42jGj\ngUu8v82+zmNE4f/TXTItABKIjzcDopAKOUjKy8uprZ0OfAaX3/Ez1NZOz82cUDrtn48Ns+TTEpVH\n3XQFm1esWKG9e++1m+XSu/devlly2cTJh41MrLywW8phH1/Q7LpOBnhzVAOyykeFWfLRpqWlhdra\nGbS2LmHz5mW0ti6htnZGaC1WZ0XWA8uAekSKeOONN+jX71CSLbm+fQ/xxZJraWnhggu+yrZtwtat\n/di2Tbjggq+E9v+zJzKxesNuKVvRmN3ZVQioCNgLKMpZISBT8hEg7BdwMk1NTZSVjSJ5rKWlBwMk\nhTmCn7H+7oJpJ/nG0tbWEanKWcnsHhIK3flfZfKdoElUhnruufsKvjKUK/hTRPI5C0U5KQTki5IX\nkSkiskpE1ojIrBSfl4jIAhF5TUSeF5HhqY5jpCYKF3CCdGOtrKzMsSXXuajK/j4dN3gysXqjYimX\nl5czfvz40I0rP+xPIOdsOj9OdzfcjSJRNKQYVzRkTKc2Xwfu8V6fAyxIc6yM/FGFQJTiwLsaay7C\nHDdt2qQlJQN38/eWlAyMvL83k/9VIYeRRgm/CwHRhU9e3OeZIyITgNmqeqL3/lqvw1uT2jzjtXlB\nRIqAt1T1Y7dyEdFsxxNnolTeLuixzp+/kNraGfTqdSAdHeuZO/eegnYHGOGmpaWFYcMOpq2tNy66\n5v8oLv6IDRvWZnS9iAiqmqreti9pDYbh1vgnWA90jovb2UZV20XkPREZrKrv+tB/wRClZfdBjzWM\nuWcMIx3l5eU89NADXHTRJRQVbaO9HR588IHQ5q5JdffobI53biMp2hhGVkTpJmgYQRkmfij59bjn\njQQHAhs7tXkDl7Zxo+euGaCq/0x1sLq6up2vq6qqqKqq8mGIhmEY4SNTw6S+vp76+vputfXDJ1+E\nK+J9PPAm0ADUqOrKpDYzgE+q6gwRORc4XVXPTXEs88kbhmH0kJz65D0f+0xgMS7SZq6qrhSROUCj\nqj4JzAUeFpHXgHeAjyl4wzAMw3+ytuT9xCx5wzCMntOVJW8rXg3DMGKMKXnDMIwYY0reMAwjxpiS\nNwzDiDGm5A3DMGKMKXnDMIwYY0reMAwjxpiSNwzDiDGm5A3DMGKMKXnDMIwYY0reMAwjxpiSNwzD\niDGm5A3DMGKMKXnDMIwYk5WSF5G9RWSxiKwWkUUiMjBNu6dF5J8i8kQ2/e2J7lZKiQpxkidOsoDJ\nE3biJE+2smRryV8LPKeqo4HfAf+ept0PgOlZ9rVH4vTDQrzkiZMsYPKEnTjJk28lfxrwkPf6IeD0\nVI1UdQmwJcu+DMMwjB6SrZLfV1XfBlDVt4DclBs3DMMwMmKP5f9E5FlgaPIuQIHvAPNUdXBS23dU\ndZ80xzkWuFpVT+2iL6v9ZxiGkQEZF/JW1UnpPhORt0VkqKq+LSL7AZuyGGPaQRqGYRiZka275gng\nQu/1BcD/66KteJthGIYREHt013T5ZZHBwM+Ag4D/A85S1fdE5F+Ai1X1a167PwCjgf7AO0Ctqj6b\n7eANwzCMrslKyRuGYRjhJpIrXkUkNm4fEdnL+xsLmUQkkudUKkRkiPc3Fr9NgrjIIyJF+R6DX4jI\nMSIyKhfHjswFKSKfFJHJItJbY/D4ISLjRORxoBYgyjJ5spwHoKod+R5PtohIpYg8BVwJ0f5tAETk\nsyJyp4hcCLGQ5ygReRi4PleKMSi8a2cxbjFpyowB2RJ6Je+lTrgHeAT4GnBzlH9YEdlHRH4M3AN8\nCi/CKYpWiThuAH4LXC0ix3j7Q39epUJEeonIQ8BPgcdU9bp8jylbROSLwF1AIzBRRG4UkU/meVgZ\n4f0+dwH34c65/YE6Eemb35H1HBEpFpH7gP8C7gQWAVXeZ75eP1G4GK8Btqvqp4GvAIcT7SidH+KM\nqQk4K/5LuB3teR1VBngW4QrgHOBu3E04sta8N+69gRWq+giAiJRH3L1xOPALVX0Ydy19BjhLRAbl\nd1g9x/t9fgccr6rzcOlSFPgon+PKkD7A74F/U9UngZ8DYz1Pha/XTyiVvIiMTLo7f19Vr/RenwAM\nBg5P+LKjgCdPmfd2pqpe7r1uAVaIyOg8Da3HiMjZInKViPyrt2sh8CywFOgjIjVeu0g8mSTJ8zlv\n1wXACSLyTRFZgrOy/ktEIrGaO0mez3q73sX9LgO9VelvA8OBCXkbZA8QkQkicljivar+wovgmwT8\nFWfN3yQiY/M2yG7SSZatqvqYqrZ673sD7ar6UawteRGpEJGngQeAh0VktKp+6H1WhbNEHgLOwPnj\nDszbYLtBJ3keSZbHQ4EDgISMobUYRaRIRK4HZnm77hORM1W1w7Po1wG/Bs4Rkb3D/mSSQp6fiMjZ\nqvpP4A6cP74OmAnsBUwTkT0uHswXKeS5X0QmAw24FesPiMjPgCJcHqn9vO+F8pwTkUEi8hucAXG2\niPTz9ifG+0/gPG+x5ofABSIyNPXR8ksqWVRVPXdnQgf/HjjDu3biZcl3OsmuAV5Q1eOBJcANCf+h\nqtar6nhV/QnuMW1f4NDAB7wHupDndzh5Dk98qKqrgXZcordQ4ynt0bjUFD8CZgMzExaUZ5H8BdgA\nnAkQ5rmTNPJcKiKHqeoNwFhV/b2qvgPMB05X1dC6BVLIUwdcDXyAyw77OPCMqtYALwAnet8L6yRs\nP5yf+jLv9edh13hV9a+q+pTX9imgEs9YCiFpZVHVDk/RN3ltjvW787wreaAUIMlKehVAVe8CjgZq\nRGRfr414n60AhuD+MWEjnTx34+Q5LyGPx/8A+4pIUdguOBE5X0SOTfLfvg3s7fkNf4Hzx5+dsEZU\ndR2wAPieiLyPkzc0dEOev+F+H1HVzUlfHQW8EDYX1B7keRx4DThHVd9V1YWq+qDXbjTwq3yMuSuS\n5Bmgqhtwk5I/A7YBnxGRA9J89V+ANwmRb767snjnWgee3vA+9/UJK29KXkQmiUt+9kPvMfkjnP+w\nUkSOFJEjgf8FRuD88AC9ReRUEfkt7oT+R1geNzOUB2AYcFBY3BveI+T+nj/6AmAacLeI9Af+ARyB\nW7kM8GOc1T7U++5Y4H7cje1zqjo/6PF3JgN5zmCXK+N4EXkBOA64Pwy/UQ/luRM4XUT29757vIi8\nirN6/xT86D9OGnl+IiJDVHWb5958DjchflzS9wZ411wjMAW4Kcm/nRcykcVz2xSp6hZcQMmExH7f\nBqaqgW/AIbhHxtNwJ9x8YAbO9/ld4EncSXgU8Bhwqfe9iTgf4+n5GLeP8sxM+u5I4MR8y+CNpcj7\nexjwiPe6Ny7ccy4wCPdI+Xmgr/f5QuAb3uv9gZPzLYcP8sz0Xp8KnJFvOXz8fUZFRJ4f4yKCktte\nCdyIiyUv9fZNBE7LtxxZytI3aX9xLsYW2ERS0iN9By6Ma5mq/j/vs+eA/wD+R1VvEJGDVXWt99lf\n8B5hgN+qaihcAFnI82eSHsnUuTjW5UOGBJ5r6XtAkbhFQANwcwWom+2fCbwF/Ah3kzoXp9AX4h6R\nl3pt38Td0PKKD/I0em1zWq6yu/j4+7wOvB64AJ3ohjyXAxtF5FhV/b33tftxivE5YLiIVKrqc3kY\n/m5kKcuzwAhPlo2q2paLMQbirhGRLwPrgRu8XX/D+dorvPe9cSfff3rv13nf+xpwEbAcwjNJlKU8\ntYRIHnF5/pfhHiH/jpOpDagWkaNh541sDvBDVX0IWAycLyLLcbL+LR9jT4XJEwt5FKc465K+ehLu\n6fgl4AhV3RjgsFPigywvE4QsATzG9MdN8nwDeBEY4+2/HefW+DNuNesRwG+Aod7nV+AsqvH5fhSL\nuTz/Bnwp6f09wNdxKaSXeft64fzUj+PmD/DeH5zv8Zs8sZbnZ0CFt+804PP5Hn8UZQnqnzHc+3sL\nsNB7XYSbgPyc9/4gYB7Qx3vfN4ixFbo8QF/c6ruET3EacLP3+iXgMu/1UcD8fI/X5DF5wrJFRZZA\n3DWq+n/ey9uBkSIyWV2kwmZVTczyX4KLc/3I+05YY15jJY+qfqiq23VX5Mgk3EpcgC/jllo/iXtK\neTEfY+wJJk+4yUSesETQdSYqsgS6gk9V3xKRucC3gUWq2u75rq4DioGLNARhat0lTvKIiwFXXDhk\nYsLxA5xsnwTWqYv3jQQmT7jpiTzqmcNhJeyyBFo0RER6qVvh9Thu8cJ23Gz5a+pm/iNFnOTxLIwS\nXAqGX+ImvN/BPXK+n8+xZYLJE27iJE/YZQnaku8Ql3hsX1xaze+p6jNBjsFP4iSPqqqIVOL8iiOB\nn6rq3DwPK2NMnnATJ3nCLkvg5f9E5BrgQGCWqm4PtPMcECd5xCV8+xLwo6jLAiZP2ImTPGGWJR9K\nvpdGNN94KuImj2EY8cIKeRuGYcSYMGShNAzDMHKEKXnDMIwYY0reMAwjxpiSNwzDiDGm5A3DMGKM\nKXnDMIwYY0reMAwjxvx/dLNl6IZm3tQAAAAASUVORK5CYII=\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": 122, "metadata": { "collapsed": false }, "outputs": [], "source": [ "pipeline = [\n", " {'$match': {'valence': {'$exists': True}}},\n", " {'$group': {'_id': '$album.id', 'avg_valence': {'$avg': '$valence'}}}]\n", "album_valences = collections.defaultdict(int, {a['_id']: a['avg_valence'] for a in tracks.aggregate(pipeline)})\n", "albums_df['valence'] = albums_df['_id'].apply(lambda i: album_valences[i])\n", "beatles_df = albums_df[albums_df['release_date'] < datetime(1971, 1, 1)]\n", "radiohead_df = albums_df[(albums_df['artist_name'] == 'Radiohead') & (albums_df['gloom'] > 0)]" ] }, { "cell_type": "code", "execution_count": 123, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot_date(beatles_df['release_date'].values, beatles_df['complexity'].values, linestyle='-', color='blue')\n", "ax.plot_date(beatles_df['release_date'].values, beatles_df['valence'].values, linestyle='-', color='orange')\n", "\n", "fig.autofmt_xdate()\n", "\n", "for a in beatles_df.itertuples():\n", " for t in tracks.find({'album.id': a[1], 'complexity': {'$exists': True}}):\n", " ax.scatter(a.release_date, t['complexity'], color='blue')\n", " ax.scatter(a.release_date, t['valence'], color='orange')\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 124, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAD2CAYAAAAzkveEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd8VFX6/98nvUAoZgBpCUUROyqIPSiIqKuou2rEgsZ1\nLURW0Z9lxcDi1/JddBVsq0bwu0DUta+iFDW6YCEKuEpTyoQmZEI3vTy/P84MmUlm0mbuNM779bqZ\nmTP33nNO5t7nnvOc53yOEhEMBoPBEJ3EhLoABoPBYLAOY+QNBoMhijFG3mAwGKIYY+QNBoMhijFG\n3mAwGKIYY+QNBoMhigmIkVdK5Suldiql/tvMPjOUUr8opVYqpU4MRL4Gg8FgaJ5AteRnAaN9famU\nGgMMEJEjgD8BLwYoX4PBYDA0Q0CMvIgsAfY0s8ulwP859/0W6KSU6h6IvA0Gg8Hgm2D55HsBW9w+\nb3OmGQwGg8FCgmXklZc0o6dgMBgMFhMXpHy2An3cPvcGtjfeSSllDL/BYDC0AxHx1pgOaEte4b3F\nDvABcD2AUmo4sFdEdnrbUUTaveXl5fl1fLht0VSfaKqLqU/4b9FUn9bUpTkC0pJXSs0DsoDDlFKb\ngTwgQdtseUlE5iulLlRKrQfKgBsDka/BYDAYmicgRl5ErmnFPhMCkZfBYDAYWk9UzXjNysoKdREC\nSjTVJ5rqAqY+4U401cffuqiW/DnBRCkl4VQeg8FgiASUUkgQBl4NBoPBEGYYI28wGAxRjDHyBoPB\nEMUYI28wGAxRjDHyBoPBEMUYI28wGAxRjDHyBoPBEMUYI28wGAxRjDHyBoPBEMUYI28wGAxRjDHy\nBoPBEMUYI28wGAxRjDHyBoPBEMUYI28wGAxRjDHyBoPBEMUYI28wGAxRjDHyBkM0UemAXUX61WAg\nQGu8GgyGMMBeAN/mQEwC1FfDqfmQmR3qUhlCjFn+z2CIBiod8H4G1FU0pMUmw6XFkGQLXbkMQcEs\n/2cwRDtldt2CdycmXqcbDmmMkTcYooHUTO2icae+RqcbDmmMkTcYooEkm/bBxyRBbKp+PTXfuGoM\nZuDVYIgqlAIFzj8GQ2Ba8kqpC5RSa5VSPyul7vPyfR+l1GdKqeVKqZVKqTGByNdgMDipdOjImroK\nqC3Tr9/mmFBKg/9GXikVAzwLjAaOAbKVUkc12u0h4A0ROQnIBp73N1+DweCGGXg1+CAQLflhwC8i\nUiwiNcDrwKWN9qkH0pzvOwPbApCvwWBwYQZeDT4IhJHvBWxx+7zVmebOVOA6pdQW4EMgNwD5GgwG\nF66B19hkiE/Tr2bg1UBgBl69jfA0ntGUDcwSkb8rpYYDc9CunSZMmTLl4PusrCyysrICUESD4RAg\nMxt6jNQumtRMY+CjmMLCQgoLC1u1r98zXp1Ge4qIXOD8fD8gIvKE2z4/AaNFZJvz8wbgVBEpbXQu\nM+PVYDAY2ojVM16LgIFKqQylVAJwNfBBo32KgZHOwgwGEhsbeIPBYDAEHr+NvIjUAROAhcAq4HUR\nWaOUmqqUuti52z3AH5VSK4G5wA3+5mswGAyGljECZQaDwRDhGIEyg8FgOEQxRt5gMAQPs6hJ0DHa\nNQaDITiYRU1CgvHJGwwG6zGLmliK8clHC6ara4hUjLZOyDDumkjBdHVbZt8a2LUMDhsGnQaHujQG\nd4y2Tsgw7ppIwHR1W6YoF355tuHzERNg6MzQlSdUVDrCV9bgYEMlXht401AJGM25a4yRjwR2FcFn\no6BmX0NafBqcuxgOGxq6coUL+9bAR0c3Tb9o9aHVoo+E3l44P4QiGOOTj3RMV7d5di1rW3o04r5o\nSM2+8F00JMmmGybGwAcNY+QjASMj2zyHDWtbui8ieWC7zE51nefAZnWdGdg0mIHXyMHIyPqm02Dt\ng2/sk2+LqyYSXB3NUFqZSUpVNQmJDWm1VTXsr8wkPXTFMoQBxidviB7aG10TBQPbRUXwwv0FPHtt\nDjV18cTH1nDHnHxufzyboWbYJuoxA68GQ3PsKoJF50C9m5GPSYJRX0bMwLbDARkZkBrnINNmx+7I\npKzWRnEx2CLjOWXwAzPwajA0R1wHTwMPUF+p0yMEmw3y86Gs1sbPpUMpq7WRn28MvMH45A0GqP1N\nu2cau2tqfwtdmdpBdjaMHAl2O2RmGgNv0BgjbzD4CkWNwBBVmy3MjbuJkw86xl1jMJgQ1eBgL9AD\n3J+N0q/2glCX6JDADLwaogd/W4mmlWkdURDBFM40N/Bq3DWG6CAQce5JtvAyONH00HGpULobeZcK\nZaTXLcwx7hp/CPYMyUiekWklkTKlvy1Em2vDSHOEDGPk20uwb8JouemteFBFm1Z5ND60zLhHyDA+\n+fYQbP9itPgzrZIOiJb/j4toVh2NJhdUGGEmQwWaYLcco6GlamXrNNpaidHs2jAqlJ4EwQVrBl7b\nQ7Bvwmi46a0eeIsmATfXQ6vxAhutqJPDYSZDRQxBEsULSEteKXWBUmqtUupnpdR9Pva5Uim1Sin1\no1JqTiDyDRlJNuif45nWP8c6wxINLdVgPKiiqZWYma3dTecu1q+tuPkLCiAjQxh1Xi0ZGUJBhA7b\nHBIEcdzFb5+8UioG+Bk4D9gOFAFXi8hat30GAm8AI0Rkv1IqXURKvZzL+ORbyjeSW6oWL/92KLdi\nHQ7I6FtLRWVD5zw5qZbizXHh9b+I9Gs4UAR43MXqOPlhwC8iUuzM7HXgUmCt2z5/BJ4Tkf0A3gx8\nRBGqmN9wi+NuKxa6VAoKICcHEhKgulqLdWVHjhy839jX7SFBxVBBp4Np8aoM+7p6bLYuISyZG66H\nvIoBqY84zf6AEkQXbCDcNb2ALW6ftzrT3DkSGKSUWqKU+kopNToA+YaOaPCRhwoLXCoOhzbwFRWw\nb59+zcnR6YcKmTa7XgnKjZq6eDJt9tAUqDGVDvhmvG4Y1Zbp12/GR3ZYqD8E0QUbCCPvrYvQ2OcS\nBwwEzgauAV5RSqUFIO/QEA0+8ijCbm9bejRiy+hN/p9uJTmhnLTkfSQnlJP/p1uxZfQOddE0u1d4\naRhV6/RDlXaMu7SHQLhrtgJ93T73RvvmG+/ztYjUA3al1DrgCOD7xiebMmXKwfdZWVlkZWUFoIgW\nEE3RHBFOhw669e5ORYVOP2RIspF99xhGHncU9tIBZKZvwDbqifC5Lr16i5tJP1Ropwu2sLCQwsLC\nVu0biIHXWGAdeuD1V2AZkC0ia9z2Ge1MG6+USkcb9xNFZE+jc0XGwKshrCgqgnPO8TT0SUnw5Zcc\nekvfhevAZqUD3u0FUtOQpuLhsm3hVc4IxdLJUCJSB0wAFgKrgNdFZI1SaqpS6mLnPguAXUqpVcCn\nwD2NDbwhygiizk5mZtM0pbynRz3hGkaaZIPTXtPLKsam6tfTXgu/ckYhRtbAEHiCNMnDHVd0TXw8\n1NQcetE1EUO49jQiHLOQtyF4hFBHpnSbg5KNdrr1zyS9lzEghkMHo11jCB6h0tmxF5C+JIOjfx1B\n+pIIVuk0GAJM9Bl5o7keWkIxh8DEYB/E4dAD0YfSHAFD80SXkQ+y5rq5obzgmkPgPsBm9RwCE4MN\nuLRrYNQo/Wq0awwQTUY+yAstmBuqBZTSMdAqCIHQJgbbzPo1+CR6jHwQfcHmhmoG94ety3Vi9apG\nXYbomGt3VLxObwOR3DOz27Vujzvx8YfWrF+Dd6LHyAfRF2xuqGYIxcBrko2l+x6kvCqJ3ypTKK9K\nYum+B9vkIioogL59YcQI/RppPbPMTC3M5k5NzSE6V8DgQXSFUFosZevC4dAuGvcZlsnJUFx86Enc\nNiEEIZSOLaVkDEwhNbGMTJsduyOTsqpUiteXY+uT3vLxDujVSxtFF/HxsG1bZP2eZq7AoYvVUsPh\nQ5D0ZGw2fQM1vqEiySBYhh+rGrUX+9oSEmJ7UXrARukBnU9a8j7sa0taZeRXrPA08KA/r1gB559v\nRYmtITsbRo48dDX1Dd6JLiMPQdNcNzdUMzT3sLVgxmPmUd28y+we1S0g548kbDZzLRo8iS53jSG8\nsVDuoGDGUnLuHUJ8bA01dfHk/20F2Xee0apjHQ7o3dvTp52QAFu3GoNpiAyMrIEh+DRusQfBV+/Y\nUop9bQmZR3VrlZvGHZc/OyYG6uuNP9sQWRw6PnlDeOCtxd5xoPVLJialQ+d0SGr7ocb9ZohWoieE\n0hAe+JqUFtfB0hDXQExOs9m0/rwx8IZowhh5Q2DxFSdf+5tlSyaayWkGg2+Mu8YQWJqblHbYUEtC\nXO12SIirpoKGh0t8bDV2e4JplRsOeUxL3hBYWlrk3IKVizJ7lFJdVeuRVlNdS2aP0oDlYTBEKsbI\nGwJPkFahd2FL2UT+rRNITignLXkfyQnl5N96B7aUTZbmG45Esv6OwRpMCKUh8nGGZzr2pGJ3ZJJp\ns2PrUhaU1ajCCVcYaEKCjvk3YaCHDiZO3hD92AtwLLoPe+kAMtM3YBv1hOU9CKtxOFof0hkJekrF\n9k3MnjmZ+vJtxKT0YnzuNDIy+4W6WFGBiZM3RD0FX2eTM/FqEuLqqK6NJT9fkZ3Z+uPDzQC1tVXu\nUkZ1N/IuZdRwMPLF9k3MvG8UU0dvIDUJyioh775vyH1ikTH0FmNa8v5gVp4PC/xtxXo1QAsGhMwA\ntac+Yd2SF2HqXZdxz/Hvk+o2Ua2sEqavGkfek3NCV7YowSzkbQVBXmowWrBiYNBfff/ZMycfNPAA\nqUkwdfQGZs+cHLhCtoH21MeljJqcDGlp+jVkyqi1FeBYCmumw3+ugPd6U791voeBB/1/rv/NHoIC\nHlpEn5EPxkLeQV5qMFqwaslEvxbMqK+jfvdK7waofHtgCthG2luf7Gzdcl+8WL8GZdBVBH6zg/11\n+G4ifDIM3k6H7ydCWTH0uQJGLSEm4w+UVXoeWlYJMbu/g5+fh/q6IBT20CS6jHywWtehWP0owrFy\nVmq7WrG15fDzc/DhkcRU7fBugFJ6+l+4duBPq9xyaYbaCij5D6z+X/jycni3Jyw8DTa/CSm94KQn\n4QoHXPAdnDITMq+BDv0Yn/sId7894OD/uawS7n57AOMnvwfFr8PCU6F0mUWFPrQJiE9eKXUB8DT6\noZEvIk/42O/3wJvAKSKy3Mv37ffJB3NFohCsfgRti7YIN4qK4JxzPH3GSUnw5ZfaKAWCVv1/Kkvg\n52fhlxfBdgYMvofisp5NffLvxpM7/VsyBrVtndhAEvLfW0Q3XEq/dm7fwL7V0OkYSD8N0ofr19SM\nFhds16tvbSKj62R6dN7Ojr09Kd49jW3b+mFLF7DPgRX/D3pfAic8ComHBaeOUYKlIZRKqRjgZ+A8\nYDtQBFwtImsb7dcB+AiIByYE3MjvKtIt+Jp9DWnxaXpCzmEBsiLuBGmpQReRHgO9Zg0cfXTT9NWr\nYfDgIBRg/8+w9ikofgMyroKj7oK0QQe/boiu2U5MSk/Gj0giI+kXGLEQYhODUMAwoLYcdn/nadRV\njNOgO7cuJ0FccptPvXAhjB4tgLsdEhYsUA2rb1XvhR8egi3/0oa+/406f0OLWG3khwN5IjLG+fl+\nQBq35pVSfwcWAfcCkyK6Je+eZxCia8I6cqKVeGvJJyfDF18EpiXvMwTSNQDoWApH3ApHToCkVqwY\nJfWw5EqISYTT/xl9xkYEftvYYMxLv4b9a6HzcQ0t9PTTIKVPi6301rDww72M/l0nmhj5f+/j/Is7\ne+68ezkU3a7/50Ofhy4n+p1/tGN1nHwvYIvb563AsEYFOBHoLSLzlVL3BiDPpiTZoH8O/PJsQ1r/\nHGtDG4O01GC4x0B7pdED0NegYasGR1vAawjkpMXkXtqTjM774Ki74fQ5EJfa+pOqGDjtn/DpufDf\nh+GER/wvqMU0G+tfW6Z7u+6t9JiEBrdL5jXQ9SSIbYcYfysYcsQmEuKOprq2oVeUEFfNkCM2AY1c\nYl1PgvO/gg2vwuejoe9VcPw0SOhkSdminUA0T7w9PQ42x5VSCvg7MKmFY/yj0gHr/+GZtv4fURHx\n4lf0SChwDYB/OuLgALiVIX5eQyAv2snsr1Ph4p/hyDvaZuBdxCXDOR/ogcEN+f4X1EJcD7p7jpnL\n1LMKueeYucycNJzi96+Fj4fA291g5QP6fuh3HVzwPVy2Fc76FwyeBLbTLTPwALaM3sy+7Y8kx5eT\nmvgbyfHlzL7tj9gyens/QMXAwJvhwlW6d/7RYNg0R/dADG0iEC35rUBft8+90b55Fx2BY4BCp8Hv\nAbyvlLrEm8tmypQpB99nZWWRlZXVulLsWQFS45kmNTr98PO9H+MvQXLXuAxkTo5uwdfUhDAGuiUq\nHfDNeE+54W/GQ4+RZGfbLFl9qb58m/cQSOIhJrZV59i0qZjJk2ezbVs9vXrFMG3aePr1y9C/a9Z8\nWHy2dl1YdS35ifcHXQnTP1xD3mMvQJchoR1bSLKRffcYRh53lKf0REv3TVI6nPqy7nkU3Q4bXoFT\nnoPOxwSn3GFKYWEhhYWFrdo3EEa+CBiolMoAfgWuBg4OCYrIfuCgE1Qp9Tlwt4is8HYydyPfJnw9\n4K168NsL4JubQMWC1MHwVy0deI2Y5el2r/CiJ1+t03uej80W+LLHpPSirJImsylbGwK5aVMxo0bN\nZMOGqUAqUMY33+SxaFGuNvRpR8KZ/9ITe85dDF2OD2wFAoDPB11cJ+2OCQcys7FdNxJbexpG6cNh\ndBH88gJ8mgX9x8OxeRDfwZqyhjmNG8BTp071ua/f7hoRqQMmAAuBVcDrIrJGKTVVKXWxt0Owwl3T\ndYiX2PUEnR5oKh3w9Q1QXwl1Zfr16xssdw1FxPJ0vn7ZwP/iBxl/0y3kvRPjEYOdt2AA43Onter4\nyZNnuxl4gFQ2bJjK5MmzG3bqdhacPAO+uBjKtwWy+AHB9aBzJ5Sx/j7xZz2BmFgYNAEu/AkqdmoX\nzuZ/GRdOCwQkZEBEPhGRQSJyhIg87kzLE5EPvex7rjc3jd8k2WD4bB1RE5eqX4fPtsaN0pxr6FCn\nyxBQ8Z5pKl6nW0FdNRlb7iH3xt8xfX4MeW/HMH1+DLm5ua3Wndm2rZ4GA+8ile3b6z2TMq+GI26H\nwoug5kBAih8oxudOI+/dxHY/6CKK5O5w+v/B6XPhx6nw+QU6RDYCCYb+f3SpUGZmW7K8XBOcDQfH\n/vQG/fK0UutcQ5FEkg1Oe62pK8uq32Ll/ZB4GBm7PyLvcjejvOVeqLymVfkmJ8cAZXga+jJ69vTS\nBjr6Ph16uORKOOffEBMet1BG53JyL0pj+qqR1JfvICalJ7lPRLmUb7ezYcwKWDcDFp0OA2+FYx6E\nuJRQl6xVFBTAfRMdDDjczoZfM3niGZs1c19EJGw2XRz/KCkRWbZMv1rG3tUy746rJTmhTDol75Hk\nhDKZd8dVIntXW5hphFFRIlK6TL9axZb3RN7LECn+l8hcmm7bF7R4inffFenc2S7du08S+E2cAeQS\nGztJFi2yez+orkbkswtEvr1FpL4+sHVqL99PEllxf6hL0SKW3Z9lW0X+c6XIe5kiW94P8MkDT0mJ\nyPVnz5OyV5Nlz8udpOzVZLnu7Hnt/r84badXuxpVUsPBmhXqWLeCPscOpqq2YaQrMa6SLT+twRbC\nafCHFGXFsGAYnP0+VO+HwtFN98laAD29R8OIwOOPw3PPwbvvQnq6jq7Zvr2enj1jOOGE8fz97xks\nXAjHHuvlBDUHYNFZuvd49H2BrVtbqa+B9/rAyC/1IHGYEpT7c8diKLoDOh4Jp8yADuHZk1nxtYNB\n6zJISWiY/FJency6QcUMOa3tvd5DYmWoYM4KbdPsvUASQfr1a9bAsmUwbJgFsgV11Tqkse/vYfA9\n+v/yXm/PqJ6YBBi71ev/qbISbr4Z1q6F99+HXr28Z/P66/DnP8PHH8MQb8/u8m1anGvI37RUQqjY\n+j6s+RuMWhK6MrRAUGdt11XB2ie1jMWgP8Pge8NOmmLP+iIS/3MOKYluRr4qiaqzvqTLwLZPAT8k\n9OR9aW23VlO8TSR0BjYxsPu1nDloBAO7XwtscqZbRATp1+fmap2a8eP1a25ugDP44UFItOmZrNCm\nQfcdO2DECD3X4MsvfRt4gKuvhhdegAsu0A+sJqT0gnM+hO9yoSSEBnbjLOh/U+jybwX+av63idhE\n7Zsf/Z3W4vnoWNi+wIKM2k8XWweS3Qw8QHJiJV1sFoSE+vLjhGLDD5/86tXi9Kd6bqstcJN//91G\nGXvyAPktX/t+f8tHxp48QL7/bmPgMxPRfu3Xk8XxYldZ9cRgcbzYVeT1ZGv93e3E8t9hywci7/YV\nqSxt+l0L4wArVoj07SsyZUrbXOkffihis4ksWeJjh22fiLzdXWTfutafNFCU7xB5s7NI9f7g590G\nSkpEkpNF0juWyCn9l0l6xxJJTrZ47MzF1g9F3usn8uXvRcq2BCHDVlC6TN/D7mNIryfr9HZAMz75\nqGnJb9nStvRWU1uhw7N2LNZaGj9O5d8zRzLnds/ZhXNu38C/51m0klCZnaVrh5GSUEGvrttISahg\n6dqhYalfv3hx29LbRNlmWHYznFHgVYrWccBG0cahOA40bcG/845erGT6dMjLa5vm1kUXwZw5cNll\n8PnnXnboORqOfwQKLwy+jIZ9DvS+FOI7BjffNmKzwaJXCih+JoPFD4yi+JkMFr1SEJw5H70ugotW\nQaej4eMTYfXf9DhGKEnNbFu6H4RH/FfA2MTA7pPp0XkbO/b2Yv3OaUAzAy/1dVC5QxuP8s1QvqXh\nfdkW/VpzAFJ6Q2pfSOkLKX2oJ9777MIt78EPf4GeF8JhpwYsvK50b0eG9F3m9N/pLt6QvkWU7u1I\nepjJbnfv3rb0VlNfA0uvhqOcOiuNcA3qxcRAfX3DoJ4IPPoovPii9q2fckr7sj//fHjzTbjySvjn\nP2F043HegTdD2Sb44hI477N2yfG2GRHY+CoMfcH6vPyl0sEZsTngdg2fEZsDlSODM74UlwzHT9W6\nPd/lwqbZWh6he5b1eXsjyablyRvLlVvwv4gaI59+2CbGnjzqYAu7rBKuf/Eruic9C9vqGwx4mdOY\nl2+Gil8hoauHAadDf/3Dp/TRaUm2JjKzMYdtoqxyXdNp9N1O1zde0R06jx6jtMHveUHr5G19ULL9\nAL3q4nHdHAA19fGUbD9A+oB2n9YSRoxoMLQuYmJ0ul/88BDEd9YDrY1wOLT/313Ebfx4OOMMeOAB\n+Pln+PZb6Onn5M+sLHjvPRg7Fl59FS5uPJ/7+Gnw2yb4+jo4803r5Yl3FelBRttZ1uYTCFyrqblL\ngbtWUwtmEEHHgVqLaOu78PX1OtZ+yHRI7hG8MrgI0ryeqImumTrpWu45Zm7T1eAXdSLvltMh1Wm0\nU53GPLUvJPdq16h78brvmHn3UKZeQYO07duQ+1QRGYOcTcXybfDrJ7B9Puz4FDoe4TT4F0LXU1ot\nnAVQus1BysKMRiPxyZSfX0x6r/CLsikogBtv1C4REZg1y89QuW0fQdFtcMFyLVjVCL0gRdPDjjoK\nTjhBG+SUAM6PKSrSBv755+GKKxp9WVelB8fTT9VRN1ay7Dbdyzz2L9bmEwhCtJpas9SWwU/TtMLo\nsZP1bOYwmdzWVqzWkw8LfAo0dT4JRswPaF4Z6ULfbn/glMkx9Oi0jR37enHb+bVkpLs9oFJ6wYAc\nvdVVQ+lX2uB/mwOVO+Hw0drgHz66xaXO0g+DpZtPZkjf76mpiyM+tpYVm0/mjDBz1bgIqJha2Rb9\nPzvzLa8GvoFiYDZQjw4aG8/QoRm89lpA1rzwYOhQWLAAxozRvQePB1hsIpz9np6BmdoPjrw9sJm7\nqK2AzW/AmB+sOX+gCaJ7otXEpcKJj0O/63Xve+MsOOV5sJ0WujJZQNQY+Zikw7wrESZ1DXhejvJ+\n3D9vNhXVKax1iirfP6+c7L+WY/NmeGMTtAuoexYM+V/tMtr+sV6Krug2vWbm4WOg14VO7ZdG3fwy\nO2cc/SOlu5Mp2dedbp12csbR/w1+V7cNBERtsr4GvsqGQROh25k+d+vatRiYCTSoSEIed96ZixZH\nDTwnngiLFukeRFWVdg8dJLGrdgksOlP3GHt50+nzk63vwmHDdA/ViU+55HAhWLIjbaXT0XocpbgA\nlvweDr9AG/9wKZ+/+Aq7CcWGHyGU9uXvyqSLlEdY46SLlNiXv9vuc/pi2TKRTh2rPEIE0zpUybL2\nRD/VVor8ukjku7tE/j1Ih+J9dYOI/Q2Rqt16n4oSsc9IlCmXIw9fhky5HLHPSAzLEMqAsuJ+kc9G\ni9TXNbvbuHFT3CQJXNtvMm7cFMuLuHatSO/eIv/4h5cvHd+IvJUusuu79p28uZDQxeeJ2F8/+HHj\nRrsMGOApzTBgwCTZuNGHNIPBO1V7Rb6bKPKWTeTnF1u89sIFmgmhDLlh9yiMP9o1FSXy1p9PlofG\nxsqDl8TKQ2Nj5a0/n2yJIbQ05vfABpF1z4p8fqHIGx1FFp4l9gWTZNLYrp4PsMu7i32TRXH54cC2\nj0Xe7d2q3++MMx72Gpt/xhkPB6GgIuvXi2RkiDzzjJcvN78j8k5Pkd/aaGw3zdNx02920q+b5jV8\n95td5K3DRGorDiaF8kEXlexeKbLgdJGPh7b/IR1EmjPyUeOuKd0FY45fzRVD6w6mlVetpnQXpDcz\nq7E9uGJ+h1TlUFMXT3xsDSsS87HZAiDE0aG/Xq7uyDu037XkC2b/ZSJTf7e7yfJ206eOIe+uq/RM\n2/jOeg3M+M7Oz50aXoM8mNTsWqOtoXybXk3qzDdb1WXev9+7imSHDsGZBjJggF6Q/NxztevmXvdV\njPtcpnV2Ci/SsgOtmRVd6dC+67qKhoHKb3O0qyPJBhtfg75XeyzX50su+Z136snJgdNPh9NO04PR\nMVEzO8ZCupwAo/6j/9eFF0Gfy+GE/4GELqEuWZuJGiNf8tPSpmGGdXGU/LSU9F5jA5tZpYNT5Ubi\nEqsO5neq3Bj4mN+4ZOh5AfVJPUlN8tTLTk2C+vo6QGkff81/oXov1Oxr+hqb1PxDwPWQcL1vnB6b\n1OrRS6/PksqQAAAgAElEQVSLat/3DblPLGqdoa+vhaXZcGSuDm9rgddfh+3bxwN5NPbJP/JIoPUU\nfJORoQ39eedpbZzJ7vPiBk3U8sT/uQKyPtZjNM3RXLhh4mF6gPCstzwOOfxw7w+6rKwYTj5ZT+J6\n9FHYsweGD9cG//TTtbZQx/CeRxU6VAwMuFFPNvvhL/DhYDjxCT1QG+jRfAuJGiPfLa2E+FjPWWzx\nsbV0SysJeF57Nq4kpiKRTilVB9PKKhKp37iSLkePCnh+Ppe3Sz8Vjp/S/MEiOlSsZq+n8Xe9r9kL\nVbu0EfJ4OOyFauf3Utf8Q8DtgTF7en7TtUZHb2D6zMnkPTmn5cr+mKcfKsc80OKub7+tBcQKCzP4\n9NNcJk2ajiu65skncznllOAOOvbu3WDoq6pg2jSnLVAKTvo7/OdyWHYLDJ/VvJFIzfSyhGKNTi/5\nAuLToMtJHl/36jWe5OQ8KioaHnQDBuTx3HO59OsHtzuDfHbsgK+/1lteHqxYAUcc0dDSP/106N8/\nomyY9SR2hWEvwICbPNeZDcQykEEQHYwaI5/epydLPzmBIZk/NIQZ2k/gjFGBX/5s5aoOnNrkgVLD\nt6s6MOLogGfH+Nxp3H3HNzx1RUPr+O63B/Dgc61Y9UcpvQ5mfAcdU90e6qq8PxxcD4HqvXDgZ6je\nS/2eVd5DWcu3ez+3O78uhI2zdTx8CxOJPvhAG64FC7QU8LHHZnDNNXkhXwO3Rw8oLNQSCpWV8Le/\nOQ1mTCycMQ8WZ+nY7OMe9n2S5sINl78K/W/0sMIbNsCsWRl88kkuL700/aBc8rRpuU2ia3r00PIM\nl12mP1dVwcqV8NVX+n96//1QW9tg8E8/HU4+WStGBgKHIwLWKfbFYUPh/G9gw8vw2UjIHKdn0can\nte989gLnb5ygH+qn5luzTrQvZ30oNvwZeF07Q2QuniJec9HpAWbBB3vkquFa8H/vy2lS9mqyXDV8\nniz4YE/A8xLRA7pJSRtlYPdxcuagETKw+zhJStoYHHGnNjLl7nEHB4hd22/5yJS7xzV/YNk2kbd7\niOz4rMU85s/XgmFFRQEqtAXs2iVyyikid9whUuceoFH+q17YYsNrLZ+kcXRN1V49EOs2GF1fLzJq\nlMgTTwSm3PX1IsXFIq+/LnLnnboOKSkiw4aJ/PnPIm+8IbKlnRpf8+bpgIVOnfTrvHktHxO2VJSI\nfH2jHlTfVND2xWOcooMlL6TLsr+eIiUvpPslOsghEV2z6Q3vqwNteqP95/RBSYlIfFytR3RNfFyt\nZUZ32TJ9Y3iEbKZJ+0I2Lca+aaPccqGnQuefLuzffCRQXY3IonNE/ju1xfMvWqQN/FdfBa7MVrF3\nr8hpp4ncfHMjQ793tcjb3UR+/bRtJ/zlHyJfXu6RNGeOyAkniFRX+19eX5SViXzxhchjj4lccolI\nerpInz4iV14p8vTT+jpsKX9XRJr7NRw0FUorKVki8tHxIovPFdm7pvXHlS6TeXfeJMnxZZKauF+S\n48tk3p3jLVGhDLlh9yiMnyGUMje2kZGPtSyW/Omn7RITkycxMQ9JTEyePP203ZJ8RCLrBmnc67g5\nq6fcNuqB5sv6w2R9k9TVNnvuwkJtYL78MrBltpL9+0XOOUfkuutEamrcvtjxmTb0e1e1/mSfDNey\nuU5KS0W6dxf59tuAFbdV1NeL/PyzyGuvifzpTyLHHSeSmipy1lki990n8t57Ijt3eh6zbJlIhw52\ngSkCDwtMkdRUe1g2VNpMXY3Imqf1nIgV94vU/NbiISWbHZIQV+lxTyfEVUrJZke7inBoGHkRWTJ3\nnmx+pqcUTTtJNj/TU5bMtaY/GIqJJ66ublpaeHd1G/c6Bh2+Rhwvpsvyr31cvL8uEnnncO3GaIYl\nS7SB/7SZxq9ja4ms+nKZOLaG19OvrEy7VK66qlGLd+P/addNC3UXEd36f+dwbVCc3HijSG5u4Mvb\nHvbtE1m4UGTqVJHRo/U1MGCAfri98ILI3Ll2Ac97BiZJUZF190zQKd8usuQavd7B5neadeEsWCAC\n9Y3mNdTLgpaXJfbKIWHkS0pEYmPtAnkCkwXyJDbWHrDWbnm5yLZtIj/9JDJqVGgmngRlkXI/8dbr\neP6mCVL+5YSmO5dv14br18XNnvObb7SLprkbYMlc5xjJK3pRZKse8O2lokLkwgtFxo4Vqax0++K/\nfxX5+OSWW3/L7xVZ/v8Ofvz8cz3Tdt++xhkFYQH1VlBXp++Vl14SGT9epGPHQ2iy1o7PRP49WOSz\nMSL713vdRRv5ppsVRj5qomvmzy+mrs5Tv6SuLo/583O54QYdYVBZqeOEXdvu3Z6fvW2ufUSgSxe9\nbd/ufeKJTreOgOjBWIzNpnXdn322Ic2eNoXkkqNg3x06zrvMrpVAvxoHA26BHuf5PN/y5XDJJVrJ\n8nzva3JTus3BkKocT739qhxKt40MG5XOpCS9YPjVV8Pll+vwz6Qk4NiHoGyjnhtw1rue6qSu8Lrk\nXrDpn3CeXrGkshL+9Cf9P05zD+wIVrRGK4iJgWOO0dsf/wh2ez2FhU3vmUWL6pk7V2sApTenPxdJ\ndB8BY1bCuqdh4alwxAS92LvbGgNDhujlD2vcgvTi432sJewnUSM1fNZZU1my5B4aTwZJTp5O5855\n7NmjNc5dhtrX1rWr9/Tk5IaotWuvncrcuU3z6tZtOi+/nMfFF1s0qzACFvL2tWBzyZdP0cExB/av\n1Uaotgw6HgkX/ten7PIPP+ib/8UXtYa7L1b/p4heP4+iU/K+g2n7KtLYduRijj6r7YsiW0lNDVx3\nHezapRcRT0lBq5QWXgidBsPJM/SF5m6w6yogNQN+pyfE5eXBjz/q1a4OEo5Svm74umeGDZtOz555\nfPaZXg/4wgv1NmRIlMzMLdsMy++GPSvg5JlahNBJQQHcdBPExkJdnZbEbq8kd3NSw4Fys1wArAV+\nBu7z8v1dwCpgJbAI6OPjPO3rq4jICSd41y8ZNOhh2bpV+0XbGuXkC28++f79J8nTT9vl5JNFjjhC\n5PnndZ4BozktkzDCVyTQiqVbxP40niJrzyT4dCv89JNIjx4ib77Zcp6OrSVS9qrnepllryaHnW/e\nRW2tyPXXi5x9th6YFREdHvnhMSJrnjoYXucRRDAvXqSiRFav1mMTW7c2OmnpMpGCRscUJLU7WiPQ\ntDSOVVmpI6fuuktk0CA9oDx+vP7991gTmRxctn0s8v5AkS/GeugYBcoFi5VrvCqlYoBngdHAMUC2\nUuqoRrstB04WkROBt4GAr6YwcKBrWrc7ZRx7bAy9eukWU6Bm8fXrl8GiRbmMGzedESPyGDduOosX\n5zJxYgZFRfDKK/DJJ7pF+9BDepahX7hrmdTs06/f5gR/PdFWkJnpuUIT6NZrTPV3zFwI91wEU3+v\nX2cuqKZ4zdIm51i3TrtmnnwS/vCHlvNM72VjRWI+5VXJ7KtIo7wqmRWJ+WHjqmlMbKx2Px15pO6p\n7NuHlpzImg9rntSyBTGNpA9ik6g/YOeWW3RLvldjPaa4DlBf4ZlWX6nTwwBv98yiRQ2TtRIT9RoE\nTz0Fa9fC0qV6EtasWdCnD5xzDjzxhO7BhJHzofX0vAAu+lHPVP74JFj1GMUb1vH849fy4asjeP7x\naym2b7Ika7/dNUqp4UCeiIxxfr4f/VR5wsf+JwIzRaTJmmX+uGu++66YoUObaooXFQV/eruLn3+G\np5/W3bKxY+Huu+G449pxol1FsPicpl3xkV/oWXhhxjMPv82k/1kJUg8qhif/ciJ7987inhM/arpy\n18qLyJvx4cG09ev1UoHTpjXSaG8FpdsclGy0061/ZtgaeHfq62HiRPjmGz1zt2tXYPdy+Hw0xdv2\nMfuLGuoFYhSMz0pkYayD/P/ryNKl+kHhQYRdI22hvFzPIp4/Hz76SM/Idbl1zjsPOoTHc6z1/LaR\n4n/fzMx5S5h6WU2DxtOCAa3XeGpEc+6aQHi9egFb3D5vdab5Igf4OAD5eiCSQYcOucB0tFjVdFJT\ncxGxzsA7HHopOIePBvWRR+ol4tavh4EDdev0/PN1K79Nz7K4Dp43L+jPYdJKc2fT2uXMfGkOdfX3\nUyf/Q139/cx8aQ5luzb6kDto6ObY7fqmnTy57QYedIv+6LOGRoSBB+1znjFDt1LPPdd5HXU9ieJe\njzNjQa1Hr+ex+Z154OFSXnrJi4EHPU4jdZ5pUqfTI5yUFG3Qn30WNm7Ui7UMGgQzZ8Lhh2sJib//\nXfcAI6KV36E/s787/KCBhwaNp9kzJzd/bDsIRHSNt6eH13+1Uupa4GTgHF8nmzJlysH3WVlZZGVl\ntaoQmZlQV5eBNvCa+nqdbgUFBTqKJCFBuyfy830Pmhx2GPzlL3DPPVo18f/9P5g0Sbfsx41zRlk0\nR/kW3+mdBvtVj0BQVQWbNmkNlby/FLBh5xwaBthS2bBzDit/PpGy87yIrHXMBGDLFm3o7r0Xbrkl\n2DUIHUppfZvJk/VC4Z9+Ci/O+Zy/XiEeBuDJP+xka/lkjj/et8jb0nWnMqTvd55LRAanGkFDKS2X\nfNRR+v45cED/z+bP1+69xMSGVn5WVuA0dwJNffn29ms8AYWFhRQWFrZq30AY+a1AX7fPvYEmJVVK\njQQeAM4WkZrG37twN/JtwWbThtZ9tDo/35qQQ4dDG/iKioYokpwc7VNsLr/ERLjhBrj+en1hPvWU\nNv633w633dbMsb5aJ0Fstezbp424t23HDu03HTAAfi1JxFt46W+xI8n7oISpl+xv6J5+kEbu039j\n+3Zt4CdM0Ft78Vv8KkTRS0rBI4/oh/0550DWMdtIPd1zn9Qk6NvNtwFwFG9l1KOfkJpYRqbNjt2R\nSVlVKsVXr8M2KHx6NoEWKOvYUbtCx47Vrfgff9QG/7HH4Kqr4OyztcEfMwb6td0LYhk+lWVTWieo\n2LgBPHXqVJ/7BsLIFwEDlV5M81fgasCjTauUGgK8CIwWkV0ByLNZ6q0NV8du953emgtXKf1AGDkS\nVq3Sfvsjj4Qrr4S77tKtFA/c1vFsVXo7ENHG2pchLy/XRty1nXSSHhQdMAD69tUxvgDXXhvP3LlN\ndc379+tM7ulVTP+Ig37m3POqSFIdOedc/ZC8++72l1/3rISEuDqqa2PJz1dtC0cLgxjzhx7SDYF/\nPt+LsoubGoD6BN8GwO7IJCG2htIDNkoP6IswLXkfdkcmtkFWl7x1tKX32x6UguOP19v99+v5LYsW\naaM/daruUbta+WeeqcsRKsbnTiNv0mKmXrSzodHzUXdyn2yFsmwbCUicvFLqAuAZtI8/X0QeV0pN\nBYpE5EOl1CLgWPRDQAHFItIk8tmfgVeHQ+t5u0d2JCTA1q2Bb82vWaNjehuzejUMbqf3ZOdOeOEF\nvQ0dqg3eiBHOiKBdRSx99l6G9F3m1hUfyhkTprdpUK22FoqLfRvylBRPQ+7aBg6E7t1bF520aVMx\no0bNZMOGhgHwmJg8FvxrFCPrrtLRQU4cFf0YMf0nrsxO4eFmlHdbwuGAjL61VFQ2tFmSk2op3hzX\nut8+zGLMb7llCSXLL2bu7fsOGoBxz3ci5+EP+d0l3hc09/t/YDG+5k8UFwdngl99vZ5YN3++3tau\n1b1HVyu/SbSS1VQ6KH65D7MLqzwG1zP+uKVd11xzA68BmfEqIp8Agxql5bm9D/xKGo1YsaJp6F51\ntU73NVOyvfz2m75A3S/YpCSd3l66d4cpU+C++2DOHLjjDn3Ou++Gc0/vx3mPvAi8RnxcJTW1ScAN\nbLkpHdthnucpK9ODU40N+Pr1+oHXo4enAT/1VG3E+/eHTp3aX34XrlC5yQ8+wvatlfTsncTxQ3K5\n9d7efHN/R9JTtZHf/VsXRj36HpdeJZ6rKLUD+7o9JKgYKmioQLwqw76uHputFcu1NbcSUwiMfHn5\np7z//VJOfPAxenTezo69PVm/8wE6vPmWTyNvs0H+q3Hk5NQTH1tLTV0c+fnhYeBB93ITEiA1znHQ\nnVStbK3u/fpLTAyccoreHn5YP3QWLNAG/777tLvR1cofPhzirNYCKLOT0SOJvCsaFh4iPtGSay5q\nZA2CibfBXKUCM8ibnKyngefk6Cicp56CiRPLqKp9GfgrVbW6dax4mEefupOuXdMPGvENG2DvXl0O\nlxE/6ii4+GL9PjNTuwOspp/6ijljn3FzfRzP7t3ZXPjsewzocB1bd/di9dajueKiEh55/Hi/5y9k\n2uxU13n6JGrq4sm0rQNaYeSbW4kpBOj1Wo9h/c45rN/ZkL59+5vNHpd9WgEjn7kPe+kAMtM3YDvt\nCRp5TkNGZiZcekIBL4zPobougYTYam6dnU9miGQXbDa49lq91dbCsmXa4N95p34gnX++NvgXXADd\nullQgGBec75mSYViw0+Bsvh4z5mW8fHWiXkFUxXyvPO8izv16jVFHnhA5JVXtGDV5s2NdMtDgY/F\nENav+l5SUixS7qwokXm510lyQpmkJe+V5IQymZd7XdtEug7OKE4L+YzicePaIeblbZasH4tQBJyK\nEqmZ61m+mrlhVD43tm0Tyc8XufxyPXt76FCRvDwt6RzQ+2vZBKmfy8FNlnkR8WslHAoqlCLa0CYl\naW3rpCTr5XhXrxaZPVu/WklWlnfJhhEjHrY24/bgWgwhoUw6Je/RBvfO8TLuilxrVQg3zZOSl/rI\nskezpOSlPu0z0mGi4NguKevSZVrywt3Iv5kWNrIGYV8+H1RViXz2mci994occ4xWQ73uOpGCAr36\nV7sJ8EOvOSMfVe6a7GwdsRKMNSQLCuC+iQ4GHG5n8q+ZPPGMLaCRAu706uWSbPCMWOnZM/wUnBzl\n/ch5cSYV1SlUkAJAzovPcdLJ07BUuTMzG9t1I7H5EwKZZAsLMS9v4xrTHm26XqsHzu6/Y386dkcm\nmTY7ti5l4TMZKsxcYq0lIUEHQIwYAf/7v3qgeP58mDtXz+c4/vgGX/4JJ7ReOmXPVjsx5Ql0SmkY\nByorj6d+q50uA41PvlmCIcfrcMAnLxaw9gk3/+KL+YwcmW1J3tOmjWfx4jx27myIWOnePY9p03ID\nn5mf2Hekk5BYTYXb/RyfEEeHtCQsf1CFiZEOBAfHNVSMUx7ieKAZI59ko2DnInLuHUJCbA3VdfHk\n/20F2eHy/2hucfIIIiNDz2m57TYt+fzFF9ro//73OhBjzBht8EeObCQD3Qi7I5NBcZ4Pvfi4GtY5\nMukyMLBljhqp4WCy4msHg9ZlkJLQ8BQur05m3aBihpwW+IvW4YA/jplBUvzzbN/bg56dd1BZczsv\nf3xn2ERPuPAVKvefT5dz7nnPs7/iGVwPqrTkiaxcfjv9jjopVMUNTyod8F5vz5ZvTAKM3erTKIY6\nRLG1RJq+UFv45ZeGEM2vvtKh0K5W/uDBnq18hwMm/b6AF8fnUFMXT3xsDbfOzufJt9rXULQ8hPJQ\nI7PTSmpq48HNyNfUxpPZaSUQ+GjRn7538EbuPSTG1wDrAKiquYevvs9mxAXhdaO4Zh7n5DQsipCf\nDyk15eyveAitLVQPxLC/4iEqS7ZC48lf7SUC9PZbxe4VXlwb1Tq9p/d4YFeIoruRj49v/QS9YKD1\n023Extr81k8PR444QgvOTZyoQ5k/+0wb/DFjtIF3GfwRI/RvcvLlp2O7bSLxsRXU1CXz6BOnW/Jb\nGSPfDrp0EWoTPWWNUxPLiOtiTS+kY80KEuI8lSAS4mroWLMCCPAkgADgbWzktac7od0NeW57CsuW\nH2Dw2QHINAxmrAYMX37dZvy9viSerdJuaisOh5b0cF8J6YYbWpYCiVRSU+F3v9ObiJ4o6dLXyc6G\nIUOKWf3TdMqrHsfVs5351N1ccsmDzY+9tIPwG7mLBLoMIS4uBhGordOvcXEx0MWCtbvQk5Xakh4O\n2Gy6u+q6gQce731Koa/0NhFBevutossQUPGeaSq+2evL1YNKTtYGJjnZOu2m9rBihaeBB/15xYrQ\nlCeYKKWXQbz3Xvj8cz0pkbqX2LXHZeABUtmw+SkmP/hiwPM3Rr49JNlYKq9RUZ1EZU0yFdVJLJXX\nLHMRdO43hJq6RBz70ynacAqO/enU1CXSuZ81DxUrSOjYlfg4z0ia+Lh6Ejp29f/krhmr7rhmrEYi\nSTY47TWISYLYVP16WuuuL9eQVgQMbR2ydOoEsaocr9FmWysDnl/0uWuC4Jd1OGDUzdmkxo1sUPyr\ntVE8ypqW05pNNm6a9ik/bB5CfGwNNXXxnNB3Ba8OtbVbKyfYZGZCXHwsNbUNaXHxsYFxJ0RoeF6z\nZGZDj5GtvpZdyqgd4htkA3JybGHjDhkypEGYzEVCgjULV0cCh9m8R5t1TW9Jd7ztRFdL3l6ghaY+\nG6Vf7QXWZGPXF2jpARvfbRxK6QHbwUEuK1i8GL5ZfwYV1Snsr+hERXUK36w/g8WLrcnPCtzdCWlp\nAXYnOMPzHGV9KCrOwlHWJyLD85qQZNMCdK2oh92uZQ2Kn8lg0QOjKH4mg6tOK7DsmmwrNhvMnu3p\nTpo9OzweQKHg2htuRamHaViytAylHubaG24NeF7RE0IZRCXBYIervfKK1rNpzMsvw803Bz4/Kwm0\nnrgLv6WGw5A1a7SmyrBhLaublm5zkLIwg5REt7DeqmTKzy8Oq1BFq37/SMPhgD59iqmqmo0r2iwx\ncTxbtmQEPIQyelryTr+su9/aKr+sq1Xax+Yg67gi+tgclg5y9e3btvRwwNfSiI0HZAOVl17ERbHv\nQBwVFYqcHN/LMra1zKEgN1fLWY8fr19zW5j3lp5kJy7Rc1wiLjGe9CS7ZWVsD1b8/pGIzQazZmWQ\nnJxHWtpUkpPzmDWrfQa+RXzpHYRiwx/tmooSmZd7vadmSltFqtrCpnlSX5AsNQWdpL7AWkGrYIuv\n+YtLvK1TJ+vF20REli3Tebn/f9LSdHprCXaZm2P16qY6RdCCRlK4C5QZvBIo/SsOBYGykhKR5KQa\nj5siOanGGkMYghtqwgTPG35C+wXrLKWkRBtJj98hueGBVLLZIcsWrpKSzY6g5Wn18YFm9mzvRn72\n7BYOPNjwSLO84dFuwkQELhyYN0+kj61Eso5fJn1sJX41LJoz8lHjrrHbAdUoWEjFWTPwVGanus7T\nNVRdZ13InsOh3UPu5OeHh1uhMa5BaXdcg9IFM5aSMTCFUZf2ImNgCgUzlgYkT5tNu2vcyclpvUug\nuTKHgmHD2pbuouDrbDLuLGbUY4vJuLOYgq/DbFAiSIERkUCD/lUG7+aOYu0TGXz8YoE197Qv6x+K\nDT9a8u3q4rYTx9YSmXWLp2to9i3XiWOrNa2TQLgjgoWvHtWaHxySnFAm6R1L5JT+yyS9Y4kkJ5QF\npEUfbS15kbb33MKxDh4Yd5IHy78qkbJZnv+PslnJsvyrwEsNR01L3rUknzv+Lsnni+WrbNz8Sj4V\n1Snsq+hMRXUKOa+8yvJV1owmhfuUdXdsHR3k//EmkhPKSUveR3JCOfl/vIkDW9eTPbxRiN/wAuxr\nS/zO09+WuKXhne1k5kxY80Mpr/9jNWt+KGXmzOb3d9U1vaODU/oXkd7RgUjoeiNNiLYJa36SabMT\nq2o90mJVDZk2e8DziprJUFYuyeeNuvq4Zj8HEpcRum+igwE97GzYofXrwzJCocxO9lkfMOqYjyjZ\n151unXaS3rWW0p6XMXN8LimJFaSgw/yeG59Lef/lfmeZmQnVVbW4X8411bVkZrb+NwnmWgStwl7A\nUWtyOKpLAqyphrTmtXg6dNDL6+Xf0iB/fdNL+XToECYum2icsOYHUl/tRY+qlrLG/6MAEDUt+WC2\nxlyz99yxevZe9mkFFM/IYNGDoyiekUH2aWHqz0zNpK6mnPSOuzm69xrSO+6mrqaCAxUd9LiFGzV1\n8RzYc8DvLG0dHeTffINn7+HmG7B1bJuDM2zC+9qhxVO510H+LTmkJFbQOWUfKYkVvHpLDpV7w2Tg\nJsnG0rp8yquS2VeRRnlVMkvromDCWjvZu3l9m9L9IWpa8hC81phr9l5Ojl4Fvr7e4u6986ZX9RXE\nOVvBfJujp72H2U1Sugs61ipi3a6s2lrFp98O4JpOni2X+Ngavl2VSb9T/Mx0zwqyT5vHyGMWNqyK\nlFYKe26Aw8NPpbNFnAP7CTRMbKquiyehzO7z98602alZlQBux+jFzO1A6K+RYEuBhDud+w6EnT7S\nA0zUtORdBKs1lp2tZ7h+/rl+tXR2pfOmd8fKaB5/KNlop7LGc3CksiaJ7ull3PSSsyVXrltyN72U\nzwnDAvBDCQhgSytl6IDvsKWVIs70SKS0MpPaKs9ue21VDaWVmT6P6dI7k+REz2OSE2vo0tv3McEk\n2FIg4Y6KSaC6ttE9XZuAajxuEQCizsgHk2A9UNpz04eKbv0ziY9ptKxZTA1HHH84b3+XTcbEYkY+\ntpiMicW8/V026en+51kqQ6iqSfRIq6pJpFQiU/1q03YbE+Z4PhDvmJPPpu2+LzTHAR0M4H7Mza/k\n4zgQHs3kSAoeCAZ2RyZ19bEeaXX1sdgdmQHPKyBGXil1gVJqrVLqZ6XUfV6+T1BKva6U+kUp9bVS\nKown5Icf7bnpQ4Uk2LjlVc+y3vJqPpt3pJOa6tmSS0kJTEtu+Sob41+c5ZHn+BdnWRbtZDWZmfD6\n154PxDe+zm7WINrt8MEPnse8vzI7bFrK4RjBFErK621ee7bl9Rb8Q3zFVrZ2Qz8o1qOX/YkHVgJH\nNdrnNuB55/urgNd9nKtdMaLRjisG2iPGPJxioN1wxfS7lzUtTWTBAuviuBcs0OdzzxN0eqTikllI\nS2udzELYx8k7KSnR10i4lSvYzJjh/ZqdMaN958NKWQNgOPCx2+f7gfsa7fMJcKrzfSzg8HGu9tXw\nEKCtN32oaM7YWFWHkhKRhATPPBMSIt+QtNUgRso1YhB54w3vkzffeKN952vOyPstNayUugIYLSK3\nOLDzD90AAAvqSURBVD9fCwwTkTvd9vnRuc925+dfnEZ/d6Nzib/liWYiRaZVy/56LuTtGpi2VmrY\nM9op0qWG20OkXCOHOg4H9Oihr1UXMTGwY0f7frfmpIYDEULp7cSNLXXjfZSXfQwtYLNFxo3bXCir\nVXUIu8lMISJSrpFDHZsN5syBG2/UkzZFYNYsa367QBj5rYD7QGpvYHujfbYAfYDtSqlYIE1E9ng7\n2ZQpUw6+z8rKIisrKwBFNASbUBgbY+AMkYQ/DZPCwkIKCwtbtW8g3DWxwDrgPOBXYBmQLSJr3Pa5\nHThWRG5XSl0NjBWRq72cy7hrDAaDoY1Y6q4RkTql1ARgITrSJl9E1iilpgJFIvIhkA/80+mL3wU0\nMfAGg8FgCDzRs8arwWAwHKIcGmu8GgwGg6EJxsgbDAZDFGOMvMFgMEQxxsgbDAZDFGOMvMFgMEQx\nxsgbDAZDFGOMvMFgMEQxxsgbDAZDFGOMvMFgMEQxxsgbDAZDFGOMvMFgMEQxxsgbDAZDFGOMvMFg\nMEQxxsgbDAZDFGOMvMFgMEQxxsgbDAZDFGOMvMFgMEQxxsgbDAZDFGOMvMFgMEQxxsgbDAZDFGOM\nvMFgMEQxxsgbDAZDFGOMvMFgMEQxxsgbDAZDFGOMvMFgMEQxfhl5pVQXpdRCpdQ6pdQCpVQnL/uc\noJT6Sin1o1JqpVLqSn/ybI7CwkKrTh0Soqk+0VQXMPUJd6KpPv7Wxd+W/P3AYhEZBHwGPOBlnzLg\nOhE5DhgDPK2USvMzX69E0w8L0VWfaKoLmPqEO9FUn1Ab+UuB15zvXwPGNt5BRNaLyAbn+1+BEsDm\nZ74Gg8FgaAX+GvluIrITQER20ILxVkoNA+JdRt9gMBgM1qJEpPkdlFoEdHdPAgR4CJgtIl3d9t0l\nIof5OM/hwOdo102Rj32aL4zBYDAYvCIiylt6XCsOHOXrO6XUTqVUdxHZqZTqgXbFeNuvI/Ah8KAv\nA99cIQ0Gg8HQPvx113wAjHe+vwF4v/EOSql44D3gNRF5x8/8DAaDwdAGWnTXNHuwUl2BN4E+wGbg\nDyKyVyl1MvAnEblFKTUOeBVYRYOrZ7yI/Nfv0hsMBoOhWfwy8gaDwWAIbyJyxqtSKmp8987xiqip\nk1IqIq8pbyil0p2vUfHbuIiW+iilYkNdhkChlDpDKTXAinNHzA2plDpWKTVaKRUnUdD9UEqdpJR6\nC8gBiOQ6OetyDYCI1Ie6PP6ilBqilJoP3AWR/dsAKKVOU0rNUEqNh6iozylKqX8CD1tlGIOF895Z\niJ5M2kQxIBCEvZF3Sic8D8wBbgEei+QfVil1mFJqJvA8cDzOCKdIbJUozTTgU2CSUuoMZ3rYX1fe\nUErFKKVeA2YB80TkL6Euk78opX4PPAsUASOVUo8opY4NcbHahfP3eRb4B/qaOxyYopRKCW3J2o5S\nKl4p9Q/gJWAGsADIcn4X0PsnEm7Ge4AqETkRuBk4Bj2AG6n8Dd2YGo5uxV+HTqgLaanagbNFuBq4\nCngO/RCO2Na8s9xdgNUiMgdAKWWLcPfGMcA7IvJP9L10KvAHpVTn0Bar7Th/n8+A80RkNvC/6ECO\n2lCWq50kAl8AZ4nIh8DbwGCnpyKg909YGnmlVD+3p/P/iMhdzvfnA12BY1y+7EjAWZ9k58cJInKn\n870DWK2UGhSiorUZpdSVSqm7lVKnO5PeABYB3wCJSqls534R0TNxq8+ZzqQbgPOVUvcqpT5Ht7Je\nUkpFhBSHW31OcybtRv8unZyz0ncCfYHhIStkG1BKDVdKHen6LCLvOCP4RgHfoVvzjyqlBoeskK2k\nUV3KRGSeiFQ4P8cBdSJSG9UteaVUplLqY+AV4J9KqUEiUu78LgvdEnkNuAztj+sdssK2gkb1meNe\nHycC9ARcdQzbFqNSKlYp9TBwnzPpH0qpy0Wk3tmi3wT8G7hKKdUl3HsmXurzglLqShHZAzyD9sdP\nASYAHYFxSqkWJw+GCi/1eVkpNRpYhp6x/opS6k0gFvgN6OE8LiyvOaVUZ6XUR+gGxJVKqVRnuqu8\ne4BrnJM1y4EblFLdvZ8ttHiri4iI093pssFfAJc5753oask3usjuAb4VkfPQEgjTXP5DESkUkaEi\n8gK6m9YNOCLoBW6BZurzGbo+x7i+FJF1QB1a6C2scRrtQcAkEXkKyAMmuFpQzhbJV8A24HKAcB47\n8VGfO5RSR4rINGCwiHwhIruAAmCsiIStW8BLfaYAk4ADaHXYt4BPRCQb+BatCBvOg7CpaD91rvP9\n2dBQXhH5TkTmO/edDwzB2VgKQ3zWRUTqnYbe7tznnEBnHnIjDyQBuLWSVgGIyLPAMCBbKdXNuY9y\nfrcaSEf/Y8INX/V5Dl2fa1z1cfIvoJtSKjbcbjil1PVKqXPc/Lc7gS5Ov+E7aH/8la7WiIhsAl4H\n/qqU2o+ub9jQivr8iP59lIjsczt0APBtuLmgWqjPW8AvwFUisltE3hCRV537DULPQg8r3OqTJiLb\n0IOSbwKVwKlKqZ4+Dj0Z+JUw8s23ti7Oa60ep91wfh/QHlbIjLxSapTS4md/c3aTa9H+wyFKLzRy\nAvATkIH2wwPEKaUuUUp9ir6gS8Olu9nO+gD0AvqEi3vD2YU83OmPvgEYBzynlOoAlALHAR2cu89E\nt9q7O48dDLyMfrCdKSIFwS5/Y9pRn8tocGWcp5T6FjgXeDkcfqM21mcGMFZpcUBXfVahW71Lgl/6\npviozwtKqXQRqXS6NxejB8TPdTsuzXnPFQEXAI+6+bdDQnvq4nTbxIrIb+iAkuGu9IAVTESCvgED\n0V3GS9EXXAFwO9r3ORktZrYEOAWYB9zhPG4k2sc4NhTlDmB9Jrgd2w8YE+o6OMsS63w9EpjjfB+H\nDvfMBzqju5RnAynO798AJjrfHw5cHOp6BKA+E5zvLwEuC3U9Avj7DIiQ+sxERwS573sX8Ag6ljzJ\nmTYSuDTU9fCzLilu6fFWlC1oA0luXfp6dBjX9yLyvvO7xcCTwL9EZJpSqr+IbHR+9xXOLgzwqYiE\nhQvAj/osxa1LJtrFsSkUdXDhdC39FYhVehJQGnqsANGj/ROAHcBT6IfU1WiD/ga6i/yNc99f0Q+0\nkBKA+hQ59/0g+KVvSgB/nw1AyNdyaEV97gS2K6XOEZEvnIe9jDaMi4G+SqkhIrI4BMX3wM+6LAIy\nnHXZLiI1VpQxKO4apdSNwFZgmjPpR7SvPdP5OQ598f3d+XmT87hbgJuAFRA+g0R+1ieHMKqPUuoc\n4Ht0F3I9uk41wAilF3lxPcimAn8TkdeAhcD1SqkV6Lr+GIqye8PUJyrqI2jDOcXt0IvQveOVwHEi\nsj2IxfZKAOryA8GoSxC6MR3QgzwTgeXAUc70p9FujaXo2azHAR8B3Z3f/xndohoa6q5YlNfnLPRC\nLq7PzwO3oSWkv3emxaD91G+hxw9wfu4f6vKb+kR1fd4EMp1plwJnh7r8kViXYP0z+jpfHwfecL6P\nRQ9Anun83AeYDSQ6P6cEo2yHen2AFPTsO5dPcRzwmPP9SiDX+f4UoCDU5TX1MfUJly1S6hIUd42I\nbHa+fRrop5QaLTpSYZ+IuEb5b0XHudY6jwnXmNeoqo+IlItIlTREjoxCz8QFuJH/397d4kQQBFEc\nf7UJHAGFwWM4EIYzkJCA4wDcYMMFSDAIuAQXQGAxGFAr4CFqMATBbtiZmsr/d4HpZyo9/VGdV63v\nlH8pj1OMcR3kqW2TPFVO0P00lyyj3uCz/RIRS0nnkh5sfwxrVxeSdiSduMAxtb/qlCfyDLiVxyG/\nNxzfldkOJT07z/vOAnlqWyePh+lwVdWzjPpoSEQsnDe8bpSXF1bK3fIn587/rHTKM8wwdpUtGG6V\nG96vyl/OtynHtgny1NYpT/UsY8/kPyMbj+0p22pe2r4fcwz/qVMe246II+W64oGka9vLiYe1MfLU\n1ilP9SyjP/8XEaeS9iWd2V6N+vEt6JQnsuHbsaSruWeRyFNdpzyVs0xR5Beeab/x33TLA6AXHvIG\ngMYqdKEEAGwJRR4AGqPIA0BjFHkAaIwiDwCNUeQBoDGKPAA09gVTYaxihHNZpAAAAABJRU5ErkJg\ngg==\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 }