データフレームを連結する
この演習では、Yelpの評価に基づくニューヨーク市のカフェ上位100件のデータセットを作成しながら、レコードの連結を練習します。
APIは、大きなデータセットの送信に時間やリソースがかかるため、返すデータ量を制限することがよくあります。Yelp Business Search APIは、1回の呼び出しで返す結果を50件に制限しています。ただし、offsetパラメータを使うと、指定した件数以降から結果を取得できます。オフセットを変えることで、1回目の呼び出しで1〜50件、2回目で51〜100件を取得できます。最後に、これらのデータフレームを連結します。
pandas(pdとして)、requests、およびjson_normalize()はインポート済みです。評価上位50件のカフェは、すでにデータフレームtop_50_cafesに入っています。
この演習はコースの一部です
pandasで効率よくデータを取り込む
演習の手順
- Yelp APIの呼び出しで51〜100件目のカフェを取得できるように、
paramsに"offset"パラメータを追加します。 - API呼び出しの結果を
top_50_cafesに連結し、ignore_indexを設定して行番号を振り直します。 - 結果のデータフレーム
cafesのshapeを出力し、100件あることを確認します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Add an offset parameter to get cafes 51-100
params = {"term": "cafe",
"location": "NYC",
"sort_by": "rating",
"limit": 50,
____}
result = requests.get(api_url, headers=headers, params=params)
next_50_cafes = json_normalize(result.json()["businesses"])
# Concatenate the results, setting ignore_index to renumber rows
cafes = ____
# Print shape of cafes
____