Meest populaire nummers
Je hebt nog één taak met deze Spotify-gegevens: vind de 10 meest populaire nummers over alle beschikbare jaren. Het algoritme dat je hiervoor gebruikt, is: bepaal de top 10 nummers in elk jaar, combineer die lijsten en vind vervolgens de top 10 van deze top 10’s.
De volgende functie, die de top 10 nummers in een DataFrame vindt, is voor je beschikbaar in je omgeving.
def top_10_most_popular(df):
return df.nlargest(n=10, columns='popularity')
dask en de functie delayed() zijn voor je geïmporteerd. pandas is geïmporteerd als pd. De lijst met bestandsnamen is beschikbaar als filenames, en het jaar van elk bestand staat in de lijst years.
Deze oefening maakt deel uit van de cursus
Parallel programmeren met Dask in Python
Oefeninstructies
- Zoek voor elk bestand de top 10 nummers in dat jaar met de functie
top_10_most_popular(). - Bereken de lijst met top 10’s van elk jaar en selecteer het eerste element van de resulterende tuple.
- Voer de functie
top_10_most_popular()uit om de top 10 nummers te vinden over het samengevoegde DataFrame.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
top_songs = []
for file in filenames:
df = delayed(pd.read_csv)(file)
# Find the top 10 most popular songs in this file
df_top_10 = ____
top_songs.append(df_top_10)
# Compute the list of top 10s
top_songs_list = ____
# Concatenate them and find the best of the best
top_songs_df = pd.concat(top_songs_list)
df_all_time_top_10 = ____
print(df_all_time_top_10)