# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     name: python3
# ---

# + [markdown] id="view-in-github" colab_type="text"
# <a href="https://colab.research.google.com/github/alan-mcl/tsom-covers/blob/main/All_TSOM_Covers.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>

# + [markdown] id="bk0F5gIMV6v6"
# # The Sisters Of Mercy - Covers
#
# I analysed 987 covers of the Sisters from 818 unique artists across Spotify, Bandcamp, Soundcloud and YouTube. 
#
# The TL;DR:
#
# * Most covered songs: **Lucretia** by a length, then **Alice** and **Marian**.
# * Most covered band line-up: **Floodland**, then **FALAA** and **Reptile House** jostling for second place.
# * Busiest years for covers: **2021**, **2019** and **2020** 
# * Genre: **53%** are covers in the style of the original material, then **Electronic** 15%, **Metal** 12%, **Acoustic** 9%
# * Most likely to be covered by dodgy darklings: **Alice**, **Body Electric**, **Dominion**
# * Most likely to be covered by techno bois: **Dominion**, **Body Electric**, **Lucretia**
# * Most likely to be covered by angry metalheads: **No Time To Cry**, **This Corrosion**, **Black Planet**
# * Most likely to be an acoustic/unplugged cover: **When You Don't See Me**, **Something Fast**, **Marian**
# * Most diverse genres of covers: **This Corrosion**, **Temple Of Love** 
# * Least diverse genres of covers: **Something Fast**, **Alice**, **Body Electric**
# * Most prolific cover artists: **<NAME>**, followed by **nmacog** and **botchandango**
# * No covers: **Watch** and **Phantom**, also **Driver**, **Wide Receiver**, **Better Reptile**, **I Will Call You**

# + id="R02X_qRSmSdW" colab={"base_uri": "https://localhost:8080/"} outputId="23cdd877-7ea4-4e57-f338-b41d4ea1eec0"
pip install requests pandas matplotlib

# + id="CyTxCZpCnWYd"
#from google.colab import drive
#drive.mount('/content/drive')
# #!cp drive/'My Drive'/Music/tsom/tsom_covers.csv .
# #!ls -la

# + colab={"base_uri": "https://localhost:8080/"} id="qhv25C9ZNDoW" outputId="2e0451d6-3d07-4d4a-d9d7-9a1e35f8b4d2"
import requests

download_url = "https://raw.githubusercontent.com/alan-mcl/tsom-covers/main/tsom_covers.csv"
target_csv_path = "tsom_covers.csv"

response = requests.get(download_url)
response.raise_for_status()    # Check that the request was successful
with open(target_csv_path, "wb") as f:
    f.write(response.content)
print("Download ready.")
# !ls -la
# #!cat tsom_covers.csv

# + id="Sd3rV4eWn0UH" colab={"base_uri": "https://localhost:8080/", "height": 468} outputId="af58ec17-f6c6-4022-c393-277f9182d492"
import pandas as pd
temp = pd.read_csv("tsom_covers.csv", error_bad_lines=True)
tsom = temp.copy()
print(type(tsom))
print(len(tsom))
print(tsom.shape)
pd.set_option("display.max_rows", None)
tsom.head()

# + id="Yivpet0gqwXb" colab={"base_uri": "https://localhost:8080/"} outputId="3fc8e485-9eff-451d-a0f0-2c5a2c09c2fe"
tsom.info()

# + id="KXxw0kr2rMqr" colab={"base_uri": "https://localhost:8080/", "height": 274} outputId="78faf66a-b7b8-4790-e3e2-32337588bfb5"
tsom.describe(include=object)

