Concaténer des DataFrames
Dans cet exercice, vous allez vous entraîner à concaténer des enregistrements en créant un jeu de données des 100 cafés les mieux notés de New York selon Yelp.
Les API limitent souvent la quantité de données renvoyées, car envoyer de grands jeux de données peut être coûteux en temps et en ressources. L’API Yelp Business Search limite les résultats d’un appel à 50 enregistrements. Cependant, le paramètre offset permet de récupérer des résultats en commençant après un certain nombre. En modifiant cet offset, nous pouvons obtenir les résultats 1 à 50 dans un appel et 51 à 100 dans un autre. Ensuite, nous pouvons concaténer les DataFrames.
pandas (alias pd), requests et json_normalize() ont été importés. Les 50 cafés les mieux notés sont déjà dans un DataFrame, top_50_cafes.
Cet exercice fait partie du cours
Ingestion de données simplifiée avec pandas
Instructions
- Ajoutez un paramètre
"offset"àparamspour que l’appel à l’API Yelp récupère les cafés 51 à 100. - Concaténez les résultats de l’appel d’API à
top_50_cafes, en définissantignore_indexpour que les lignes soient renumérotées. - Affichez la forme (shape) du DataFrame résultant,
cafes, pour confirmer qu’il y a 100 enregistrements.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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
____