始める無料で始める

最も人気のある楽曲

この Spotify データでもう一つ行うタスクは、利用可能なすべての年を通して最も人気のある楽曲トップ10を求めることです。必要なアルゴリズムは、各年ごとにトップ10の楽曲を算出し、それらを結合して「トップ10同士」から最終的なトップ10を求める、という手順です。

以下の関数は、DataFrame 内のトップ10の楽曲を見つけるもので、すでに用意され環境内で利用できます。

def top_10_most_popular(df):
  return df.nlargest(n=10, columns='popularity')

daskdelayed() 関数はインポート済みです。pandaspd としてインポートされています。ファイル名のリストは 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)
コードを編集して実行