Drake vs Kendrick Rhyme Scheme Analysis¶

How does lyrical complexity, measured through rhyme density and lyrical complexity, relate to popularity and listener engagement in hip-hop? Specifically, how do these patterns differ between two of the genre’s most influential artists, Kendrick Lamar and Drake, across their careers?

In [1]:
import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb
from collections import Counter
import nltk
from nltk.corpus import cmudict
from collections import Counter
nltk.download("cmudict") # dictionary for rhyme scheme analysis
from dotenv import load_dotenv
import lyricsgenius as lg
import requests
import spacy
import re
import time
import sqlite3
nlp=spacy.load("en_core_web_sm")
[nltk_data] Downloading package cmudict to
[nltk_data]     /Users/mattabatangle/nltk_data...
[nltk_data]   Package cmudict is already up-to-date!
In [2]:
load_dotenv("3510.env")
Out[2]:
True

Test to make sure stuff is working¶

In [3]:
geniusClientAccess = os.getenv("GENIUS_CLIENT_ACCESS_TOKEN")
clientID = os.getenv("SPOTIFY_CLIENT_ID")
genius = lg.Genius(geniusClientAccess)
genius.remove_section_headers = True
In [4]:
temp = genius.search_artist("Kendrick Lamar", max_songs=5) # test
Searching for songs by Kendrick Lamar...

Song 1: "Not Like Us"
Song 2: "HUMBLE."
Song 3: "euphoria"
Song 4: "m.A.A.d city"
Song 5: "Swimming Pools (Drank)"

Reached user-specified song limit (5).
Done. Found 5 songs.
In [5]:
genius.search_artist("Drake", max_songs=5) # test
Searching for songs by Drake...

Song 1: "God’s Plan"
Song 2: "In My Feelings"
Song 3: "Hotline Bling"
Song 4: "One Dance"
Song 5: "Hold On, We’re Going Home"

Reached user-specified song limit (5).
Done. Found 5 songs.
Out[5]:
Artist(name=Drake, num_songs=5)
In [6]:
clientID = os.getenv("SPOTIFY_CLIENT_ID")
clientSecret = os.getenv("SPOTIFY_CLIENT_SECRET")
grantType = 'client_credentials'
bodyParams = {"grant_type": grantType}
url = 'https://accounts.spotify.com/api/token'
responseJSON = requests.post(url, data=bodyParams, auth=(clientID, clientSecret)).json()
headers = {"Authorization": "Bearer "+responseJSON['access_token']}
rootURL = 'https://api.spotify.com/v1/'

Gathering each artists unique ID will make things easier when scraping their entire catelogs.

In [7]:
kendrickSearch = requests.get(rootURL+"search?q=Kendrick-Lamar&type=artist",headers=headers).json()
In [8]:
kendrickID = kendrickSearch['artists']['items'][0]['id']
In [9]:
drakeSearch = requests.get(rootURL+"search?q=Drake&type=artist",headers=headers).json()
In [10]:
drakeID = drakeSearch['artists']['items'][0]['id']

Now lets get started¶

First, I will scrape every available song from the Spotify API for both artists. This will make it easy to then pull 30-40 indivudal songs that will give an accurate representation of each artists discography over time.

In [11]:
def get_all_albums_and_singles(artist_id, include_groups=("album", "single"), market="US"):
    albums = [] # list to hold
    params = {"limit":50, "include_groups": ",".join(include_groups), "market": market} # Limit to 50 albums (Neither artists have more than 50)
    url = rootURL+f"artists/{artist_id}/albums" # base url
    while url:
        albumSearch = requests.get(url, headers=headers, params=params)
        if albumSearch.status_code != 200: # Troubleshoot
            print(f"Error: {albumSearch.status_code} for {url}")
            break
        data = albumSearch.json()
        albums.extend(data["items"]) # Extend instead of append to add multiple items
        url = data["next"] # Iterate
    
        params = None # Params already set as of here
    return albums
In [12]:
kendrickAlbumsSingles = get_all_albums_and_singles(kendrickID)
drakeAlbumsSingles = get_all_albums_and_singles(drakeID)
In [13]:
def get_album_tracks(album_id):
    tracks = []
    url = f"{rootURL}albums/{album_id}/tracks" # base url
    params = {"limit": 50, "market": "US"} # reasonable limit of 50 songs per album

    while url:
        trackReq = requests.get(url, headers=headers, params=params)
        if trackReq.status_code != 200: # Troubleshoot
            print(f"Error {trackReq.status_code} fetching tracks for album {album_id}")
            break
        data = trackReq.json()
        tracks.extend(data["items"]) # Extend instead of append to add multiple items
        url = data["next"] # Iterate
        params = None # Params already set as of here
    return tracks

Next I will iterate through each artists albums and gather track data¶

In [14]:
rows = []
for album in kendrickAlbumsSingles:
    albumID = album["id"]
    albumName = album["name"]
    releaseDate = album["release_date"]
    albumType = album["album_group"] or album["album_type"]

    tracks = get_album_tracks(albumID)
    
    for t in tracks:
        if not any(a["id"] == kendrickID for a in t["artists"]):
            continue
        rows.append({
            "artist": "Kendrick Lamar",
            "artist_id": kendrickID,
            "album_id": albumID,
            "album_name": albumName,
            "album_type": albumType,
            "release_date": releaseDate,
            "track_id": t["id"],
            "track_name": t["name"],
            "duration_ms": t["duration_ms"],
            "track_number": t["track_number"],
            "disc_number": t["disc_number"],
            "explicit": t.get("explicit", False),
        })
