Concaténer des dataframes
Dans cet exercice, vous allez vous exercer à concaténer des enregistrements en créant un jeu de données des 100 cafés les mieux notés à New York selon Yelp.
Les API limitent souvent la quantité de données renvoyées, car l'envoi de grands jeux de données peut être coûteux en temps et en ressources. L'API Yelp Business Search limite les résultats renvoyés par un appel à 50 enregistrements. Toutefois, le paramètre offset permet de récupérer des résultats à partir d'un nombre donné. En modifiant l'offset, on peut obtenir les résultats 1 à 50 dans un appel et 51 à 100 dans un autre. Ensuite, on peut ajouter les dataframes l'un à l'autre.
pandas (sous 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.
Cette activité fait partie du cours
Ingestion de données rationalisée avec pandas
Instructions de l’exercice
- Ajoutez un paramètre
"offset"àparamsafin 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 réglantignore_indexpour que les lignes soient renumérotées. - Affichez la dimension (shape) du dataframe résultant,
cafes, pour confirmer qu'il contient 100 enregistrements.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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
____