# + id="Xi2JvWx0yOUX"
all_titles = ["1959", "A Rock And A Hard Place", "Adrenochrome", "Afterhours", "Alice", "Amphetamine Logic", "Anaconda", "Arms", "Better Reptile", "Black Planet", "Black Sail", "Blood Money", "Body And Soul", "Body Electric", "Burn", "Bury Me Deep", "But Genevieve", "Colours", "Come Together", "Crash And Burn", "Detonation Boulevard", "Doctor Jeep", "Dominion", "Driven Like The Snow", "Driver", "Finland Red, Egypt White", "First And Last And Always", "Fix", "Flood I", "Flood II", "Floorshow", "Giving Ground", "Good Things", "Heartland", "I Have Slept With All The Girls In Berlin", "I Was Wrong", "I Will Call You", "Jihad", "Kiss The Carpet", "Lights", "Lucretia, My Reflection", "Marian", "Mother Russia", "More", "Never Land", "Nine While Nine", "No Time To Cry", "On The Wire", "Phantom", "Poison Door", "Possession", "Rain From Heaven", "Ribbons", "Romeo Down", "Show Me", "Some Kind Of Stranger", "Something Fast", "Still", "Summer", "Temple Of Love", "The Damage Done", "This Corrosion", "Torch", "Train", "Under The Gun", "Valentine", "Vision Thing", "Walk Away", "War On Drugs", "Watch", "We Are The Same, Susanne", "When You Don't See Me", "Wide Receiver", "Will I Dream?", "You Could Be The One"]
lineup_map = { \
              "1959" : "Floodland",
"A Rock And A Hard Place" : "FALAA",
"Adrenochrome" : "Reptile House",
"Afterhours" : "FALAA",
"Alice" : "Reptile House",
"Amphetamine Logic" : "FALAA",
"Anaconda" : "Reptile House",
"Arms" : "Post-VT Live Only",
"Better Reptile" : "Post-VT Live Only",
"Black Planet" : "FALAA",
"Black Sail" : "Post-VT Live Only",
"Blood Money" : "FALAA",
"Body And Soul" : "FALAA",
"Body Electric" : "Reptile House",
"Burn" : "Reptile House",
"Bury Me Deep" : "FALAA",
"But Genevieve" : "Post-VT Live Only",
"Colours" : "Floodland",
"Come Together" : "Post-VT Live Only",
"Crash And Burn" : "Post-VT Live Only",
"Detonation Boulevard" : "Vision Thing",
"Doctor Jeep" : "Vision Thing",
"Dominion" : "Floodland",
"Driven Like The Snow" : "Floodland",
"Driver" : "Reptile House",
"Finland Red, Egypt White" : "Floodland",
"First And Last And Always" : "FALAA",
"Fix" : "Reptile House",
"Flood I" : "Floodland",
"Flood II" : "Floodland",
"Floorshow" : "Reptile House",
"Giving Ground" : "Floodland",
"Good Things" : "Reptile House",
"Heartland" : "Reptile House",
"I Have Slept With All The Girls In Berlin" : "Post-VT Live Only",
"I Was Wrong" : "Vision Thing",
"I Will Call You" : "Post-VT Live Only",
"Jihad" : "Floodland",
"Kiss The Carpet" : "Reptile House",
"Lights" : "Reptile House",
"Lucretia, My Reflection" : "Floodland",
"Marian" : "FALAA",
"<NAME>" : "Floodland",
"More" : "Vision Thing",
"Never Land" : "Floodland",
"Nine While Nine" : "FALAA",
"No Time To Cry" : "FALAA",
"On The Wire" : "FALAA",
"Phantom" : "Reptile House",
"Poison Door" : "FALAA",
"Possession" : "FALAA",
"Rain From Heaven" : "Floodland",
"Ribbons" : "Vision Thing",
"Romeo Down" : "Post-VT Live Only",
"Show Me" : "Post-VT Live Only",
"Some Kind Of Stranger" : "FALAA",
"Something Fast" : "Vision Thing",
"Still" : "Post-VT Live Only",
"Summer" : "Post-VT Live Only",
"Temple Of Love" : "Reptile House",
"The Damage Done" : "Damage/Watch",
"This Corrosion" : "Floodland",
"Torch" : "Floodland",
"Train" : "FALAA",
"Under The Gun" : "Post-VT Live Only",
"Valentine" : "Reptile House",
"Vision Thing" : "Vision Thing",
"Walk Away" : "FALAA",
"War On Drugs" : "Post-VT Live Only",
"Watch" : "Damage/Watch",
"We Are The Same, Susanne" : "Post-VT Live Only",
"When You Don't See Me" : "Vision Thing",
"Wide Receiver" : "FALAA",
"Will I Dream?" : "Post-VT Live Only",
"You Could Be The One" : "Vision Thing",              
}

# + id="GxyStYdSxNyS"
tsom["Title"] = pd.Categorical(tsom["Title"], categories=all_titles)
tsom["ArtistGenre"] = pd.Categorical(tsom["ArtistGenre"])
tsom["CoverType"] = pd.Categorical(tsom["CoverType"])