In [15]:
kendrickTracksUnfiltered = pd.DataFrame(rows)
kendrickTracksUnfiltered
Out[15]:
artist artist_id album_id album_name album_type release_date track_id track_name duration_ms track_number disc_number explicit
0 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 5gOfC9UzZQzTyShqPMrpjT wacced out murals 317092 1 1 True
1 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 0nj9Bq5sHDiTxSHunhgkFb squabble up 157992 2 1 True
2 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 45J4avUb9Ni0bnETYaYFVJ luther (with sza) 177598 3 1 False
3 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 5ho7VSXSmI2KM2nDjcnLyz man at the garden 233173 4 1 True
4 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 5S8VwnB4sLi6W0lYTWYylu hey now (feat. dody6) 217478 5 1 True
... ... ... ... ... ... ... ... ... ... ... ... ...
166 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3qHsYfN7ua1WGhQn1wquIn Push Thru (feat. Kendrick Lamar and Curren$y) single 2012 7HetWRCNDPHhiksK6VrAG1 Push Thru 300800 1 1 True
167 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3qHsYfN7ua1WGhQn1wquIn Push Thru (feat. Kendrick Lamar and Curren$y) single 2012 1kDctACNpFgSB7lZXPrazv Push Thru 301240 2 1 False
168 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3qHsYfN7ua1WGhQn1wquIn Push Thru (feat. Kendrick Lamar and Curren$y) single 2012 4M6IrkoE9LQMZzZx8eHNQD Push Thru - Instrumental 300346 3 1 False
169 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 1Jmy19ydnxfHcOdN28cw7q My People (feat. Jay Rock) ("Bastards of the P... single 2011-08-16 0WkQfxU3podAt3UAenbzPd My People (feat. Jay Rock) ("Bastards of the P... 241086 1 1 True
170 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3X2elJMfPKM7pXo855g1dy She Needs Me [Remix] (Ringtone) single 2010-11-22 1ylD5Zf0hLc9su7OJOU6u5 She Needs Me [Remix] (Ringtone) 27003 1 1 False

171 rows × 12 columns

In [16]:
rows = []
for album in drakeAlbumsSingles:
    albumID = album["id"]
    albumName = album["name"]
    releaseDate = album["release_date"]
    albumType = album["album_group"] or album["album_type"]

    tracks = get_album_tracks(albumID)
    
    for t in tracks:
        # Skip tracks where artist isn't primary
        if not any(a["id"] == drakeID for a in t["artists"]):
            continue
        rows.append({
            "artist": "Drake",
            "artist_id": drakeID,
            "album_id": albumID,
            "album_name": albumName,
            "album_type": albumType,
            "release_date": releaseDate,
            "track_id": t["id"],
            "track_name": t["name"],
            "duration_ms": t["duration_ms"],
            "track_number": t["track_number"],
            "disc_number": t["disc_number"],
            "explicit": t.get("explicit", False) # default false
        })
In [17]:
drakeTracksUnfiltered = pd.DataFrame(rows)
drakeTracksUnfiltered
Out[17]:
artist artist_id album_id album_name album_type release_date track_id track_name duration_ms track_number disc_number explicit
0 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 4u43I0LP2Xf85OAS85eG0R CN TOWER 241889 1 1 True
1 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 7DL2F2bueQycqYjqsjHYjG MOTH BALLS 212629 2 1 True
2 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 1F6nHHDJyTHLgDDFj1ZZDt SOMETHING ABOUT YOU 218682 3 1 True
3 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 5aIEFCKhVUM5sKkwOSdFiM CRYING IN CHANEL 199602 4 1 True
4 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 4GqhG9rDuRUoNyDSMJ0Brq SPIDER-MAN SUPERMAN 203893 5 1 True
... ... ... ... ... ... ... ... ... ... ... ... ...
397 Drake 3TVXtAsR1Inumwj472S9r4 4VVBDjcpEc8vFWMlQfnmHX Miss Me single 2010-01-01 3h5boR23744b1CCE54hN3k Miss Me 305786 1 1 True
398 Drake 3TVXtAsR1Inumwj472S9r4 645FRpimwu0b1isiY5M32J I'm Goin In single 2009-09-15 5aooThgj87ID0vgiyvcjPM I'm Goin In 225306 1 1 True
399 Drake 3TVXtAsR1Inumwj472S9r4 2wmvVAqB2sAiJQpp2pRWcD Fear single 2009-09-15 5WfBl43XUcWng7OnB8LKNW Fear 280666 1 1 True
400 Drake 3TVXtAsR1Inumwj472S9r4 4Z4vthIzd6pIKC396R5vSN Forever single 2009-01-01 3qjKqmA2YeH0a8DRoKj8iy Forever 357920 1 1 True
401 Drake 3TVXtAsR1Inumwj472S9r4 3aMtvuGUNyIR27bv8gFPXw Best I Ever Had single 2009-01-01 1PWnjvzT5Jhpfnh96DRNDh Best I Ever Had 258800 1 1 False

402 rows × 12 columns

Next I want to select songs from each artist (top 20/30 + 10 low-pop)¶

There is a small issue though. Popularity score is not avaliable when being called through a /albums/{id}/tracks endpoint. Therefore, we need to access each track through a /tracks/{id} endpoint to get its popularity score and add it to the rows.¶

In [18]:
def add_popularity(df):
    ids = df["track_id"].dropna().unique().tolist() # Get a unique list of all track IDs
    pops = {}
    for i in range(0, len(ids), 50):  # Spotify lets up to 50 per call
        chunk = ids[i:i+50]  # Spotify API only allows up to 50 IDs per request, so we loop through the list in chunks of 50
        popRequest = requests.get(rootURL + "tracks", headers=headers, params={"ids": ",".join(chunk)}) # Get data for all tracks through API call
        if popRequest.status_code == 200:
            for track in popRequest.json()["tracks"]:
                if track:
                    pops[track["id"]] = track.get("popularity", None) # Account for potential lack of key val
    df["popularity"] = df["track_id"].map(pops) # Map the popularity dictionary back into dataframe
    return df
In [19]:
add_popularity(kendrickTracksUnfiltered)
Out[19]:
artist artist_id album_id album_name album_type release_date track_id track_name duration_ms track_number disc_number explicit popularity
0 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 5gOfC9UzZQzTyShqPMrpjT wacced out murals 317092 1 1 True 70
1 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 0nj9Bq5sHDiTxSHunhgkFb squabble up 157992 2 1 True 81
2 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 45J4avUb9Ni0bnETYaYFVJ luther (with sza) 177598 3 1 False 84
3 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 5ho7VSXSmI2KM2nDjcnLyz man at the garden 233173 4 1 True 67
4 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 5S8VwnB4sLi6W0lYTWYylu hey now (feat. dody6) 217478 5 1 True 72
... ... ... ... ... ... ... ... ... ... ... ... ... ...
166 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3qHsYfN7ua1WGhQn1wquIn Push Thru (feat. Kendrick Lamar and Curren$y) single 2012 7HetWRCNDPHhiksK6VrAG1 Push Thru 300800 1 1 True 27
167 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3qHsYfN7ua1WGhQn1wquIn Push Thru (feat. Kendrick Lamar and Curren$y) single 2012 1kDctACNpFgSB7lZXPrazv Push Thru 301240 2 1 False 16
168 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3qHsYfN7ua1WGhQn1wquIn Push Thru (feat. Kendrick Lamar and Curren$y) single 2012 4M6IrkoE9LQMZzZx8eHNQD Push Thru - Instrumental 300346 3 1 False 16
169 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 1Jmy19ydnxfHcOdN28cw7q My People (feat. Jay Rock) ("Bastards of the P... single 2011-08-16 0WkQfxU3podAt3UAenbzPd My People (feat. Jay Rock) ("Bastards of the P... 241086 1 1 True 38
170 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3X2elJMfPKM7pXo855g1dy She Needs Me [Remix] (Ringtone) single 2010-11-22 1ylD5Zf0hLc9su7OJOU6u5 She Needs Me [Remix] (Ringtone) 27003 1 1 False 2

171 rows × 13 columns

In [20]:
add_popularity(drakeTracksUnfiltered)
Out[20]:
artist artist_id album_id album_name album_type release_date track_id track_name duration_ms track_number disc_number explicit popularity
0 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 4u43I0LP2Xf85OAS85eG0R CN TOWER 241889 1 1 True 73
1 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 7DL2F2bueQycqYjqsjHYjG MOTH BALLS 212629 2 1 True 69
2 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 1F6nHHDJyTHLgDDFj1ZZDt SOMETHING ABOUT YOU 218682 3 1 True 75
3 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 5aIEFCKhVUM5sKkwOSdFiM CRYING IN CHANEL 199602 4 1 True 65
4 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 4GqhG9rDuRUoNyDSMJ0Brq SPIDER-MAN SUPERMAN 203893 5 1 True 70
... ... ... ... ... ... ... ... ... ... ... ... ... ...
397 Drake 3TVXtAsR1Inumwj472S9r4 4VVBDjcpEc8vFWMlQfnmHX Miss Me single 2010-01-01 3h5boR23744b1CCE54hN3k Miss Me 305786 1 1 True 34
398 Drake 3TVXtAsR1Inumwj472S9r4 645FRpimwu0b1isiY5M32J I'm Goin In single 2009-09-15 5aooThgj87ID0vgiyvcjPM I'm Goin In 225306 1 1 True 67
399 Drake 3TVXtAsR1Inumwj472S9r4 2wmvVAqB2sAiJQpp2pRWcD Fear single 2009-09-15 5WfBl43XUcWng7OnB8LKNW Fear 280666 1 1 True 58
400 Drake 3TVXtAsR1Inumwj472S9r4 4Z4vthIzd6pIKC396R5vSN Forever single 2009-01-01 3qjKqmA2YeH0a8DRoKj8iy Forever 357920 1 1 True 72
401 Drake 3TVXtAsR1Inumwj472S9r4 3aMtvuGUNyIR27bv8gFPXw Best I Ever Had single 2009-01-01 1PWnjvzT5Jhpfnh96DRNDh Best I Ever Had 258800 1 1 False 45

402 rows × 13 columns

In [21]:
def select_tracks_for_analysis(df, top_n, low_n):
    df = df.dropna(subset=["track_id", "popularity"]).drop_duplicates("track_id")
    top = (df.sort_values("popularity", ascending=False).groupby("album_id", as_index=False).head(5))  # Cap per album to avoid one album dominating
    top = top.sort_values("popularity", ascending=False).head(top_n)

    low = (df.sort_values("popularity", ascending=True).drop_duplicates("track_id")) # Try to spread across albums
    low = (low.groupby("album_id", as_index=False).head(2).sort_values("popularity", ascending=True).head(low_n))

    selectedTracks = (pd.concat([top, low], ignore_index=True).drop_duplicates("track_id").reset_index(drop=True)) # Remove dupes
    return selectedTracks
In [22]:
kendrickTracks = select_tracks_for_analysis(kendrickTracksUnfiltered, top_n=20, low_n=10)
drakeTracks = select_tracks_for_analysis(drakeTracksUnfiltered, top_n=30, low_n=10)
In [23]:
kendrickTracks
Out[23]:
artist artist_id album_id album_name album_type release_date track_id track_name duration_ms track_number disc_number explicit popularity
0 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3pLdWdkj83EYfDN6H2N8MR Black Panther The Album Music From And Inspire... album 2018-02-09 3GCdLUSnKSMJhs4Tj6CV3s All The Stars (with SZA) - From "Black Panther... 232186 2 1 True 91
1 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 5JjnoGJyOxfSZUZtk2rRwZ Not Like Us single 2024-05-04 6AI3ezQ4o3HUoP6Dhudph3 Not Like Us 274192 1 1 True 89
2 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 7KXjTSCq5nL1LoYtL7XAwS HUMBLE. 177000 8 1 True 86
3 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 0aB0v4027ukVziUGwVGYpG tv off (feat. lefty gunplay) 220690 7 1 True 86
4 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 6PGoSes0D9eUDeeAafB2As LOVE. FEAT. ZACARI. 213400 10 1 False 85
5 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 2XPrwlaAHHXnJzP9tBcIzH Swimming Pools (Drank) single 2012-01-01 6REbwUNlppTfcnV4d4ZoZi Swimming Pools (Drank) 247800 1 1 True 84
6 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 45J4avUb9Ni0bnETYaYFVJ luther (with sza) 177598 3 1 False 84
7 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 6IZvVAP7VPPnsGX6bvgkqg PRIDE. 275253 7 1 True 82
8 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 6HZILIRieu8S0iqY8kIKhj DNA. 185946 2 1 True 81
9 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 6PBZN8cbwkqm1ERj2BGXJ1 good kid, m.A.A.d city album 2012 2HbKqm4o0w5wEeEFXm2sD4 Money Trees 386906 5 1 True 81
10 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 0nj9Bq5sHDiTxSHunhgkFb squabble up 157992 2 1 True 81
11 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 7ycBtnsMtyVbbwTfJwRjSP To Pimp A Butterfly album 2015-03-16 3iVcZ5G6tvkXZkZKlMpIUs Alright 219333 7 1 True 81
12 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 6SwRhMLwNqEi6alNPVG00n LOYALTY. FEAT. RIHANNA. 227360 6 1 True 78
13 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 79ONNoS4M9tfIA1mYLBYVX Mr. Morale & The Big Steppers album 2022-05-13 6BU1RZexmvJcBjgagVVt3M Count Me Out 283642 1 2 True 77
14 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 2Uts1QFB4u2YNIMiqcb4de peekaboo (feat. azchike) 155917 9 1 True 77
15 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 79ONNoS4M9tfIA1mYLBYVX Mr. Morale & The Big Steppers album 2022-05-13 5Gt9bxniM1SxN61yRzRhXL United In Grief 255377 1 1 True 76
16 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 32bR4LcEc1PvJEhaKoo4ZN euphoria single 2024-04-30 77DRzu7ERs0TX3roZcre7Q euphoria 383639 1 1 True 76
17 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 79ONNoS4M9tfIA1mYLBYVX Mr. Morale & The Big Steppers album 2022-05-13 2g6tReTlM2Akp41g0HaeXN Die Hard 239026 4 1 True 75
18 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 7ycBtnsMtyVbbwTfJwRjSP To Pimp A Butterfly album 2015-03-16 0N3W5peJUQtI4eyR6GJT5O King Kunta 234693 3 1 True 75
19 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3DGQ1iZ9XKUQxAUWjfC34w good kid, m.A.A.d city (Deluxe) album 2012 2P3SLxeQHPqh8qKB6gtJY2 Poetic Justice 300160 6 1 True 75
20 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3X2elJMfPKM7pXo855g1dy She Needs Me [Remix] (Ringtone) single 2010-11-22 1ylD5Zf0hLc9su7OJOU6u5 She Needs Me [Remix] (Ringtone) 27003 1 1 False 2
21 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3qHsYfN7ua1WGhQn1wquIn Push Thru (feat. Kendrick Lamar and Curren$y) single 2012 4M6IrkoE9LQMZzZx8eHNQD Push Thru - Instrumental 300346 3 1 False 16
22 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3qHsYfN7ua1WGhQn1wquIn Push Thru (feat. Kendrick Lamar and Curren$y) single 2012 1kDctACNpFgSB7lZXPrazv Push Thru 301240 2 1 False 16
23 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4NuKTiNjwcX4ZG7TXEBnYh Malcolm X single 2021-06-25 6Y2Sdnlpf2Lxb0lh4s81Fb Malcolm X 195440 1 1 True 27
24 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4XF4wNh0WHyrayqCYS8xY0 Bitch, Don't Kill My Vibe (Remix) single 2013-01-01 5GmqAFOndnDJnIgDPUeiol Bitch, Don’t Kill My Vibe - Remix 306053 1 1 False 28
25 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 5moHeRF6YwQz9Mhc1SB0v0 Two Presidents single 2013-12-03 2Xjvo0g3jPZB8QgTmRv5oU Two Presidents 230038 1 1 True 34
26 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0itierEc1U3I8yIi4TtnuT The Mantra single 2018-11-14 7mVHy2E0yV3oTnV0OR5uMf The Mantra - From "Creed II: The Album" 252384 1 1 True 37
27 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4alcGHjstaALJHHiljfy3H DAMN. COLLECTORS EDITION. album 2017-12-08 1WonGCoO1sz7I4aD0HRbXy BLOOD. 118066 14 1 True 38
28 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 1Jmy19ydnxfHcOdN28cw7q My People (feat. Jay Rock) ("Bastards of the P... single 2011-08-16 0WkQfxU3podAt3UAenbzPd My People (feat. Jay Rock) ("Bastards of the P... 241086 1 1 True 38
29 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 6gyBOHTEtKHEPIy9EAWjdB Swimming Pools (Drank) [Black Hippy Remix] single 2015-03-10 2kB3E1ne5D9EUguk7yct9g Swimming Pools (Drank) - Black Hippy Remix 314893 1 1 True 38
In [24]:
drakeTracks
Out[24]:
artist artist_id album_id album_name album_type release_date track_id track_name duration_ms track_number disc_number explicit popularity
0 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 1zi7xx7UVEFkmKfv06H8x0 One Dance 173986 12 1 False 92
1 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 6LxSe8YmdPxy095Ux6znaQ Headlines 235986 3 1 True 89
2 Drake 3TVXtAsR1Inumwj472S9r4 1lXY618HWkwYKJWBRYR4MK More Life album 2017-03-18 5mCPDVBb16L4XQwDdbRUpz Passionfruit 298940 3 1 True 89
3 Drake 3TVXtAsR1Inumwj472S9r4 1ATL5GLyefJaxhQzSPVrLX Scorpion album 2018-06-29 6DCZcSspjsKoFjzjrWoCdn God's Plan 198973 5 1 True 87
4 Drake 3TVXtAsR1Inumwj472S9r4 6OQ9gBfg5EXeNAEwGSs6jK Dark Lane Demo Tapes album 2020-05-01 3Q4gttWQ6hxqWOa3tHoTNi Not You Too (feat. Chris Brown) 269680 4 1 True 86
5 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 2u9S9JJ6hTZS3Vf22HOZKg NOKIA 241023 14 1 True 85
6 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 0wwPcA6wtMf6HUMpIRdeP7 Hotline Bling 267066 20 1 False 85
7 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 0NUqi0ps17YpLUC3kgsZq0 DIE TRYING 195431 15 1 True 84
8 Drake 3TVXtAsR1Inumwj472S9r4 3SpBlxme9WbeQdI9kx7KAV Certified Lover Boy album 2021-09-03 40iJIUlhi6renaREYGeIDS Fair Trade (with Travis Scott) 291175 6 1 True 83
9 Drake 3TVXtAsR1Inumwj472S9r4 1lXY618HWkwYKJWBRYR4MK More Life album 2017-03-18 6n3HGiq4v35D6eFOSwqYuo Teenage Fever 219692 14 1 True 83
10 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 1C7KSXR2GVxknex6I4ANco 9 255786 2 1 True 83
11 Drake 3TVXtAsR1Inumwj472S9r4 2ZUFSbIkmFkGag000RWOpA Nothing Was The Same (Deluxe) album 2013-01-01 6jdOi5U5LBzQrc4c1VT983 Hold On, We're Going Home 227880 8 1 False 82
12 Drake 3TVXtAsR1Inumwj472S9r4 3cf4iSSKd8ffTncbtKljXw Honestly, Nevermind album 2022-06-17 3F5CgOj3wFlRv51JsHbxhe Jimmy Cooks (feat. 21 Savage) 218364 14 1 True 82
13 Drake 3TVXtAsR1Inumwj472S9r4 1ATL5GLyefJaxhQzSPVrLX Scorpion album 2018-06-29 3CA9pLiwRIGtUBiMjbZmRw Nice For What 210746 4 2 True 81
14 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 2kZoOj1n5vk9BuF0sih58M SOMEBODY LOVES ME 182767 16 1 True 81
15 Drake 3TVXtAsR1Inumwj472S9r4 4TWJJZmgYm6tE6PzqpluQ0 Which One single 2025-07-25 5FMyXeZ0reYloRTiCkPprT Which One (feat. Central Cee) 169134 1 1 True 81
16 Drake 3TVXtAsR1Inumwj472S9r4 1LShhEEKRT5MNPcO7jtYHh So Far Gone album 2009 3QLjDkgLh9AOEHlhQtDuhs Best I Ever Had 257690 10 1 True 81
17 Drake 3TVXtAsR1Inumwj472S9r4 7dqpveMVcWgbzqYrOdkFTD Care Package album 2019-08-02 4Wjhj0WjkyECccfHVIgaTq Trust Issues 281518 4 1 True 81
18 Drake 3TVXtAsR1Inumwj472S9r4 3SpBlxme9WbeQdI9kx7KAV Certified Lover Boy album 2021-09-03 1PDP7mLiAMwhfmgIwzhOm2 Yebba’s Heartbreak 133762 11 1 True 81
19 Drake 3TVXtAsR1Inumwj472S9r4 6OQ9gBfg5EXeNAEwGSs6jK Dark Lane Demo Tapes album 2020-05-01 5H4mXWKcicuLKDn4Jy0sK7 Time Flies 192931 7 1 True 80
20 Drake 3TVXtAsR1Inumwj472S9r4 6OQ9gBfg5EXeNAEwGSs6jK Dark Lane Demo Tapes album 2020-05-01 4wVOKKEHUJxHCFFNUWDn0B Chicago Freestyle (feat. Giveon) 220487 3 1 True 80
21 Drake 3TVXtAsR1Inumwj472S9r4 0bNfrGST1xSPZ3V3g5jjHT What Did I Miss? single 2025-07-05 57GsLpRtEtrzcPGPop20rS What Did I Miss? 194324 1 1 True 80
22 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 124NFj84ppZ5pAxTuVQYCQ Take Care 277386 5 1 True 80
23 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 047fCsbO4NdmwCBn8pcUXl Marvins Room 347226 6 1 True 80
24 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 0jF2AdhsalO1L7KkhK4LE5 Practice 237733 17 1 True 80
25 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 2Gnsof1hvZzjE1xdLRpjtf Over My Dead Body 272573 1 1 True 80
26 Drake 3TVXtAsR1Inumwj472S9r4 4czdORdCWP9umpbhFXK2fW For All The Dogs album 2023-10-06 1yeB8MUNeLo9Ek1UEpsyz6 Rich Baby Daddy (feat. Sexyy Red & SZA) 319191 20 1 True 80
27 Drake 3TVXtAsR1Inumwj472S9r4 5LuoozUhs2pl3glZeAJl89 Scary Hours 2 single 2021-03-05 65OVbaJR5O1RmwOQx0875b Wants and Needs (feat. Lil Baby) 192956 2 1 True 79
28 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 3cjF2OFRmip8spwZYQRKxP Feel No Ways 240653 4 1 True 79
29 Drake 3TVXtAsR1Inumwj472S9r4 1lXY618HWkwYKJWBRYR4MK More Life album 2017-03-18 2KvHC9z14GSl4YpkNMX384 Do Not Disturb 283550 22 1 True 79
30 Drake 3TVXtAsR1Inumwj472S9r4 3CHCm9n05a3tG4cQJ4rJwq For All The Dogs Scary Hours Edition (Instrume... single 2023-11-16 0Mt4kFSqMDBX4jezEUtujl Evil Ways (feat. J. Cole) - Instrumental 227692 5 1 False 29
31 Drake 3TVXtAsR1Inumwj472S9r4 3CHCm9n05a3tG4cQJ4rJwq For All The Dogs Scary Hours Edition (Instrume... single 2023-11-16 6BCDS43QqQkK6TWg9F2YhO The Shoe Fits - Instrumental 374025 3 1 False 29
32 Drake 3TVXtAsR1Inumwj472S9r4 0v4UlHEDcUBbV9kM3TX4bj Live For single 2013-01-01 4v1wpe6QTvLN7bu3gM6tRh Live For 222720 1 1 False 29
33 Drake 3TVXtAsR1Inumwj472S9r4 4VVBDjcpEc8vFWMlQfnmHX Miss Me single 2010-01-01 3h5boR23744b1CCE54hN3k Miss Me 305786 1 1 True 34
34 Drake 3TVXtAsR1Inumwj472S9r4 2lzV5TIBiLED8eCjwsGBIv MELTDOWN (feat. Drake) [Instrumental] single 2023-07-25 4kJn7armCJDav48yCu3yKh MELTDOWN (feat. Drake) - Instrumental 247333 1 1 False 35
35 Drake 3TVXtAsR1Inumwj472S9r4 4OQEGCbts7MiJm8wfwC9BX LOYAL (feat. Drake) single 2019-11-22 13NAmCCRYxRcr2NEtiWGa8 LOYAL (feat. Drake) 197973 1 1 False 37
36 Drake 3TVXtAsR1Inumwj472S9r4 7iLdPmU6eUTwKsYifBQ6zb TWIST & TURN (feat. Drake & PARTYNEXTDOOR) single 2020-08-06 6R1eAccx1fnh8P5HhFzn84 TWIST & TURN (feat. Drake & PARTYNEXTDOOR) 259651 1 1 False 38
37 Drake 3TVXtAsR1Inumwj472S9r4 4v2wkI8xYxp0gTtSMwbRoj She Will single 2011-08-16 0WPbCs75tnRVM1Wag5PLeW She Will 307360 1 1 True 39
38 Drake 3TVXtAsR1Inumwj472S9r4 4P9NQ88JRt2r39QlsevM1n Make Me Proud single 2011-01-01 3psB8LAWdw813k9ZmLvjmZ Make Me Proud 220053 1 1 True 42
39 Drake 3TVXtAsR1Inumwj472S9r4 4v2wkI8xYxp0gTtSMwbRoj She Will single 2011-08-16 3BQlpg7hRdTmakWbX89m1i She Will - Instrumental 306396 2 1 False 42

Next I want to retrieve the lyrics for each song for my rhyme scheme anaylsis.¶

In [25]:
def get_lyrics_safe(artist, title):
    try: # In case of failed lyric retrieval
        song = genius.search_song(title, artist)
        if song and song.lyrics:
            return song.lyrics
    except Exception as e: # Error handling
        print(f"Error for {artist} - {title}: {e}")
    return None
In [26]:
def fetch_lyrics(df):
    df = df.copy() # Copy of df 
    df["lyrics"] = None 
    for i, row in df.iterrows(): # Iterate thru rows to scrape tracks for lyric pulling
        lyrics = get_lyrics_safe(row["artist"], row["track_name"])
        df.at[i, "lyrics"] = lyrics # at index i set lyrics to lyrics
        print(f"{i+1}/{len(df)}: {row['artist']} - {row['track_name']}") # Print counter
        time.sleep(5)  # In case of rate limits
    return df
In [27]:
kendrickLyrics = fetch_lyrics(kendrickTracks)
drakeLyrics = fetch_lyrics(drakeTracks)
Searching for "All The Stars (with SZA) - From "Black Panther: The Album"" by Kendrick Lamar...
No results found for: 'All The Stars (with SZA) - From "Black Panther: The Album" Kendrick Lamar'
1/30: Kendrick Lamar - All The Stars (with SZA) - From "Black Panther: The Album"
Searching for "Not Like Us" by Kendrick Lamar...
Done.
2/30: Kendrick Lamar - Not Like Us
Searching for "HUMBLE." by Kendrick Lamar...
Done.
3/30: Kendrick Lamar - HUMBLE.
Searching for "tv off (feat. lefty gunplay)" by Kendrick Lamar...
Done.
4/30: Kendrick Lamar - tv off (feat. lefty gunplay)
Searching for "LOVE. FEAT. ZACARI." by Kendrick Lamar...
Done.
5/30: Kendrick Lamar - LOVE. FEAT. ZACARI.
Searching for "Swimming Pools (Drank)" by Kendrick Lamar...
Done.
6/30: Kendrick Lamar - Swimming Pools (Drank)
Searching for "luther (with sza)" by Kendrick Lamar...
No results found for: 'luther (with sza) Kendrick Lamar'
7/30: Kendrick Lamar - luther (with sza)
Searching for "PRIDE." by Kendrick Lamar...
Done.
8/30: Kendrick Lamar - PRIDE.
Searching for "DNA." by Kendrick Lamar...
Done.
9/30: Kendrick Lamar - DNA.
Searching for "Money Trees" by Kendrick Lamar...
Done.
10/30: Kendrick Lamar - Money Trees
Searching for "squabble up" by Kendrick Lamar...
Done.
11/30: Kendrick Lamar - squabble up
Searching for "Alright" by Kendrick Lamar...
Done.
12/30: Kendrick Lamar - Alright
Searching for "LOYALTY. FEAT. RIHANNA." by Kendrick Lamar...
Done.
13/30: Kendrick Lamar - LOYALTY. FEAT. RIHANNA.
Searching for "Count Me Out" by Kendrick Lamar...
Done.
14/30: Kendrick Lamar - Count Me Out
Searching for "peekaboo (feat. azchike)" by Kendrick Lamar...
Done.
15/30: Kendrick Lamar - peekaboo (feat. azchike)
Searching for "United In Grief" by Kendrick Lamar...
Done.
16/30: Kendrick Lamar - United In Grief
Searching for "euphoria" by Kendrick Lamar...
Done.
17/30: Kendrick Lamar - euphoria
Searching for "Die Hard" by Kendrick Lamar...
Error for Kendrick Lamar - Die Hard: Request timed out:
HTTPSConnectionPool(host='api.genius.com', port=443): Read timed out. (read timeout=5)
18/30: Kendrick Lamar - Die Hard
Searching for "King Kunta" by Kendrick Lamar...
Done.
19/30: Kendrick Lamar - King Kunta
Searching for "Poetic Justice" by Kendrick Lamar...
Done.
20/30: Kendrick Lamar - Poetic Justice
Searching for "She Needs Me [Remix] (Ringtone)" by Kendrick Lamar...
No results found for: 'She Needs Me [Remix] (Ringtone) Kendrick Lamar'
21/30: Kendrick Lamar - She Needs Me [Remix] (Ringtone)
Searching for "Push Thru - Instrumental" by Kendrick Lamar...
No results found for: 'Push Thru - Instrumental Kendrick Lamar'
22/30: Kendrick Lamar - Push Thru - Instrumental
Searching for "Push Thru" by Kendrick Lamar...
Done.
23/30: Kendrick Lamar - Push Thru
Searching for "Malcolm X" by Kendrick Lamar...
Done.
24/30: Kendrick Lamar - Malcolm X
Searching for "Bitch, Don’t Kill My Vibe - Remix" by Kendrick Lamar...
Done.
25/30: Kendrick Lamar - Bitch, Don’t Kill My Vibe - Remix
Searching for "Two Presidents" by Kendrick Lamar...
Done.
26/30: Kendrick Lamar - Two Presidents
Searching for "The Mantra - From "Creed II: The Album"" by Kendrick Lamar...
No results found for: 'The Mantra - From "Creed II: The Album" Kendrick Lamar'
27/30: Kendrick Lamar - The Mantra - From "Creed II: The Album"
Searching for "BLOOD." by Kendrick Lamar...
Done.
28/30: Kendrick Lamar - BLOOD.
Searching for "My People (feat. Jay Rock) ("Bastards of the Party" Original Soundtrack Version)" by Kendrick Lamar...
No results found for: 'My People (feat. Jay Rock) ("Bastards of the Party" Original Soundtrack Version) Kendrick Lamar'
29/30: Kendrick Lamar - My People (feat. Jay Rock) ("Bastards of the Party" Original Soundtrack Version)
Searching for "Swimming Pools (Drank) - Black Hippy Remix" by Kendrick Lamar...
No results found for: 'Swimming Pools (Drank) - Black Hippy Remix Kendrick Lamar'
30/30: Kendrick Lamar - Swimming Pools (Drank) - Black Hippy Remix
Searching for "One Dance" by Drake...
Done.
1/40: Drake - One Dance
Searching for "Headlines" by Drake...
Done.
2/40: Drake - Headlines
Searching for "Passionfruit" by Drake...
Done.
3/40: Drake - Passionfruit
Searching for "God's Plan" by Drake...
Done.
4/40: Drake - God's Plan
Searching for "Not You Too (feat. Chris Brown)" by Drake...
Done.
5/40: Drake - Not You Too (feat. Chris Brown)
Searching for "NOKIA" by Drake...
Done.
6/40: Drake - NOKIA
Searching for "Hotline Bling" by Drake...
Done.
7/40: Drake - Hotline Bling
Searching for "DIE TRYING" by Drake...
Done.
8/40: Drake - DIE TRYING
Searching for "Fair Trade (with Travis Scott)" by Drake...
No results found for: 'Fair Trade (with Travis Scott) Drake'
9/40: Drake - Fair Trade (with Travis Scott)
Searching for "Teenage Fever" by Drake...
Done.
10/40: Drake - Teenage Fever
Searching for "9" by Drake...
Done.
11/40: Drake - 9
Searching for "Hold On, We're Going Home" by Drake...
Done.
12/40: Drake - Hold On, We're Going Home
Searching for "Jimmy Cooks (feat. 21 Savage)" by Drake...
Done.
13/40: Drake - Jimmy Cooks (feat. 21 Savage)
Searching for "Nice For What" by Drake...
Done.
14/40: Drake - Nice For What
Searching for "SOMEBODY LOVES ME" by Drake...
Done.
15/40: Drake - SOMEBODY LOVES ME
Searching for "Which One (feat. Central Cee)" by Drake...
Done.
16/40: Drake - Which One (feat. Central Cee)
Searching for "Best I Ever Had" by Drake...
Done.
17/40: Drake - Best I Ever Had
Searching for "Trust Issues" by Drake...
Done.
18/40: Drake - Trust Issues
Searching for "Yebba’s Heartbreak" by Drake...
Done.
19/40: Drake - Yebba’s Heartbreak
Searching for "Time Flies" by Drake...
Done.
20/40: Drake - Time Flies
Searching for "Chicago Freestyle (feat. Giveon)" by Drake...
Done.
21/40: Drake - Chicago Freestyle (feat. Giveon)
Searching for "What Did I Miss?" by Drake...
Done.
22/40: Drake - What Did I Miss?
Searching for "Take Care" by Drake...
Done.
23/40: Drake - Take Care
Searching for "Marvins Room" by Drake...
Done.
24/40: Drake - Marvins Room
Searching for "Practice" by Drake...
Done.
25/40: Drake - Practice
Searching for "Over My Dead Body" by Drake...
Done.
26/40: Drake - Over My Dead Body
Searching for "Rich Baby Daddy (feat. Sexyy Red & SZA)" by Drake...
Done.
27/40: Drake - Rich Baby Daddy (feat. Sexyy Red & SZA)
Searching for "Wants and Needs (feat. Lil Baby)" by Drake...
Done.
28/40: Drake - Wants and Needs (feat. Lil Baby)
Searching for "Feel No Ways" by Drake...
Done.
29/40: Drake - Feel No Ways
Searching for "Do Not Disturb" by Drake...
Done.
30/40: Drake - Do Not Disturb
Searching for "Evil Ways (feat. J. Cole) - Instrumental" by Drake...
Specified song does not contain lyrics. Rejecting.
31/40: Drake - Evil Ways (feat. J. Cole) - Instrumental
Searching for "The Shoe Fits - Instrumental" by Drake...
Specified song does not contain lyrics. Rejecting.
32/40: Drake - The Shoe Fits - Instrumental
Searching for "Live For" by Drake...
Done.
33/40: Drake - Live For
Searching for "Miss Me" by Drake...
Done.
34/40: Drake - Miss Me
Searching for "MELTDOWN (feat. Drake) - Instrumental" by Drake...
Specified song does not contain lyrics. Rejecting.
35/40: Drake - MELTDOWN (feat. Drake) - Instrumental
Searching for "LOYAL (feat. Drake)" by Drake...
Done.
36/40: Drake - LOYAL (feat. Drake)
Searching for "TWIST & TURN (feat. Drake & PARTYNEXTDOOR)" by Drake...
Done.
37/40: Drake - TWIST & TURN (feat. Drake & PARTYNEXTDOOR)
Searching for "She Will" by Drake...
Done.
38/40: Drake - She Will
Searching for "Make Me Proud" by Drake...
Done.
39/40: Drake - Make Me Proud
Searching for "She Will - Instrumental" by Drake...
Specified song does not contain lyrics. Rejecting.
40/40: Drake - She Will - Instrumental

Genius was not able to find lyrics for 5-10 songs for each artists so lets remove those¶

In [28]:
kendrickLyrics = kendrickLyrics[kendrickLyrics["lyrics"].notna()].reset_index(drop=True)
drakeLyrics = drakeLyrics[drakeLyrics["lyrics"].notna()].reset_index(drop=True)

print(len(kendrickLyrics), "Kendrick tracks with lyrics")
print(len(drakeLyrics), "Drake tracks with lyrics")
22 Kendrick tracks with lyrics
35 Drake tracks with lyrics

Next Step is Rhyme & Complexity Analysis¶

In [29]:
prondict = cmudict.dict()
In [52]:
# CMU dictionary for phonetic rhyme analysis
In [31]:
# Return a tuple of phonemes for the rhyming part of a word
def rhyme_part(word):
    word = word.lower() # Set standard to lower
    if word in prondict: 
        phones = prondict[word][0] # Match word in dictionary
        vowels = [i for i, p in enumerate(phones) if p[-1].isdigit()] # grab str as vowel if last part of str is digit (cmudict signifies these as vowels)
        # Creates a list of indices where the phoneme ends with a digit, which is how the CMU dictionary marks vowel sounds. This identifies where stressed or unstressed vowels occur in the pronunciation.
        print(vowels)
        return tuple(phones[vowels[-1]:]) if vowels else tuple(phones[-2:]) # Return rhyming portion of word (everything after last vowel or if no vowels just last two letters)
        # If the word has vowel phonemes, return the phonemes from the last vowel onward. This approximates the rhyming part. If no vowel is found, fall back to returning the last two phonemes.
    return tuple(word[-2:])  # Fallback if not found then use last 2 letters
    # tuple because most hashable for later use (better for dictionary usage since we are comparing rhymes)
In [32]:
rhyme_part('aaberg')
[0, 2]
Out[32]:
('ER0', 'G')
In [33]:
def rhyme_density(lyrics):
    words = re.findall(r"\b[a-zA-Z']+\b", str(lyrics).lower()) # regex to clean lyrics to just words
    if len(words) < 10:
        return 0
    rhymes = [rhyme_part(w) for w in words] # Set rhymes using last function
    rhyme_counts = Counter(rhymes) # Count rhymes
    repeating = sum(v for v in rhyme_counts.values() if v > 1) # Find repeating rhymes
    return repeating / len(words) # Return density
In [63]:
# Add word count, rhyme density, and overall complexity stats to df of songs with lyrics
def add_rhyme_stats(df):
    df = df.copy() # copy df
    df["word_count"] = df["lyrics"].str.split().apply(len) # Count the total number of words in each song
    df["rhyme_density"] = df["lyrics"].apply(rhyme_density) # Count rhyme density directly from function
    df["complexity"] = df["rhyme_density"] * df["word_count"] # Complexity = density multiplied by word count
    return df
In [ ]:
kendrickStats = add_rhyme_stats(kendrickLyrics)
drakeStats = add_rhyme_stats(drakeLyrics)
In [ ]:
kendrickStats
In [37]:
drakeStats
Out[37]:
artist artist_id album_id album_name album_type release_date track_id track_name duration_ms track_number disc_number explicit popularity lyrics word_count rhyme_density complexity
0 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 1zi7xx7UVEFkmKfv06H8x0 One Dance 173986 12 1 False 92 Baby, I like your style\n\nGrips on your waist... 469 0.934066 438.076923
1 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 6LxSe8YmdPxy095Ux6znaQ Headlines 235986 3 1 True 89 I might be too strung out on compliments\nOver... 509 0.917969 467.246094
2 Drake 3TVXtAsR1Inumwj472S9r4 1lXY618HWkwYKJWBRYR4MK More Life album 2017-03-18 5mCPDVBb16L4XQwDdbRUpz Passionfruit 298940 3 1 True 89 Hold on, hold on, fuck that\nFuck that shit\nH... 228 0.861472 196.415584
3 Drake 3TVXtAsR1Inumwj472S9r4 1ATL5GLyefJaxhQzSPVrLX Scorpion album 2018-06-29 6DCZcSspjsKoFjzjrWoCdn God's Plan 198973 5 1 True 87 And they wishin' and wishin'\nAnd wishin' and ... 349 0.864023 301.543909
4 Drake 3TVXtAsR1Inumwj472S9r4 6OQ9gBfg5EXeNAEwGSs6jK Dark Lane Demo Tapes album 2020-05-01 3Q4gttWQ6hxqWOa3tHoTNi Not You Too (feat. Chris Brown) 269680 4 1 True 86 First time in a long time\nHurtin' deeply insi... 388 0.878553 340.878553
5 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 2u9S9JJ6hTZS3Vf22HOZKg NOKIA 241023 14 1 True 85 Who's callin' my phone?\n (Who's callin' that ... 784 0.943700 739.860590
6 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 0wwPcA6wtMf6HUMpIRdeP7 Hotline Bling 267066 20 1 False 85 You used to call me on my\nYou used to, you us... 431 0.931663 401.546697
7 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 0NUqi0ps17YpLUC3kgsZq0 DIE TRYING 195431 15 1 True 84 Yeah\n\nGirl, I can't decide if I should stay ... 411 0.895377 368.000000
8 Drake 3TVXtAsR1Inumwj472S9r4 1lXY618HWkwYKJWBRYR4MK More Life album 2017-03-18 6n3HGiq4v35D6eFOSwqYuo Teenage Fever 219692 14 1 True 83 Your heart is hard to carry after dark\nYou're... 319 0.862500 275.137500
9 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 1C7KSXR2GVxknex6I4ANco 9 255786 2 1 True 83 Yeah, for the dogs dem, you know\nEverybody wa... 518 0.896078 464.168627
10 Drake 3TVXtAsR1Inumwj472S9r4 2ZUFSbIkmFkGag000RWOpA Nothing Was The Same (Deluxe) album 2013-01-01 6jdOi5U5LBzQrc4c1VT983 Hold On, We're Going Home 227880 8 1 False 82 I got my eyes on you\nYou're everything that I... 339 0.996923 337.956923
11 Drake 3TVXtAsR1Inumwj472S9r4 3cf4iSSKd8ffTncbtKljXw Honestly, Nevermind album 2022-06-17 3F5CgOj3wFlRv51JsHbxhe Jimmy Cooks (feat. 21 Savage) 218364 14 1 True 82 Desperté sacudido una vez más, para que sepas ... 750 0.943704 707.777778
12 Drake 3TVXtAsR1Inumwj472S9r4 1ATL5GLyefJaxhQzSPVrLX Scorpion album 2018-06-29 3CA9pLiwRIGtUBiMjbZmRw Nice For What 210746 4 2 True 81 I wanna know who mothafuckin' representin' in ... 751 0.932091 700.000000
13 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 2kZoOj1n5vk9BuF0sih58M SOMEBODY LOVES ME 182767 16 1 True 81 (All the girls)\nI know there's somebody who l... 371 0.916442 340.000000
14 Drake 3TVXtAsR1Inumwj472S9r4 4TWJJZmgYm6tE6PzqpluQ0 Which One single 2025-07-25 5FMyXeZ0reYloRTiCkPprT Which One (feat. Central Cee) 169134 1 1 True 81 Meu cabelo tá bonito? (Yeah)\nMeus peitos tão ... 566 0.937238 530.476987
15 Drake 3TVXtAsR1Inumwj472S9r4 1LShhEEKRT5MNPcO7jtYHh So Far Gone album 2009 3QLjDkgLh9AOEHlhQtDuhs Best I Ever Had 257690 10 1 True 81 You know, a lot of girls be\nThinkin' my songs... 837 0.940334 787.059666
16 Drake 3TVXtAsR1Inumwj472S9r4 7dqpveMVcWgbzqYrOdkFTD Care Package album 2019-08-02 4Wjhj0WjkyECccfHVIgaTq Trust Issues 281518 4 1 True 81 Uh\nAw yeah, aw yeah\nCall up on drank and let... 543 0.909256 493.725953
17 Drake 3TVXtAsR1Inumwj472S9r4 3SpBlxme9WbeQdI9kx7KAV Certified Lover Boy album 2021-09-03 1PDP7mLiAMwhfmgIwzhOm2 Yebba’s Heartbreak 133762 11 1 True 81 How much better can I show my love for you\nTh... 127 0.803150 102.000000
18 Drake 3TVXtAsR1Inumwj472S9r4 6OQ9gBfg5EXeNAEwGSs6jK Dark Lane Demo Tapes album 2020-05-01 5H4mXWKcicuLKDn4Jy0sK7 Time Flies 192931 7 1 True 80 Yeah, I'm outside in an AMG\nRight outside, TT... 383 0.913146 349.734742
19 Drake 3TVXtAsR1Inumwj472S9r4 6OQ9gBfg5EXeNAEwGSs6jK Dark Lane Demo Tapes album 2020-05-01 4wVOKKEHUJxHCFFNUWDn0B Chicago Freestyle (feat. Giveon) 220487 3 1 True 80 A las 2:30, cariño, ¿nos reuniremos en The Bea... 580 0.953347 552.941176
20 Drake 3TVXtAsR1Inumwj472S9r4 0bNfrGST1xSPZ3V3g5jjHT What Did I Miss? single 2025-07-05 57GsLpRtEtrzcPGPop20rS What Did I Miss? 194324 1 1 True 80 I don't give a fuck if you love me, I don't gi... 466 0.892704 416.000000
21 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 124NFj84ppZ5pAxTuVQYCQ Take Care 277386 5 1 True 80 I know you've been hurt by someone else\nI can... 486 0.902490 438.609959
22 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 047fCsbO4NdmwCBn8pcUXl Marvins Room 347226 6 1 True 80 Hello?\nYeah, I just walked in\nYeah, I'm good... 596 0.932432 555.729730
23 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 0jF2AdhsalO1L7KkhK4LE5 Practice 237733 17 1 True 80 Yeah, Cash Money shit, Cash Money shit\n\nI ca... 579 0.954783 552.819130
24 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 2Gnsof1hvZzjE1xdLRpjtf Over My Dead Body 272573 1 1 True 80 How I'm feeling, it doesn't matter\n'Cause you... 608 0.911475 554.177049
25 Drake 3TVXtAsR1Inumwj472S9r4 4czdORdCWP9umpbhFXK2fW For All The Dogs album 2023-10-06 1yeB8MUNeLo9Ek1UEpsyz6 Rich Baby Daddy (feat. Sexyy Red & SZA) 319191 20 1 True 80 ¿Se terminó? Podría ser otro\n¿Se terminó? Pod... 811 0.960729 779.151473
26 Drake 3TVXtAsR1Inumwj472S9r4 5LuoozUhs2pl3glZeAJl89 Scary Hours 2 single 2021-03-05 65OVbaJR5O1RmwOQx0875b Wants and Needs (feat. Lil Baby) 192956 2 1 True 79 One Take\nDD\n\nPainted with purple to match w... 514 0.857977 441.000000
27 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 3cjF2OFRmip8spwZYQRKxP Feel No Ways 240653 4 1 True 79 I should be downtown, whipping on the way to y... 340 0.955882 325.000000
28 Drake 3TVXtAsR1Inumwj472S9r4 1lXY618HWkwYKJWBRYR4MK More Life album 2017-03-18 2KvHC9z14GSl4YpkNMX384 Do Not Disturb 283550 22 1 True 79 Silence keeps cloudin' me\nHand on my heart\nA... 656 0.882622 579.000000
29 Drake 3TVXtAsR1Inumwj472S9r4 0v4UlHEDcUBbV9kM3TX4bj Live For single 2013-01-01 4v1wpe6QTvLN7bu3gM6tRh Live For 222720 1 1 False 29 Getting sober for a day got me feeling too low... 567 0.899115 509.798230
30 Drake 3TVXtAsR1Inumwj472S9r4 4VVBDjcpEc8vFWMlQfnmHX Miss Me single 2010-01-01 3h5boR23744b1CCE54hN3k Miss Me 305786 1 1 True 34 I said, "Tell me what's really goin' on"\nDriz... 857 0.904707 775.334099
31 Drake 3TVXtAsR1Inumwj472S9r4 4OQEGCbts7MiJm8wfwC9BX LOYAL (feat. Drake) single 2019-11-22 13NAmCCRYxRcr2NEtiWGa8 LOYAL (feat. Drake) 197973 1 1 False 37 True, you're a star in my head\nYou, nuh need ... 342 0.991228 339.000000
32 Drake 3TVXtAsR1Inumwj472S9r4 7iLdPmU6eUTwKsYifBQ6zb TWIST & TURN (feat. Drake & PARTYNEXTDOOR) single 2020-08-06 6R1eAccx1fnh8P5HhFzn84 TWIST & TURN (feat. Drake & PARTYNEXTDOOR) 259651 1 1 False 38 Your body drive mi crazy-y-y\nYour body need a... 620 0.934609 579.457735
33 Drake 3TVXtAsR1Inumwj472S9r4 4v2wkI8xYxp0gTtSMwbRoj She Will single 2011-08-16 0WPbCs75tnRVM1Wag5PLeW She Will 307360 1 1 True 39 Young Money\nYeah, four\nAhem\n\nI tell her, "... 824 0.929697 766.070303
34 Drake 3TVXtAsR1Inumwj472S9r4 4P9NQ88JRt2r39QlsevM1n Make Me Proud single 2011-01-01 3psB8LAWdw813k9ZmLvjmZ Make Me Proud 220053 1 1 True 42 I like a woman with a future and a past\nA lit... 685 0.909091 622.727273

Now that I have gathered the necessary stats it is time to visualize the data¶

In [38]:
combined = pd.concat([kendrickStats.assign(artist="Kendrick Lamar"), drakeStats.assign(artist="Drake")]) # Combine dfs
In [39]:
combined[["artist", "track_name", "rhyme_density", "word_count", "complexity", "popularity"]]
Out[39]:
artist track_name rhyme_density word_count complexity popularity
0 Kendrick Lamar Not Like Us 0.897577 907 814.102423 89
1 Kendrick Lamar HUMBLE. 0.892562 598 533.752066 86
2 Kendrick Lamar tv off (feat. lefty gunplay) 0.929504 770 715.718016 86
3 Kendrick Lamar LOVE. FEAT. ZACARI. 0.947242 488 462.254197 85
4 Kendrick Lamar Swimming Pools (Drank) 0.928654 859 797.713464 84
5 Kendrick Lamar PRIDE. 0.882353 504 444.705882 82
6 Kendrick Lamar DNA. 0.875367 671 587.370968 81
7 Kendrick Lamar Money Trees 0.947232 1153 1092.158304 81
8 Kendrick Lamar squabble up 0.872340 536 467.574468 81
9 Kendrick Lamar Alright 0.929379 705 655.211864 81
10 Kendrick Lamar LOYALTY. FEAT. RIHANNA. 0.954380 591 564.038321 78
11 Kendrick Lamar Count Me Out 0.925966 956 885.223176 77
12 Kendrick Lamar peekaboo (feat. azchike) 0.926357 602 557.666667 77
13 Kendrick Lamar United In Grief 0.885978 646 572.342065 76
14 Kendrick Lamar euphoria 0.924138 1441 1331.682759 76
15 Kendrick Lamar King Kunta 0.928471 714 662.928471 75
16 Kendrick Lamar Poetic Justice 0.942623 981 924.713115 75
17 Kendrick Lamar Push Thru 0.873418 673 587.810127 16
18 Kendrick Lamar Malcolm X 0.910781 534 486.356877 27
19 Kendrick Lamar Bitch, Don’t Kill My Vibe - Remix 0.896181 842 754.584726 28
20 Kendrick Lamar Two Presidents 0.889465 575 511.442142 34
21 Kendrick Lamar BLOOD. 0.741379 172 127.517241 38
0 Drake One Dance 0.934066 469 438.076923 92
1 Drake Headlines 0.917969 509 467.246094 89
2 Drake Passionfruit 0.861472 228 196.415584 89
3 Drake God's Plan 0.864023 349 301.543909 87
4 Drake Not You Too (feat. Chris Brown) 0.878553 388 340.878553 86
5 Drake NOKIA 0.943700 784 739.860590 85
6 Drake Hotline Bling 0.931663 431 401.546697 85
7 Drake DIE TRYING 0.895377 411 368.000000 84
8 Drake Teenage Fever 0.862500 319 275.137500 83
9 Drake 9 0.896078 518 464.168627 83
10 Drake Hold On, We're Going Home 0.996923 339 337.956923 82
11 Drake Jimmy Cooks (feat. 21 Savage) 0.943704 750 707.777778 82
12 Drake Nice For What 0.932091 751 700.000000 81
13 Drake SOMEBODY LOVES ME 0.916442 371 340.000000 81
14 Drake Which One (feat. Central Cee) 0.937238 566 530.476987 81
15 Drake Best I Ever Had 0.940334 837 787.059666 81
16 Drake Trust Issues 0.909256 543 493.725953 81
17 Drake Yebba’s Heartbreak 0.803150 127 102.000000 81
18 Drake Time Flies 0.913146 383 349.734742 80
19 Drake Chicago Freestyle (feat. Giveon) 0.953347 580 552.941176 80
20 Drake What Did I Miss? 0.892704 466 416.000000 80
21 Drake Take Care 0.902490 486 438.609959 80
22 Drake Marvins Room 0.932432 596 555.729730 80
23 Drake Practice 0.954783 579 552.819130 80
24 Drake Over My Dead Body 0.911475 608 554.177049 80
25 Drake Rich Baby Daddy (feat. Sexyy Red & SZA) 0.960729 811 779.151473 80
26 Drake Wants and Needs (feat. Lil Baby) 0.857977 514 441.000000 79
27 Drake Feel No Ways 0.955882 340 325.000000 79
28 Drake Do Not Disturb 0.882622 656 579.000000 79
29 Drake Live For 0.899115 567 509.798230 29
30 Drake Miss Me 0.904707 857 775.334099 34
31 Drake LOYAL (feat. Drake) 0.991228 342 339.000000 37
32 Drake TWIST & TURN (feat. Drake & PARTYNEXTDOOR) 0.934609 620 579.457735 38
33 Drake She Will 0.929697 824 766.070303 39
34 Drake Make Me Proud 0.909091 685 622.727273 42
In [40]:
combined.describe()[["rhyme_density", "word_count", "complexity", "popularity"]] # Quick display
Out[40]:
rhyme_density word_count complexity popularity
count 57.000000 57.000000 57.000000 57.000000
mean 0.911437 605.649123 555.531404 72.315789
std 0.041395 234.576251 221.631553 19.989424
min 0.741379 127.000000 102.000000 16.000000
25% 0.892562 469.000000 438.076923 76.000000
50% 0.916442 580.000000 552.819130 80.000000
75% 0.934609 750.000000 700.000000 83.000000
max 0.996923 1441.000000 1331.682759 92.000000
In [41]:
sb.boxplot(x="artist", y="rhyme_density", data=combined)
plt.title("Rhyme Density Comparison Between Artists")
plt.ylabel("Rhyme Density (proportion of rhymed words)")
plt.xlabel("Artist")
plt.show()
No description has been provided for this image

Both artists show very high rhyme density (Lots 0.9+). Drake’s median looks slightly higher, but both distributions overlap heavily. This shows rhyme use is consistently strong in both catalogs.

In [42]:
sb.scatterplot(x="popularity", y="rhyme_density", hue="artist", data=combined)
plt.title("Rhyme Density vs Popularity")
plt.xlabel("Spotify Popularity Score")
plt.ylabel("Rhyme Density")
plt.show()
No description has been provided for this image

Kendrick: +0.44 -> moderate positive correlation. This suggests his more lyrically complex tracks tend to be more popular. This aligns with his reputation for producing technically dense songs that still resonate well with his audience.

Drake: –0.29 -> weak negative correlation. This shows more rhyming or complex writing slightly correlates with lower popularity. Makes sense given Drake’s pop crossover appeal his simpler, melodic songs are usually the hits.

In [43]:
sb.scatterplot(x="popularity", y="complexity", hue="artist", data=combined)
plt.title("Complexity vs Popularity")
plt.xlabel("Spotify Popularity Score")
plt.ylabel("Complexity (word_count * rhyme_density)")
plt.show()
No description has been provided for this image

Correlation magnitudes are smaller (Kendrick +0.25, Drake –0.24). This implies rhyme density matters a bit more than total wordiness.

Now lets look at the actual correlation numbers to double check findings¶

In [44]:
print("Kendrick: rhyme density vs popularity =", 
      kendrickStats["rhyme_density"].corr(kendrickStats["popularity"]))

print("Drake: rhyme density vs popularity =", 
      drakeStats["rhyme_density"].corr(drakeStats["popularity"]))

print("Kendrick: complexity vs popularity =", 
      kendrickStats["complexity"].corr(kendrickStats["popularity"]))

print("Drake: complexity vs popularity =", 
      drakeStats["complexity"].corr(drakeStats["popularity"]))
Kendrick: rhyme density vs popularity = 0.43626748634343915
Drake: rhyme density vs popularity = -0.15539574770524997
Kendrick: complexity vs popularity = 0.2870718851108495
Drake: complexity vs popularity = -0.31819599194826137

The data above suggests that Kendrick Lamar’s songs show a moderate positive relationship between lyrical density and popularity. This implies that his more lyrically intricate song-writing tends to perform well with the public. Drake, on the other hand, displays a mild negative correlation between rhyme complexity and popularity. This consistent with his broader pop appeal. Simpler and more melodic tracks dominate his top-performing songs. While both artists exhibit high overall rhyme density, the role of lyrical complexity in driving popularity appears more significant for Kendrick than for Drake.

Thank you for viewing!¶

Little Bonus Analysis¶

Since my question has a focus on each artists careers as a whole, I think it is fitting to view these stats across each year of their careers

In [45]:
combined["release_year"] = combined["release_date"].str[:4].astype(float) # Extract year
combined
Out[45]:
artist artist_id album_id album_name album_type release_date track_id track_name duration_ms track_number disc_number explicit popularity lyrics word_count rhyme_density complexity release_year
0 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 5JjnoGJyOxfSZUZtk2rRwZ Not Like Us single 2024-05-04 6AI3ezQ4o3HUoP6Dhudph3 Not Like Us 274192 1 1 True 89 Psst, I see dead people\n(\nMustard on the bea... 907 0.897577 814.102423 2024.0
1 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 7KXjTSCq5nL1LoYtL7XAwS HUMBLE. 177000 8 1 True 86 Nobody pray for me\nIt been that day for me\nW... 598 0.892562 533.752066 2017.0
2 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 0aB0v4027ukVziUGwVGYpG tv off (feat. lefty gunplay) 220690 7 1 True 86 All I ever wanted was a black Grand National\n... 770 0.929504 715.718016 2024.0
3 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 6PGoSes0D9eUDeeAafB2As LOVE. FEAT. ZACARI. 213400 10 1 False 85 Maldición, amor o lujuria\nMaldición, todos no... 488 0.947242 462.254197 2017.0
4 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 2XPrwlaAHHXnJzP9tBcIzH Swimming Pools (Drank) single 2012-01-01 6REbwUNlppTfcnV4d4ZoZi Swimming Pools (Drank) 247800 1 1 True 84 Pour up (Drank), head shot (Drank)\nSit down (... 859 0.928654 797.713464 2012.0
5 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 6IZvVAP7VPPnsGX6bvgkqg PRIDE. 275253 7 1 True 82 Love's gonna get you killed\nBut pride’s gonna... 504 0.882353 444.705882 2017.0
6 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 6HZILIRieu8S0iqY8kIKhj DNA. 185946 2 1 True 81 I got, I got, I got, I got—\nLoyalty, got roya... 671 0.875367 587.370968 2017.0
7 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 6PBZN8cbwkqm1ERj2BGXJ1 good kid, m.A.A.d city album 2012 2HbKqm4o0w5wEeEFXm2sD4 Money Trees 386906 5 1 True 81 Uh, me and my niggas tryna get it, ya bish (Ya... 1153 0.947232 1092.158304 2012.0
8 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 0nj9Bq5sHDiTxSHunhgkFb squabble up 157992 2 1 True 81 God knows\nI am reincarnated\nI was stargazin'... 536 0.872340 467.574468 2024.0
9 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 7ycBtnsMtyVbbwTfJwRjSP To Pimp A Butterfly album 2015-03-16 3iVcZ5G6tvkXZkZKlMpIUs Alright 219333 7 1 True 81 Alls my life, I has to fight, nigga\nAlls my l... 705 0.929379 655.211864 2015.0
10 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 6SwRhMLwNqEi6alNPVG00n LOYALTY. FEAT. RIHANNA. 227360 6 1 True 78 Dije que estoy consumido por la droga y que es... 591 0.954380 564.038321 2017.0
11 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 79ONNoS4M9tfIA1mYLBYVX Mr. Morale & The Big Steppers album 2022-05-13 6BU1RZexmvJcBjgagVVt3M Count Me Out 283642 1 2 True 77 We may not know which way to go on this dark r... 956 0.925966 885.223176 2022.0
12 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 2Uts1QFB4u2YNIMiqcb4de peekaboo (feat. azchike) 155917 9 1 True 77 Sana la mano que ayuda\nA tu semejante hombre,... 602 0.926357 557.666667 2024.0
13 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 79ONNoS4M9tfIA1mYLBYVX Mr. Morale & The Big Steppers album 2022-05-13 5Gt9bxniM1SxN61yRzRhXL United In Grief 255377 1 1 True 76 I hope \nyou find some\n peace of mind in this... 646 0.885978 572.342065 2022.0
14 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 32bR4LcEc1PvJEhaKoo4ZN euphoria single 2024-04-30 77DRzu7ERs0TX3roZcre7Q euphoria 383639 1 1 True 76 ​eurt s'em tuoba yas yeht gnihtyrevE\nEuphoria... 1441 0.924138 1331.682759 2024.0
15 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 7ycBtnsMtyVbbwTfJwRjSP To Pimp A Butterfly album 2015-03-16 0N3W5peJUQtI4eyR6GJT5O King Kunta 234693 3 1 True 75 I got a bone to pick\nI don't want you monkey-... 714 0.928471 662.928471 2015.0
16 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3DGQ1iZ9XKUQxAUWjfC34w good kid, m.A.A.d city (Deluxe) album 2012 2P3SLxeQHPqh8qKB6gtJY2 Poetic Justice 300160 6 1 True 75 Every second, every minute, man, I swear that ... 981 0.942623 924.713115 2012.0
17 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3qHsYfN7ua1WGhQn1wquIn Push Thru (feat. Kendrick Lamar and Curren$y) single 2012 1kDctACNpFgSB7lZXPrazv Push Thru 301240 2 1 False 16 I rise as day breaks\nClouds hide the sun’s ra... 673 0.873418 587.810127 2012.0
18 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4NuKTiNjwcX4ZG7TXEBnYh Malcolm X single 2021-06-25 6Y2Sdnlpf2Lxb0lh4s81Fb Malcolm X 195440 1 1 True 27 K-Boy, Kendrick Lamar\nTB ain't shit yap\nYa d... 534 0.910781 486.356877 2021.0
19 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4XF4wNh0WHyrayqCYS8xY0 Bitch, Don't Kill My Vibe (Remix) single 2013-01-01 5GmqAFOndnDJnIgDPUeiol Bitch, Don’t Kill My Vibe - Remix 306053 1 1 False 28 I am a sinner\nWho's prob'ly gonna sin again\n... 842 0.896181 754.584726 2013.0
20 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 5moHeRF6YwQz9Mhc1SB0v0 Two Presidents single 2013-12-03 2Xjvo0g3jPZB8QgTmRv5oU Two Presidents 230038 1 1 True 34 (BraveStarr beats)\n\nTwo presidents and we bl... 575 0.889465 511.442142 2013.0
21 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4alcGHjstaALJHHiljfy3H DAMN. COLLECTORS EDITION. album 2017-12-08 1WonGCoO1sz7I4aD0HRbXy BLOOD. 118066 14 1 True 38 Is it wickedness?\nIs it weakness?\nYou decide... 172 0.741379 127.517241 2017.0
0 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 1zi7xx7UVEFkmKfv06H8x0 One Dance 173986 12 1 False 92 Baby, I like your style\n\nGrips on your waist... 469 0.934066 438.076923 2016.0
1 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 6LxSe8YmdPxy095Ux6znaQ Headlines 235986 3 1 True 89 I might be too strung out on compliments\nOver... 509 0.917969 467.246094 2011.0
2 Drake 3TVXtAsR1Inumwj472S9r4 1lXY618HWkwYKJWBRYR4MK More Life album 2017-03-18 5mCPDVBb16L4XQwDdbRUpz Passionfruit 298940 3 1 True 89 Hold on, hold on, fuck that\nFuck that shit\nH... 228 0.861472 196.415584 2017.0
3 Drake 3TVXtAsR1Inumwj472S9r4 1ATL5GLyefJaxhQzSPVrLX Scorpion album 2018-06-29 6DCZcSspjsKoFjzjrWoCdn God's Plan 198973 5 1 True 87 And they wishin' and wishin'\nAnd wishin' and ... 349 0.864023 301.543909 2018.0
4 Drake 3TVXtAsR1Inumwj472S9r4 6OQ9gBfg5EXeNAEwGSs6jK Dark Lane Demo Tapes album 2020-05-01 3Q4gttWQ6hxqWOa3tHoTNi Not You Too (feat. Chris Brown) 269680 4 1 True 86 First time in a long time\nHurtin' deeply insi... 388 0.878553 340.878553 2020.0
5 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 2u9S9JJ6hTZS3Vf22HOZKg NOKIA 241023 14 1 True 85 Who's callin' my phone?\n (Who's callin' that ... 784 0.943700 739.860590 2025.0
6 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 0wwPcA6wtMf6HUMpIRdeP7 Hotline Bling 267066 20 1 False 85 You used to call me on my\nYou used to, you us... 431 0.931663 401.546697 2016.0
7 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 0NUqi0ps17YpLUC3kgsZq0 DIE TRYING 195431 15 1 True 84 Yeah\n\nGirl, I can't decide if I should stay ... 411 0.895377 368.000000 2025.0
8 Drake 3TVXtAsR1Inumwj472S9r4 1lXY618HWkwYKJWBRYR4MK More Life album 2017-03-18 6n3HGiq4v35D6eFOSwqYuo Teenage Fever 219692 14 1 True 83 Your heart is hard to carry after dark\nYou're... 319 0.862500 275.137500 2017.0
9 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 1C7KSXR2GVxknex6I4ANco 9 255786 2 1 True 83 Yeah, for the dogs dem, you know\nEverybody wa... 518 0.896078 464.168627 2016.0
10 Drake 3TVXtAsR1Inumwj472S9r4 2ZUFSbIkmFkGag000RWOpA Nothing Was The Same (Deluxe) album 2013-01-01 6jdOi5U5LBzQrc4c1VT983 Hold On, We're Going Home 227880 8 1 False 82 I got my eyes on you\nYou're everything that I... 339 0.996923 337.956923 2013.0
11 Drake 3TVXtAsR1Inumwj472S9r4 3cf4iSSKd8ffTncbtKljXw Honestly, Nevermind album 2022-06-17 3F5CgOj3wFlRv51JsHbxhe Jimmy Cooks (feat. 21 Savage) 218364 14 1 True 82 Desperté sacudido una vez más, para que sepas ... 750 0.943704 707.777778 2022.0
12 Drake 3TVXtAsR1Inumwj472S9r4 1ATL5GLyefJaxhQzSPVrLX Scorpion album 2018-06-29 3CA9pLiwRIGtUBiMjbZmRw Nice For What 210746 4 2 True 81 I wanna know who mothafuckin' representin' in ... 751 0.932091 700.000000 2018.0
13 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 2kZoOj1n5vk9BuF0sih58M SOMEBODY LOVES ME 182767 16 1 True 81 (All the girls)\nI know there's somebody who l... 371 0.916442 340.000000 2025.0
14 Drake 3TVXtAsR1Inumwj472S9r4 4TWJJZmgYm6tE6PzqpluQ0 Which One single 2025-07-25 5FMyXeZ0reYloRTiCkPprT Which One (feat. Central Cee) 169134 1 1 True 81 Meu cabelo tá bonito? (Yeah)\nMeus peitos tão ... 566 0.937238 530.476987 2025.0
15 Drake 3TVXtAsR1Inumwj472S9r4 1LShhEEKRT5MNPcO7jtYHh So Far Gone album 2009 3QLjDkgLh9AOEHlhQtDuhs Best I Ever Had 257690 10 1 True 81 You know, a lot of girls be\nThinkin' my songs... 837 0.940334 787.059666 2009.0
16 Drake 3TVXtAsR1Inumwj472S9r4 7dqpveMVcWgbzqYrOdkFTD Care Package album 2019-08-02 4Wjhj0WjkyECccfHVIgaTq Trust Issues 281518 4 1 True 81 Uh\nAw yeah, aw yeah\nCall up on drank and let... 543 0.909256 493.725953 2019.0
17 Drake 3TVXtAsR1Inumwj472S9r4 3SpBlxme9WbeQdI9kx7KAV Certified Lover Boy album 2021-09-03 1PDP7mLiAMwhfmgIwzhOm2 Yebba’s Heartbreak 133762 11 1 True 81 How much better can I show my love for you\nTh... 127 0.803150 102.000000 2021.0
18 Drake 3TVXtAsR1Inumwj472S9r4 6OQ9gBfg5EXeNAEwGSs6jK Dark Lane Demo Tapes album 2020-05-01 5H4mXWKcicuLKDn4Jy0sK7 Time Flies 192931 7 1 True 80 Yeah, I'm outside in an AMG\nRight outside, TT... 383 0.913146 349.734742 2020.0
19 Drake 3TVXtAsR1Inumwj472S9r4 6OQ9gBfg5EXeNAEwGSs6jK Dark Lane Demo Tapes album 2020-05-01 4wVOKKEHUJxHCFFNUWDn0B Chicago Freestyle (feat. Giveon) 220487 3 1 True 80 A las 2:30, cariño, ¿nos reuniremos en The Bea... 580 0.953347 552.941176 2020.0
20 Drake 3TVXtAsR1Inumwj472S9r4 0bNfrGST1xSPZ3V3g5jjHT What Did I Miss? single 2025-07-05 57GsLpRtEtrzcPGPop20rS What Did I Miss? 194324 1 1 True 80 I don't give a fuck if you love me, I don't gi... 466 0.892704 416.000000 2025.0
21 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 124NFj84ppZ5pAxTuVQYCQ Take Care 277386 5 1 True 80 I know you've been hurt by someone else\nI can... 486 0.902490 438.609959 2011.0
22 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 047fCsbO4NdmwCBn8pcUXl Marvins Room 347226 6 1 True 80 Hello?\nYeah, I just walked in\nYeah, I'm good... 596 0.932432 555.729730 2011.0
23 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 0jF2AdhsalO1L7KkhK4LE5 Practice 237733 17 1 True 80 Yeah, Cash Money shit, Cash Money shit\n\nI ca... 579 0.954783 552.819130 2011.0
24 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 2Gnsof1hvZzjE1xdLRpjtf Over My Dead Body 272573 1 1 True 80 How I'm feeling, it doesn't matter\n'Cause you... 608 0.911475 554.177049 2011.0
25 Drake 3TVXtAsR1Inumwj472S9r4 4czdORdCWP9umpbhFXK2fW For All The Dogs album 2023-10-06 1yeB8MUNeLo9Ek1UEpsyz6 Rich Baby Daddy (feat. Sexyy Red & SZA) 319191 20 1 True 80 ¿Se terminó? Podría ser otro\n¿Se terminó? Pod... 811 0.960729 779.151473 2023.0
26 Drake 3TVXtAsR1Inumwj472S9r4 5LuoozUhs2pl3glZeAJl89 Scary Hours 2 single 2021-03-05 65OVbaJR5O1RmwOQx0875b Wants and Needs (feat. Lil Baby) 192956 2 1 True 79 One Take\nDD\n\nPainted with purple to match w... 514 0.857977 441.000000 2021.0
27 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 3cjF2OFRmip8spwZYQRKxP Feel No Ways 240653 4 1 True 79 I should be downtown, whipping on the way to y... 340 0.955882 325.000000 2016.0
28 Drake 3TVXtAsR1Inumwj472S9r4 1lXY618HWkwYKJWBRYR4MK More Life album 2017-03-18 2KvHC9z14GSl4YpkNMX384 Do Not Disturb 283550 22 1 True 79 Silence keeps cloudin' me\nHand on my heart\nA... 656 0.882622 579.000000 2017.0
29 Drake 3TVXtAsR1Inumwj472S9r4 0v4UlHEDcUBbV9kM3TX4bj Live For single 2013-01-01 4v1wpe6QTvLN7bu3gM6tRh Live For 222720 1 1 False 29 Getting sober for a day got me feeling too low... 567 0.899115 509.798230 2013.0
30 Drake 3TVXtAsR1Inumwj472S9r4 4VVBDjcpEc8vFWMlQfnmHX Miss Me single 2010-01-01 3h5boR23744b1CCE54hN3k Miss Me 305786 1 1 True 34 I said, "Tell me what's really goin' on"\nDriz... 857 0.904707 775.334099 2010.0
31 Drake 3TVXtAsR1Inumwj472S9r4 4OQEGCbts7MiJm8wfwC9BX LOYAL (feat. Drake) single 2019-11-22 13NAmCCRYxRcr2NEtiWGa8 LOYAL (feat. Drake) 197973 1 1 False 37 True, you're a star in my head\nYou, nuh need ... 342 0.991228 339.000000 2019.0
32 Drake 3TVXtAsR1Inumwj472S9r4 7iLdPmU6eUTwKsYifBQ6zb TWIST & TURN (feat. Drake & PARTYNEXTDOOR) single 2020-08-06 6R1eAccx1fnh8P5HhFzn84 TWIST & TURN (feat. Drake & PARTYNEXTDOOR) 259651 1 1 False 38 Your body drive mi crazy-y-y\nYour body need a... 620 0.934609 579.457735 2020.0
33 Drake 3TVXtAsR1Inumwj472S9r4 4v2wkI8xYxp0gTtSMwbRoj She Will single 2011-08-16 0WPbCs75tnRVM1Wag5PLeW She Will 307360 1 1 True 39 Young Money\nYeah, four\nAhem\n\nI tell her, "... 824 0.929697 766.070303 2011.0
34 Drake 3TVXtAsR1Inumwj472S9r4 4P9NQ88JRt2r39QlsevM1n Make Me Proud single 2011-01-01 3psB8LAWdw813k9ZmLvjmZ Make Me Proud 220053 1 1 True 42 I like a woman with a future and a past\nA lit... 685 0.909091 622.727273 2011.0
In [46]:
yearly = (combined.groupby(["artist", "release_year"])["rhyme_density"].mean().reset_index())
sb.lineplot(data=yearly, x="release_year", y="rhyme_density", hue="artist", marker="o")
plt.title("Average Rhyme Density Over Time")
plt.xlabel("Release Year")
plt.ylabel("Rhyme Density")
plt.show()
No description has been provided for this image
In [47]:
combined
Out[47]:
artist artist_id album_id album_name album_type release_date track_id track_name duration_ms track_number disc_number explicit popularity lyrics word_count rhyme_density complexity release_year
0 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 5JjnoGJyOxfSZUZtk2rRwZ Not Like Us single 2024-05-04 6AI3ezQ4o3HUoP6Dhudph3 Not Like Us 274192 1 1 True 89 Psst, I see dead people\n(\nMustard on the bea... 907 0.897577 814.102423 2024.0
1 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 7KXjTSCq5nL1LoYtL7XAwS HUMBLE. 177000 8 1 True 86 Nobody pray for me\nIt been that day for me\nW... 598 0.892562 533.752066 2017.0
2 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 0aB0v4027ukVziUGwVGYpG tv off (feat. lefty gunplay) 220690 7 1 True 86 All I ever wanted was a black Grand National\n... 770 0.929504 715.718016 2024.0
3 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 6PGoSes0D9eUDeeAafB2As LOVE. FEAT. ZACARI. 213400 10 1 False 85 Maldición, amor o lujuria\nMaldición, todos no... 488 0.947242 462.254197 2017.0
4 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 2XPrwlaAHHXnJzP9tBcIzH Swimming Pools (Drank) single 2012-01-01 6REbwUNlppTfcnV4d4ZoZi Swimming Pools (Drank) 247800 1 1 True 84 Pour up (Drank), head shot (Drank)\nSit down (... 859 0.928654 797.713464 2012.0
5 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 6IZvVAP7VPPnsGX6bvgkqg PRIDE. 275253 7 1 True 82 Love's gonna get you killed\nBut pride’s gonna... 504 0.882353 444.705882 2017.0
6 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 6HZILIRieu8S0iqY8kIKhj DNA. 185946 2 1 True 81 I got, I got, I got, I got—\nLoyalty, got roya... 671 0.875367 587.370968 2017.0
7 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 6PBZN8cbwkqm1ERj2BGXJ1 good kid, m.A.A.d city album 2012 2HbKqm4o0w5wEeEFXm2sD4 Money Trees 386906 5 1 True 81 Uh, me and my niggas tryna get it, ya bish (Ya... 1153 0.947232 1092.158304 2012.0
8 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 0nj9Bq5sHDiTxSHunhgkFb squabble up 157992 2 1 True 81 God knows\nI am reincarnated\nI was stargazin'... 536 0.872340 467.574468 2024.0
9 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 7ycBtnsMtyVbbwTfJwRjSP To Pimp A Butterfly album 2015-03-16 3iVcZ5G6tvkXZkZKlMpIUs Alright 219333 7 1 True 81 Alls my life, I has to fight, nigga\nAlls my l... 705 0.929379 655.211864 2015.0
10 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4eLPsYPBmXABThSJ821sqY DAMN. album 2017-04-14 6SwRhMLwNqEi6alNPVG00n LOYALTY. FEAT. RIHANNA. 227360 6 1 True 78 Dije que estoy consumido por la droga y que es... 591 0.954380 564.038321 2017.0
11 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 79ONNoS4M9tfIA1mYLBYVX Mr. Morale & The Big Steppers album 2022-05-13 6BU1RZexmvJcBjgagVVt3M Count Me Out 283642 1 2 True 77 We may not know which way to go on this dark r... 956 0.925966 885.223176 2022.0
12 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 0hvT3yIEysuuvkK73vgdcW GNX album 2024-11-22 2Uts1QFB4u2YNIMiqcb4de peekaboo (feat. azchike) 155917 9 1 True 77 Sana la mano que ayuda\nA tu semejante hombre,... 602 0.926357 557.666667 2024.0
13 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 79ONNoS4M9tfIA1mYLBYVX Mr. Morale & The Big Steppers album 2022-05-13 5Gt9bxniM1SxN61yRzRhXL United In Grief 255377 1 1 True 76 I hope \nyou find some\n peace of mind in this... 646 0.885978 572.342065 2022.0
14 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 32bR4LcEc1PvJEhaKoo4ZN euphoria single 2024-04-30 77DRzu7ERs0TX3roZcre7Q euphoria 383639 1 1 True 76 ​eurt s'em tuoba yas yeht gnihtyrevE\nEuphoria... 1441 0.924138 1331.682759 2024.0
15 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 7ycBtnsMtyVbbwTfJwRjSP To Pimp A Butterfly album 2015-03-16 0N3W5peJUQtI4eyR6GJT5O King Kunta 234693 3 1 True 75 I got a bone to pick\nI don't want you monkey-... 714 0.928471 662.928471 2015.0
16 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3DGQ1iZ9XKUQxAUWjfC34w good kid, m.A.A.d city (Deluxe) album 2012 2P3SLxeQHPqh8qKB6gtJY2 Poetic Justice 300160 6 1 True 75 Every second, every minute, man, I swear that ... 981 0.942623 924.713115 2012.0
17 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 3qHsYfN7ua1WGhQn1wquIn Push Thru (feat. Kendrick Lamar and Curren$y) single 2012 1kDctACNpFgSB7lZXPrazv Push Thru 301240 2 1 False 16 I rise as day breaks\nClouds hide the sun’s ra... 673 0.873418 587.810127 2012.0
18 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4NuKTiNjwcX4ZG7TXEBnYh Malcolm X single 2021-06-25 6Y2Sdnlpf2Lxb0lh4s81Fb Malcolm X 195440 1 1 True 27 K-Boy, Kendrick Lamar\nTB ain't shit yap\nYa d... 534 0.910781 486.356877 2021.0
19 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4XF4wNh0WHyrayqCYS8xY0 Bitch, Don't Kill My Vibe (Remix) single 2013-01-01 5GmqAFOndnDJnIgDPUeiol Bitch, Don’t Kill My Vibe - Remix 306053 1 1 False 28 I am a sinner\nWho's prob'ly gonna sin again\n... 842 0.896181 754.584726 2013.0
20 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 5moHeRF6YwQz9Mhc1SB0v0 Two Presidents single 2013-12-03 2Xjvo0g3jPZB8QgTmRv5oU Two Presidents 230038 1 1 True 34 (BraveStarr beats)\n\nTwo presidents and we bl... 575 0.889465 511.442142 2013.0
21 Kendrick Lamar 2YZyLoL8N0Wb9xBt1NhZWg 4alcGHjstaALJHHiljfy3H DAMN. COLLECTORS EDITION. album 2017-12-08 1WonGCoO1sz7I4aD0HRbXy BLOOD. 118066 14 1 True 38 Is it wickedness?\nIs it weakness?\nYou decide... 172 0.741379 127.517241 2017.0
0 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 1zi7xx7UVEFkmKfv06H8x0 One Dance 173986 12 1 False 92 Baby, I like your style\n\nGrips on your waist... 469 0.934066 438.076923 2016.0
1 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 6LxSe8YmdPxy095Ux6znaQ Headlines 235986 3 1 True 89 I might be too strung out on compliments\nOver... 509 0.917969 467.246094 2011.0
2 Drake 3TVXtAsR1Inumwj472S9r4 1lXY618HWkwYKJWBRYR4MK More Life album 2017-03-18 5mCPDVBb16L4XQwDdbRUpz Passionfruit 298940 3 1 True 89 Hold on, hold on, fuck that\nFuck that shit\nH... 228 0.861472 196.415584 2017.0
3 Drake 3TVXtAsR1Inumwj472S9r4 1ATL5GLyefJaxhQzSPVrLX Scorpion album 2018-06-29 6DCZcSspjsKoFjzjrWoCdn God's Plan 198973 5 1 True 87 And they wishin' and wishin'\nAnd wishin' and ... 349 0.864023 301.543909 2018.0
4 Drake 3TVXtAsR1Inumwj472S9r4 6OQ9gBfg5EXeNAEwGSs6jK Dark Lane Demo Tapes album 2020-05-01 3Q4gttWQ6hxqWOa3tHoTNi Not You Too (feat. Chris Brown) 269680 4 1 True 86 First time in a long time\nHurtin' deeply insi... 388 0.878553 340.878553 2020.0
5 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 2u9S9JJ6hTZS3Vf22HOZKg NOKIA 241023 14 1 True 85 Who's callin' my phone?\n (Who's callin' that ... 784 0.943700 739.860590 2025.0
6 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 0wwPcA6wtMf6HUMpIRdeP7 Hotline Bling 267066 20 1 False 85 You used to call me on my\nYou used to, you us... 431 0.931663 401.546697 2016.0
7 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 0NUqi0ps17YpLUC3kgsZq0 DIE TRYING 195431 15 1 True 84 Yeah\n\nGirl, I can't decide if I should stay ... 411 0.895377 368.000000 2025.0
8 Drake 3TVXtAsR1Inumwj472S9r4 1lXY618HWkwYKJWBRYR4MK More Life album 2017-03-18 6n3HGiq4v35D6eFOSwqYuo Teenage Fever 219692 14 1 True 83 Your heart is hard to carry after dark\nYou're... 319 0.862500 275.137500 2017.0
9 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 1C7KSXR2GVxknex6I4ANco 9 255786 2 1 True 83 Yeah, for the dogs dem, you know\nEverybody wa... 518 0.896078 464.168627 2016.0
10 Drake 3TVXtAsR1Inumwj472S9r4 2ZUFSbIkmFkGag000RWOpA Nothing Was The Same (Deluxe) album 2013-01-01 6jdOi5U5LBzQrc4c1VT983 Hold On, We're Going Home 227880 8 1 False 82 I got my eyes on you\nYou're everything that I... 339 0.996923 337.956923 2013.0
11 Drake 3TVXtAsR1Inumwj472S9r4 3cf4iSSKd8ffTncbtKljXw Honestly, Nevermind album 2022-06-17 3F5CgOj3wFlRv51JsHbxhe Jimmy Cooks (feat. 21 Savage) 218364 14 1 True 82 Desperté sacudido una vez más, para que sepas ... 750 0.943704 707.777778 2022.0
12 Drake 3TVXtAsR1Inumwj472S9r4 1ATL5GLyefJaxhQzSPVrLX Scorpion album 2018-06-29 3CA9pLiwRIGtUBiMjbZmRw Nice For What 210746 4 2 True 81 I wanna know who mothafuckin' representin' in ... 751 0.932091 700.000000 2018.0
13 Drake 3TVXtAsR1Inumwj472S9r4 6Rl6YoCarF2GHPSQmmFjuR $ome $exy $ongs 4 U album 2025-02-14 2kZoOj1n5vk9BuF0sih58M SOMEBODY LOVES ME 182767 16 1 True 81 (All the girls)\nI know there's somebody who l... 371 0.916442 340.000000 2025.0
14 Drake 3TVXtAsR1Inumwj472S9r4 4TWJJZmgYm6tE6PzqpluQ0 Which One single 2025-07-25 5FMyXeZ0reYloRTiCkPprT Which One (feat. Central Cee) 169134 1 1 True 81 Meu cabelo tá bonito? (Yeah)\nMeus peitos tão ... 566 0.937238 530.476987 2025.0
15 Drake 3TVXtAsR1Inumwj472S9r4 1LShhEEKRT5MNPcO7jtYHh So Far Gone album 2009 3QLjDkgLh9AOEHlhQtDuhs Best I Ever Had 257690 10 1 True 81 You know, a lot of girls be\nThinkin' my songs... 837 0.940334 787.059666 2009.0
16 Drake 3TVXtAsR1Inumwj472S9r4 7dqpveMVcWgbzqYrOdkFTD Care Package album 2019-08-02 4Wjhj0WjkyECccfHVIgaTq Trust Issues 281518 4 1 True 81 Uh\nAw yeah, aw yeah\nCall up on drank and let... 543 0.909256 493.725953 2019.0
17 Drake 3TVXtAsR1Inumwj472S9r4 3SpBlxme9WbeQdI9kx7KAV Certified Lover Boy album 2021-09-03 1PDP7mLiAMwhfmgIwzhOm2 Yebba’s Heartbreak 133762 11 1 True 81 How much better can I show my love for you\nTh... 127 0.803150 102.000000 2021.0
18 Drake 3TVXtAsR1Inumwj472S9r4 6OQ9gBfg5EXeNAEwGSs6jK Dark Lane Demo Tapes album 2020-05-01 5H4mXWKcicuLKDn4Jy0sK7 Time Flies 192931 7 1 True 80 Yeah, I'm outside in an AMG\nRight outside, TT... 383 0.913146 349.734742 2020.0
19 Drake 3TVXtAsR1Inumwj472S9r4 6OQ9gBfg5EXeNAEwGSs6jK Dark Lane Demo Tapes album 2020-05-01 4wVOKKEHUJxHCFFNUWDn0B Chicago Freestyle (feat. Giveon) 220487 3 1 True 80 A las 2:30, cariño, ¿nos reuniremos en The Bea... 580 0.953347 552.941176 2020.0
20 Drake 3TVXtAsR1Inumwj472S9r4 0bNfrGST1xSPZ3V3g5jjHT What Did I Miss? single 2025-07-05 57GsLpRtEtrzcPGPop20rS What Did I Miss? 194324 1 1 True 80 I don't give a fuck if you love me, I don't gi... 466 0.892704 416.000000 2025.0
21 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 124NFj84ppZ5pAxTuVQYCQ Take Care 277386 5 1 True 80 I know you've been hurt by someone else\nI can... 486 0.902490 438.609959 2011.0
22 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 047fCsbO4NdmwCBn8pcUXl Marvins Room 347226 6 1 True 80 Hello?\nYeah, I just walked in\nYeah, I'm good... 596 0.932432 555.729730 2011.0
23 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 0jF2AdhsalO1L7KkhK4LE5 Practice 237733 17 1 True 80 Yeah, Cash Money shit, Cash Money shit\n\nI ca... 579 0.954783 552.819130 2011.0
24 Drake 3TVXtAsR1Inumwj472S9r4 6X1x82kppWZmDzlXXK3y3q Take Care (Deluxe) album 2011-11-15 2Gnsof1hvZzjE1xdLRpjtf Over My Dead Body 272573 1 1 True 80 How I'm feeling, it doesn't matter\n'Cause you... 608 0.911475 554.177049 2011.0
25 Drake 3TVXtAsR1Inumwj472S9r4 4czdORdCWP9umpbhFXK2fW For All The Dogs album 2023-10-06 1yeB8MUNeLo9Ek1UEpsyz6 Rich Baby Daddy (feat. Sexyy Red & SZA) 319191 20 1 True 80 ¿Se terminó? Podría ser otro\n¿Se terminó? Pod... 811 0.960729 779.151473 2023.0
26 Drake 3TVXtAsR1Inumwj472S9r4 5LuoozUhs2pl3glZeAJl89 Scary Hours 2 single 2021-03-05 65OVbaJR5O1RmwOQx0875b Wants and Needs (feat. Lil Baby) 192956 2 1 True 79 One Take\nDD\n\nPainted with purple to match w... 514 0.857977 441.000000 2021.0
27 Drake 3TVXtAsR1Inumwj472S9r4 40GMAhriYJRO1rsY4YdrZb Views album 2016-05-06 3cjF2OFRmip8spwZYQRKxP Feel No Ways 240653 4 1 True 79 I should be downtown, whipping on the way to y... 340 0.955882 325.000000 2016.0
28 Drake 3TVXtAsR1Inumwj472S9r4 1lXY618HWkwYKJWBRYR4MK More Life album 2017-03-18 2KvHC9z14GSl4YpkNMX384 Do Not Disturb 283550 22 1 True 79 Silence keeps cloudin' me\nHand on my heart\nA... 656 0.882622 579.000000 2017.0
29 Drake 3TVXtAsR1Inumwj472S9r4 0v4UlHEDcUBbV9kM3TX4bj Live For single 2013-01-01 4v1wpe6QTvLN7bu3gM6tRh Live For 222720 1 1 False 29 Getting sober for a day got me feeling too low... 567 0.899115 509.798230 2013.0
30 Drake 3TVXtAsR1Inumwj472S9r4 4VVBDjcpEc8vFWMlQfnmHX Miss Me single 2010-01-01 3h5boR23744b1CCE54hN3k Miss Me 305786 1 1 True 34 I said, "Tell me what's really goin' on"\nDriz... 857 0.904707 775.334099 2010.0
31 Drake 3TVXtAsR1Inumwj472S9r4 4OQEGCbts7MiJm8wfwC9BX LOYAL (feat. Drake) single 2019-11-22 13NAmCCRYxRcr2NEtiWGa8 LOYAL (feat. Drake) 197973 1 1 False 37 True, you're a star in my head\nYou, nuh need ... 342 0.991228 339.000000 2019.0
32 Drake 3TVXtAsR1Inumwj472S9r4 7iLdPmU6eUTwKsYifBQ6zb TWIST & TURN (feat. Drake & PARTYNEXTDOOR) single 2020-08-06 6R1eAccx1fnh8P5HhFzn84 TWIST & TURN (feat. Drake & PARTYNEXTDOOR) 259651 1 1 False 38 Your body drive mi crazy-y-y\nYour body need a... 620 0.934609 579.457735 2020.0
33 Drake 3TVXtAsR1Inumwj472S9r4 4v2wkI8xYxp0gTtSMwbRoj She Will single 2011-08-16 0WPbCs75tnRVM1Wag5PLeW She Will 307360 1 1 True 39 Young Money\nYeah, four\nAhem\n\nI tell her, "... 824 0.929697 766.070303 2011.0
34 Drake 3TVXtAsR1Inumwj472S9r4 4P9NQ88JRt2r39QlsevM1n Make Me Proud single 2011-01-01 3psB8LAWdw813k9ZmLvjmZ Make Me Proud 220053 1 1 True 42 I like a woman with a future and a past\nA lit... 685 0.909091 622.727273 2011.0

Both artists maintain pretty high levels of lyrical complexity throughout their careers. Drake’s rhyme density fluctuates more, suggesting variation across releases, while Kendrick Lamar’s appears more stable and slightly trends upward, reflecting more lyrical refinement over time.

In [48]:
combined['release_year'] = combined['release_year'].astype(int)
In [49]:
project2ReleaseYears = combined[['track_name', 'artist', 'release_year']]
In [50]:
project2ReleaseYears.to_csv('project2ReleaseYears.csv', index=False)