Łączenie ramek danych
W tym ćwiczeniu przećwiczysz łączenie rekordów – stworzysz zbiór danych 100 najwyżej ocenianych kawiarni w Nowym Jorku według serwisu Yelp.
API często ograniczają ilość zwracanych danych, ponieważ przesyłanie dużych zbiorów danych może być czasochłonne i zasobożerne. Yelp Business Search API zwraca maksymalnie 50 rekordów w jednym wywołaniu. Parametr offset pozwala jednak pobierać wyniki od wskazanego miejsca. Zmieniając wartość offsetu, możemy pobrać wyniki 1–50 w jednym wywołaniu, a 51–100 w kolejnym, a następnie połączyć obie ramki danych.
Biblioteka pandas (jako pd), requests oraz json_normalize() są już zaimportowane. 50 najwyżej ocenianych kawiarni znajduje się już w ramce danych top_50_cafes.
To ćwiczenie jest częścią kursu
Sprawne importowanie danych z pandas
Instrukcje do ćwiczenia
- Dodaj parametr
"offset"doparams, tak aby wywołanie Yelp API zwróciło kawiarnie 51–100. - Połącz wyniki wywołania API z ramką
top_50_cafes, ustawiającignore_indextak, aby wiersze zostały przenumerowane. - Wyświetl kształt wynikowej ramki danych
cafes, aby potwierdzić, że zawiera 100 rekordów.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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
____