# + id="5VNM12Ef9Yin"
tsom["lineup"] = tsom["Title"].map(lineup_map)

# + [markdown] id="ny6aFTrpF9l5"
# # Methodology
#
# Basically, I did a lot of detailed searching on each platform. I worked through the list of released and unreleased TSOM and Sisterhood tracks making queries for covers of each. I tried a variety of alternate names for the track and band where applicable. 
#
# Where the platforms supported public playlists, and there are Sisters playlists, I perused all of those for applicable covers. 
#
# Finally, I dug through old Heartland threads about covers and picked up some material that I missed, although often old links were dead.
#
# "Lucretia, My Reflection" has the most variety of annoying incorrect spellings, although I didn't record that data. Bandcamp was most irritating platform because it doesn't support playlists.
#
# Despite all this I'm sure I missed some material and expect to be loudly informed about it.
#
# On all platforms I **disqualified** the following material as a "cover" and excluded it from the data set:
#
# * Live or studio bootlegs of the real band.
# * Rips of released material.
# * Techno remixes of original material.
# * Vocal covers over original material (please don't ever do this on YouTube).
# * Mashups of original material (sorry Project Kiss Kass).
# * "Covers of the Sisters" *own* covers (e.g. Emma; more common than you'd think).
# * Solo instrumental parts (sorry Wayne and all the YouTube bassists).
# * Speed Kings and NME.
# * Music from those *goddam* karaoke vendors.
# * Covers of that Leonard Cohen song
# * Abrimaal

# + [markdown] id="k5EuzVQBGDDr"
# # Songs
#
# Let's look at total covers.
#
# Everyone and his dog has covered **Lucretia** (154), and this *after* I excluded countless "watch me play the Lucretia bassline" YouTube videos. **Alice** (95) and **Marian** (71) are clear second and third places, then **Temple Of Love** (59) and **This Corrosion** (58) are neck and neck. **No Time To Cry** (28) may be a surprise at number 6. **First And Last And Always** (27), **Dominion** (27), **Black Planet** (24) and **Something Fast** (23) round out the top 10.
#
# **Driven Like The Snow** (17) and **1959** (15) make strong showings for songs that have never been performed in the live set, speaking to the enduring strength of the Floodland material.
#
# For one of the better songs on its album **Possession** (3) has surprisingly few covers. Is this one hard to play, or hard to sing? Same could be said about **Ribbons** (6).
#
# The Steinman collaborations (This Corrosion, Dominion/Mother Russia and More) account for 10.6% of the total covers.
#
# Of the released material, I didn't find any covers of **Watch** and **Phantom**. I'm not surprised by the latter. But Watch deserves a cover or two - it lasted longer in the live set than Damage and the later iterations were better than the released single.
#
# Including unreleased material: **Driver**, **Wide Receiver**, **Better Reptile** and **I Will Call You** are not represented in the data set (I didn't consider Body Politic and Burn It Down to be unique tracks). Wide Receiver is garbage, but Driver is a good song and I was surprised not to find any covers. For the two recent songs I guess we need Von to tell us the actual lyrics before anyone tries them. Maybe a cover that embraces the indistinct mumbling is the way to go?

# + colab={"base_uri": "https://localhost:8080/"} id="XbZsg7yesYH0" outputId="3087f97d-8879-418e-a534-ec6985131fc2"
tsom["Title"].value_counts()

# + colab={"base_uri": "https://localhost:8080/"} id="fV5wQbdJGSl8" outputId="e6539139-6cad-465e-f7ec-442bb8ff9e74"
tsom["Title"].value_counts(normalize=True).mul(100).round(1).astype(str) + '%'

