Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Desafio

aquí la jugada es "desempaquetar" esa columna nutritions que está guardando diccionarios dentro de cada celda, para que cada nutriente sea su propia columna en el DataFrame.

import pandas as pd

Simulación de tu DataFrame

data = {
"genus": ["Malus", "Prunus", "Persea", "Musa", "Rubus", "Fragaria", "Prunus"],
"name": ["Apple", "Apricot", "Avocado", "Banana", "Blackberry", "Blueberry", "Cherry"],
"id": [6, 35, 84, 1, 64, 33, 9],
"family": ["Rosaceae", "Rosaceae", "Lauraceae", "Musaceae", "Rosaceae", "Rosaceae", "Rosaceae"],
"order": ["Rosales", "Rosales", "Laurales", "Zingiberales", "Rosales", "Rosales", "Rosales"],
"nutritions": [
{'carbohydrates': 11.4, 'protein': 0.3, 'fat': 0.4, 'calories': 52, 'sugar': 10.3},
{'carbohydrates': 3.9, 'protein': 0.5, 'fat': 0.1, 'calories': 15, 'sugar': 3.2},
{'carbohydrates': 8.53, 'protein': 2, 'fat': 14.66, 'calories': 160, 'sugar': 0.66},
{'carbohydrates': 22, 'protein': 1, 'fat': 0.2, 'calories': 96, 'sugar': 17.2},
{'carbohydrates': 9, 'protein': 1.3, 'fat': 0.4, 'calories': 40, 'sugar': 4.5},
{'carbohydrates': 5.5, 'protein': 0, 'fat': 0.4, 'calories': 29, 'sugar': 5.4},
{'carbohydrates': 12, 'protein': 1, 'fat': 0.3, 'calories': 50, 'sugar': 8}
]
}

df = pd.DataFrame(data)

Normalizar la columna nutritions

nutritions_df = pd.json_normalize(df['nutritions'])

Concatenar con el DataFrame original

df_normalizado = pd.concat([df.drop(columns=['nutritions']), nutritions_df], axis=1)

print(df_normalizado)

1 respuesta

Hola , espero que estés muy bien.

Felicitaciones por tu aprendizaje. Estamos priorizando el foro para postear dudas, así optimizamos el tiempo de respuesta para ustedes.

Para no dejar de compartir los códigos, actividades y ejercicios que realizas, creamos un canal en Discord (#compartetucodigo) donde puedes compartirlos, dar y sugerir mejoras con el resto de tus compañeros.

Un saludo.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios