Este DataFrame tiene 6 columnas: genus (género), name (nombre), id, family (familia), order (orden) e nutritions (nutriciones). Observe que la columna nutritions tiene toda la información nutricional anidada en ella. Por tanto, es necesario normalizar los datos.
El desafío ahora es normalizar este DataFrame.
import requests
import json
datos_frutas = requests.get('https://fruityvice.com/api/fruit/all')
resultado = json.loads(datos_frutas.text)
# Normalizamos
df_frutas = pd.json_normalize(resultado)
Aquí surgió un problema, la clave 'nutritions' contiene un diccionario, no una lista de registros.
- Se normalizo el listado principal.
- Se normalizó la columna nutritions.
- Se combino el dataframe que se obtuvo de nutritions con el primer dataframe obtenido.
df_frutas = df_frutas.rename(columns=lambda column: column.replace('nutritions.', '') if 'nutritions.' in column else column)
display(df_frutas.head())