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

Pandas - 04 Convirtiendo datos numericos

El Archivo "datos_hosting.json" en sus columnas 'cantidad_baños','cantidad_cuartos','cantidad_camas' son listas por lo que la conversión a datos int64. No es posible en la manera que enseña el profesor.

Arroja error

1 respuesta

¡Hola John!

Entiendo que estás teniendo problemas al intentar convertir las columnas 'cantidad_baños', 'cantidad_cuartos' y 'cantidad_camas' de tu archivo "datos_hosting.json" a datos numéricos de tipo int64, debido a que estas columnas contienen listas.

Para solucionar este problema, primero necesitas asegurarte de que cada celda de estas columnas contenga un solo valor numérico en lugar de una lista. Aquí te dejo un ejemplo de cómo podrías hacerlo:

  1. Primero, carga tus datos desde el archivo JSON:
import pandas as pd

# Cargar datos desde el archivo JSON
df = pd.read_json("datos_hosting.json")
  1. Luego, verifica el contenido de las columnas para asegurarte de que son listas:
print(df['cantidad_baños'].head())
  1. Si las columnas contienen listas, puedes extraer el primer elemento de cada lista (suponiendo que es el valor que necesitas) usando una función lambda:
df['cantidad_baños'] = df['cantidad_baños'].apply(lambda x: x[0] if isinstance(x, list) else x)
df['cantidad_cuartos'] = df['cantidad_cuartos'].apply(lambda x: x[0] if isinstance(x, list) else x)
df['cantidad_camas'] = df['cantidad_camas'].apply(lambda x: x[0] if isinstance(x, list) else x)
  1. Finalmente, convierte las columnas al tipo int64:
df['cantidad_baños'] = df['cantidad_baños'].astype('int64')
df['cantidad_cuartos'] = df['cantidad_cuartos'].astype('int64')
df['cantidad_camas'] = df['cantidad_camas'].astype('int64')

Este enfoque asume que cada lista tiene al menos un elemento y que el primer elemento es el que deseas convertir. Si tus listas son más complejas o necesitas un valor diferente, deberás ajustar la lógica de extracción.

Espero haber aclarado tu duda. ¡Espero que esto te ayude y buenos estudios!