# + [markdown] id="6BwzgMMZMBrx"
# # Genres
# I assigned a genre to each cover after listening to it. This part of the analysis is obviously somewhat subjective so take it with a pinch of salt.
#
# "Straight" covers are those done in the style of the original material, otherwise I picked from broad genre buckets. 
#
# 53% are **Straight** covers. These are all the cover bands and tribute acts, many of the fan-made amateur covers, and a variety of professional dodgy darklings. And techno fans of The Sisterhood.
#
# Nearly 15% are from some "**Electronic**" genre (when the original track isn't). No I don't care about the difference between your acid house vs synth pop. "Chiptune"-style covers are in this bucket too.
#
# "**Metal**" is next at 12%. I did initially break out a couple of subgenres mostly because I am more familiar with the landscape here. Eventually I just rolled them up into the Metal bucket.
#
# "**Acoustic**" is fourth at 9%. I included unplugged guitar, piano, and random unpowered instruments like ukulele, violin etc in here.
#
# "**Alternative**" (6%) is the last significant category and is basically defined by the "alternative" recommendations that Bandcamp sends me weekly. A lot of artists self-identify as some kind of "alternative" too so this isn't completely subjective.
#
# Industrial, A Capella, Punk, Country, Hip Hop, LoFi, Reggae, Soul and Jazz represent the long tail of genres with very few covers each.

# + colab={"base_uri": "https://localhost:8080/"} id="9C--qgOOuSq6" outputId="98ad1878-f4c6-4057-ccc9-a5c2dfa1d125"
tsom["CoverType"].value_counts(normalize=True).mul(100).round(1).astype(str) + '%'

# + [markdown] id="Q95dVIvJaTS8"
# # Genre by Song
#
# Let's dig deeper into the tracks with 20 or more covers.
#
# **Something Fast** has the most Straight covers (70%). Basically everyone in a lockdown with a guitar and a laptop drum machine put a cover of this on YouTube.
#
# Discounting that, **Alice** (64%), **Body Electric** (62%) and **Dominion** (52%) are most likely to be in the setlist of a tribute band near you. I am surprised **Marian** (51%) is as low as fourth. **No Time To Cry** has the least Straight covers at 21%.
#
# **Dominion** (26%), **Body Electric** (24%) and **Lucretia** (23%) are beloved of the Electronic music community. **Something Fast** has zero techno covers even though it's name has some amusing synergy with the genre. 
#
# Fully 42% of **No Time To Cry** covers are Metal. There is a cluster of metalheads who have redone the well-known Cradle Of Filth cover (not all of who seem to realise it's originally from the Sisters) making it arguably the most influential Sisters cover in any genre. **This Corrosion** (28%), **Black Planet** (25%) and **More** (25%) are other favourites in this genre. **Domninion** (4%) has the fewest metal covers.
#
# People with a guitar and an emo reach for **When You Don't See Me** - 23% of it's covers are Acoustic. **Something Fast** (22%) and **Marian** (18%) are obvious acoustic covers, **This Corrosion** (17%) maybe less so at #5. **Body Electric** has no acoustic covers and that is something I'd like to hear.

# + colab={"base_uri": "https://localhost:8080/"} id="N8ZEJnc_UVcL" outputId="a5981984-d856-46c3-fda9-3fed1df2d5e6"
filtered = tsom.groupby("Title").filter(lambda x : len(x) >= 20)

print("Straight covers")
print("-------------------")
print((filtered[filtered["CoverType"]=="Straight"]["Title"].value_counts() / filtered["Title"].value_counts() *100).sort_values(ascending=False).head(20).round(1).astype(str) + '%')

print("\nElectronic covers")
print("-------------------")
print((filtered[filtered["CoverType"]=="Electronic"]["Title"].value_counts() / filtered["Title"].value_counts() *100).sort_values(ascending=False).head(20).round(1).astype(str) + '%')

print("\nMetal covers")
print("-------------------")
print ((filtered[filtered["CoverType"]=="Metal"]["Title"].value_counts() / filtered["Title"].value_counts() *100).sort_values(ascending=False).head(20).round(1).astype(str) + '%')

print("\nAcoustic covers")
print("-------------------")
print((filtered[filtered["CoverType"]=="Acoustic"]["Title"].value_counts() / filtered["Title"].value_counts() *100).sort_values(ascending=False).head(20).round(1).astype(str) + '%')


# + [markdown] id="vevpuqRj5dlZ"
# # Diversity
#
# I hacked up a "diversity index" for each song by using the sum of squares of the proportions of each genre per song, inverted because big numbers are better.
#
# Once again taking the songs with more than 20 total covers, **This Corrosion** stands out with the most diverse group of covers. Something about it's combination of cocky beats, relentless groove and over-the-top angst clearly appeals to a wide range of artists.
#
# **Temple Of Love** is in a clear second place, also attracting the attention of a wide variety of musical styles. **Black Planet**, **First And Last And Always** and **When You Don't See Me** round out the "diversity" top 5.
#
# **Something Fast** props up the bottom of the list because all it's covers are either straight or acoustic (i.e. straight without drums). **Alice** and **Body Electric** are a predictably second and third least diverse.

