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)