串接資料框
在這個練習中,你將練習把多筆紀錄串接起來,建立一個依 Yelp 評分排序、紐約市前 100 名咖啡館的資料集。
API 通常會限制回傳的資料量,因為傳送大型資料集會耗時且耗費資源。Yelp 的 Business Search API 每次呼叫最多回傳 50 筆結果。不過,offset 參數可讓使用者從指定數量之後開始擷取結果。透過調整 offset,我們可以在一次呼叫中取得第 1–50 筆,另一次呼叫取得第 51–100 筆。接著,我們可以把這些資料框接續起來。
已匯入 pandas(縮寫為 pd)、requests,以及 json_normalize()。前 50 名評分最高的咖啡館已放在資料框 top_50_cafes 中。
本練習屬於課程
使用 pandas 的精實資料導入
練習說明
- 在
params中加入"offset"參數,讓 Yelp API 呼叫能取得第 51–100 間的咖啡館。 - 將 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
____