最も人気のある楽曲
この Spotify データでもう一つ行うタスクは、利用可能なすべての年を通して最も人気のある楽曲トップ10を求めることです。必要なアルゴリズムは、各年ごとにトップ10の楽曲を算出し、それらを結合して「トップ10同士」から最終的なトップ10を求める、という手順です。
以下の関数は、DataFrame 内のトップ10の楽曲を見つけるもので、すでに用意され環境内で利用できます。
def top_10_most_popular(df):
return df.nlargest(n=10, columns='popularity')
dask と delayed() 関数はインポート済みです。pandas は pd としてインポートされています。ファイル名のリストは filenames、各ファイルの年は years というリストに格納され、いずれも環境内で利用できます。
この演習はコースの一部です
Pythonで学ぶDaskによる並列プログラミング
演習の手順
- 各ファイルについて、
top_10_most_popular()関数を使ってその年のトップ10の楽曲を求めてください。 - 各年のトップ10のリストを計算し、得られるタプルの最初の要素を取り出してください。
- 連結した DataFrame に対して
top_10_most_popular()関数を実行し、全体のトップ10の楽曲を求めてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
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)