ComenzarEmpieza gratis

Aplanar JSON anidados

Una característica de los datos JSON es que pueden estar anidados: el valor de un atributo puede estar compuesto por pares atributo–valor. Estos datos anidados resultan más útiles si se desempaquetan o se aplanan en sus propias columnas del dataframe. El submódulo pandas.io.json tiene una función, json_normalize(), que hace exactamente eso.

La respuesta de la API de Yelp está anidada. Tu tarea es aplanar el siguiente nivel de datos en las columnas coordinates y location.

Se han importado pandas (como pd) y requests. Los resultados de la llamada a la API están guardados en response.

Este ejercicio forma parte del curso

Ingesta de datos eficiente con pandas

Ver curso

Instrucciones del ejercicio

  • Carga la función json_normalize() del submódulo io.json de pandas.
  • Aísla los datos JSON de response y asígnalos a data.
  • Usa json_normalize() para aplanar y cargar los datos de businesses en un dataframe, cafes. Establece el argumento sep para que use guiones bajos (_), en lugar de puntos.
  • Muestra las primeras filas de data.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Load json_normalize()
____

# Isolate the JSON data from the API response
data = ____

# Flatten business data into a dataframe, replace separator
cafes = ____(data["businesses"],
             ____)

# View data
print(cafes.head())
Editar y ejecutar código