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

[Duda] ¿Cómo puedo normalizar varias columnas simultáneamente método 'normalize'?

Buenas tardes y mil gracias de manera anticipada por atender mi duda.

¿Cómo puedo normalizar varias columnas simultáneamente para quitar diccionarios, listas o tuplas anidadas?

En el aula utilizamos este código, pero sirve solamente para una columna: df_normalizado = pd.json_normalize(datos_pacientes_2['Pacientes'])

De nuevo mil gracias y quedo muy atento a sus comentarios

1 respuesta

Hola Jorge,

¡Buenas! Para normalizar varias columnas simultáneamente en un DataFrame de Pandas. Puedes hacerlo utilizando un bucle para aplicar pd.json_normalize() a cada columna que necesites. Aquí te dejo un ejemplo práctico de cómo podrías hacerlo:

import pandas as pd

# Supongamos que tienes un DataFrame con varias columnas que contienen datos anidados
datos_pacientes_2 = {
    'Pacientes': [{'nombre': 'Juan', 'edad': 30}, {'nombre': 'Ana', 'edad': 25}],
    'Consultas': [{'fecha': '2021-01-01', 'diagnóstico': 'gripe'}, {'fecha': '2021-02-01', 'diagnóstico': 'resfriado'}]
}

# Crear el DataFrame
df = pd.DataFrame(datos_pacientes_2)

# Normalizar cada columna que contiene datos anidados
columnas_a_normalizar = ['Pacientes', 'Consultas']
df_normalizado = pd.concat([pd.json_normalize(df[col]) for col in columnas_a_normalizar], axis=1)

print(df_normalizado)

En este ejemplo, columnas_a_normalizar es una lista de las columnas que deseas normalizar. El código utiliza una comprensión de lista para aplicar pd.json_normalize() a cada columna y luego concatena los resultados en un nuevo DataFrame.

Espero que este enfoque te sea útil. ¡Buenos estudios!