# + colab={"base_uri": "https://localhost:8080/"} id="TN7prHUC5cMJ" outputId="dfecae30-69e2-4787-ccb4-80b78ef95c6b"
filtered = tsom.groupby("Title").filter(lambda x : len(x) >= 20)

(filtered.groupby(["Title", "CoverType"])["CoverType"].count()/tsom.groupby(["Title"])["Title"].count()).pow(2).groupby("Title").sum().pow(0.5).pow(-1).sort_values(ascending=False)


# + [markdown] id="GgfuF70L1SRN"
# # Line-up
# Sorting total covers by era, the **Floodland** "line-up" (314) is well out ahead as the most covered, mostly due to the volume of Lucretia (note that I included The Sisterhood tracks in this line-up bucket which may not be entirely fair). **FALAA** (266) and **Reptile House** (263)are pretty even behind that. Despite being an actual live line-up the **Vision Thing** songs (112) are a lot less popular with covering artists. One could make a case for splitting the post-VT live line-ups by lead guitarist or something but I couldn't be arsed.
#
# All line-ups have roughly the same proportion of straight covers. Floodland unsurprisingly has the highest proportion of Electronic covers (18%). Vision Thing has both the most Acoustic (16%) and Metal (13%) covers, which might speak to its reach outside the traditional Sisters fanbase.

# + colab={"base_uri": "https://localhost:8080/"} id="TNwtz1HwAgjr" outputId="5944efc9-82e6-4440-d042-aef9612f93a4"
tsom["lineup"].value_counts()

# + colab={"base_uri": "https://localhost:8080/"} id="PHe5jwpw2Man" outputId="a4821956-7e74-4555-d72d-c92e08b8c510"
filtered = tsom

print("\nFloodland")
print("-------------------")
print((filtered[filtered["lineup"]=="Floodland"].groupby("CoverType")["Title"].count()/filtered[filtered["lineup"]=="Floodland"]["Title"].count()*100).sort_values(ascending=False).head(20).round(1).astype(str) + '%')

print("\nFALAA")
print("-------------------")
print((filtered[filtered["lineup"]=="FALAA"].groupby("CoverType")["Title"].count()/filtered[filtered["lineup"]=="FALAA"]["Title"].count()*100).sort_values(ascending=False).head(20).round(1).astype(str) + '%')

print("\nReptile House")
print("-------------------")
print((filtered[filtered["lineup"]=="Reptile House"].groupby("CoverType")["Title"].count()/filtered[filtered["lineup"]=="Reptile House"]["Title"].count()*100).sort_values(ascending=False).head(20).round(1).astype(str) + '%')

print("\nVision Thing")
print("-------------------")
print((filtered[filtered["lineup"]=="Vision Thing"].groupby("CoverType")["Title"].count()/filtered[filtered["lineup"]=="Vision Thing"]["Title"].count()*100).sort_values(ascending=False).head(20).round(1).astype(str) + '%')


# + id="E1pruidmu-BY" colab={"base_uri": "https://localhost:8080/"} outputId="fc717f67-8c8a-4f87-8839-e43ce7e812c2"
tsom["Year"].value_counts(normalize=True).mul(100).round(1).astype(str) + '%'

# + [markdown] id="LDrQ2zSKOVKO"
# # Artist
#
# The median Sisters covers per artist is 1. Most people are happy doing one Sisters cover and then moving on with their lives. The mean is 1.2 but that is propped up by some outliers at the top.
#
# 81 artists covered 2 or more songs. **<NAME>** (20) is the most prolific. **nmacog** (15) and **botchandango** (10) are the others in double digits. Look these guys up on Soundcloud and YouTube.
#
# This data doesn't represent the tribute bands very well because of the limited vids of them that exist on YouTube.
#
#

# + colab={"base_uri": "https://localhost:8080/"} id="AWDgy8MuOgdQ" outputId="49c70a4a-2d93-4332-a334-cf6e70bcae99"
tsom["Artist"].value_counts().describe()

