Spotify Dataset Analyse

We werken met een dataset genaamd spotify.csv, die informatie bevat over de meest gestreamde Spotify-songs van 2010 tot 2023. Het bestand is gedownload van Kaggle en bevat 10.440 records.

Hieronder de eerste regels van het bestand "spotify.csv".

schermafdruk csv
spotify.csv
Eerste lijnen in het bestand.

Beschrijving van de data

Databestand

Het bestand is beschikbaar in het working directory van Dodona. Om te debuggen in PyCharm of in een Jupyter Notebook) zal je het bestand moeten downloaden en bewaren in dezelfde map als je .py of .ipynb bestand.

Je kan het bestand hier downloaden:

Opgave

1. Functie get_title

Schrijf een functie get_title met de twee parameters:

De functie extraheert de Title uit de Artist and Title en retourneert deze als string.

Let op, zowel in de naam van de artiest als in de titel van de song kunnen koppeltekens voorkomen.

Voorbeelden
>>> get_title("J. Cole - No Role Modelz", "J. Cole")
"No Role Modelz"

>>> get_title("lusttqwe - F-ck Up Some Commas", "lusttqwe")
"F-ck Up Some Commas"

2. Functie get_data

Schrijf een functie get_data met de volgende parameters:

  • year (int): Het jaar waarvoor gegevens gezocht worden.
  • main_genre (str): Het hoofdgenre van de songs.

De functie doet het volgende:

  • Leest het CSV-bestand in en filtert de gegevens:
    • Alleen songs van het opgegeven jaar en met het opgegeven hoofdgenre worden geselecteerd.
    • Alleen songs met een gemiddeld dagelijks aantal streams (Daily) groter dan 100.000 komen in aanmerking.
  • Voor elke song die aan deze criteria voldoet, wordt een tuple toegevoegd aan de outputlijst. De tuple bevat:
    • Title (str): Titel van het nummer, zonder de artiest.
    • Artist (str): Naam van de artiest.
    • Daily (int): Gemiddeld aantal dagelijkse streams.
    • first_genre (str): Het eerste subgenre.
  • De volgorde van de tuples is hetzelfde als in het bestand.
  • Als er geen songs aan de criteria voldoen, retourneert de functie een lege lijst.
Voorbeelden
>>> get_data(2014,'Metal')
[('The Devil in I', 'Slipknot', 173837, 'alternative metal'), ('Custer', 'Slipknot', 197139, 'alternative metal')]

>>> get_data(2015,'Classical/Orchestral')
[]

      

3. Functie most_popular

Schrijf een functie most_popular met dezelfde parameters als get_data. Het doel is om de populairste song van dat jaar en genre te vinden, gebaseerd op het hoogste gemiddelde aantal dagelijkse streams (Daily).

De functie doet het volgende:

  • Haalt de relevante gegevens op uit het databestand.
  • Selecteert de song met het hoogste aantal dagelijkse streams (Daily) uit de lijst.
  • Retourneert een dictionary met de volgende gegevens van de populairste song:
    • Title: Titel van de song.
    • Artist: Naam van de artiest.
    • Main Genre: Het opgegeven hoofdgenre.
    • Sub Genre: Het eerste subgenre.
    • Year: Het jaar.
  • Als er geen enkele song is met meer dan 100.000 dagelijkse streams, retourneert de functie de string:
    "Geen enkele song had meer dan 100.000 dagelijkse streams."
Voorbeelden
>>> most_popular(2014,'Electronic/Dance')
{'Artist': 'Lost Frequencies', 'Title': 'Are You With Me', 'Sub Genre': 'belgian edm', 'Year': 2014, 'Main Genre': 'Electronic/Dance'}
>>> most_popular(2015,'Classical/Orchestral')
"Geen enkele song had meer dan 100.000 dagelijkse streams."