開始使用免費開始

串接資料框

在這個練習中,你將練習把多筆紀錄串接起來,建立一個依 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
____
編輯並執行程式碼