# + colab={"base_uri": "https://localhost:8080/"} id="GxsqeF-dFXsi" outputId="e1a3984f-1c74-43b0-becf-15bddb2e89ed"
print(tsom["Artist"].value_counts()[lambda x : x>=2].count())
tsom["Artist"].value_counts().head(10)


# + [markdown] id="qD6o_qJVRwo8"
# # Year
#
# **2021** was the biggest year by far for Sisters covers (140), followed by **2019** (101) and **2020** (92). In general, the number of Sisters covers each year has grown almost every year that I have data for, with a noticeable spike in 2000 when that unspeakable tribute album came out. 
#
# Some of this is recency bias: more recent covers are easier to find and more likely to still be available on the platforms. But the pandemic effects of the last few years and the increasing ease of making, recording and publishing music online certainly have a role too.
#
#

# + colab={"base_uri": "https://localhost:8080/"} id="VduZwvZMzjzZ" outputId="4bab494c-26a6-43aa-cd52-b627b80bb456"
tsom.groupby("Year")["Year"].count()

# + [markdown] id="OmytVmohe0gh"
# # Platform
#
# **Spotify** has the least covers (71). These are mostly established professional artists  with record company deals. **Bandcamp** (80) has only slightly more. I suppose these artists are also professional but less established and/or successful.
#
# **SoundCloud** (395) has lots of covers. Most are solidly in the realm of amateur (disclosure: my own included), or at least "musician isn't my only job" artists. 
#
# **YouTube** (619) has the most covers. This is basically the full gamut from pros who are also on Spotify, to less established bands, to talented amateurs, to your uncle Bob and his dog covering Something Fast.
#
# There was less overlap that I expected. 84% of covers were on one platform only and 13% were on two platforms. I found only *3* total covers on all four platforms - shout out to the marketing teams for Cradle Of Filth, The Court Of Sybaris and Sleepmask.
#
# Rehashing the diversity index (heh) suggests the **Bandcamp** hosts the least diversity of covers, which is disappointing. For whatever reason, the covers there are largely straight derivatives of the original material. **Spotify** is little better. I expected **SoundCloud** to top the diversity stakes but that honour is held by **YouTube**, even after applying my strict filtering criteria.

# + colab={"base_uri": "https://localhost:8080/"} id="nZUana7qgLoW" outputId="c443ee90-88c6-4536-da57-5301d09bfd8b"
tsom.filter(["spotify", "bandcamp", "soundcloud", "youtube"]).sum()

# + colab={"base_uri": "https://localhost:8080/"} id="J3VYmeF6kGU4" outputId="8157d1eb-42f0-4c44-8fcc-1db3c41f506f"
tsom["platforms"] = tsom["spotify"] + tsom["bandcamp"] + tsom["soundcloud"] + tsom["youtube"]

print(tsom.groupby("platforms")["Title"].count())

tsom.groupby("platforms")["Title"].count() / len(tsom) *100



# + colab={"base_uri": "https://localhost:8080/"} id="D_rpWMHHKSni" outputId="8bef9587-2317-4cf5-9b06-b3b8237f614e"
filtered = tsom[tsom["spotify"] == 1]
print(((filtered.groupby(["CoverType"])["CoverType"].count()/len(filtered)).pow(2).sum()) ** 0.5 ** -1 *100)
filtered = tsom[tsom["bandcamp"] == 1]
print(((filtered.groupby(["CoverType"])["CoverType"].count()/len(filtered)).pow(2).sum()) ** 0.5 ** -1 *100)
filtered = tsom[tsom["soundcloud"] == 1]
print(((filtered.groupby(["CoverType"])["CoverType"].count()/len(filtered)).pow(2).sum()) ** 0.5 ** -1 *100)
filtered = tsom[tsom["youtube"] == 1]
print(((filtered.groupby(["CoverType"])["CoverType"].count()/len(filtered)).pow(2).sum()) ** 0.5 ** -1 *100)

# + [markdown] id="q9mmemxSeawh"
# # Conclusion
#
# Other than concluding that I spent way too much time on this, I will leave further interpretation up to the reader. It would be interesting to compare Sisters covers to those from other bands, but it sure ain't gonna be me who collects that data.
#
# I will follow this up with a post listing some of my favourite covers discovered during this exercise.
#
# PM me if you want to get hold of the data set and the Jupyter notebook (I used Google Colab and Pandas).

StarcoderdataJupyterScriptsDedupFiltered