es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Las características del conjunto de datos JSON no se están cargando correctamente?

Tengo este código:

import pandas as pd
import json

file = "/Users/mickelborg/Desktop/Dataset/2018/Carbon_Minoxide_(CO)_2018.json"

with open(file, 'r') as j:
    contents = json.loads(j.read())

oxide = pd.DataFrame.from_dict(contents, orient='index')

oxide

Estoy tratando de obtener una lectura del dataset JSON por características/columnas, pero parece que no se cargan correctamente.

Actualmente, este es el resultado que obtengo:
LINK

Como se puede ver en la imagen, los datos se cargan incorrectamente. “county_code” debería tener su propia fila en el dataset, junto con todas las demás características siguientes.

¿Qué estoy haciendo mal en este sentido?

¡Muchas gracias por tu ayuda!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Basándonos en el código proporcionado, parece que el problema podría estar relacionado con la forma en que se carga el archivo JSON en un DataFrame de pandas. El método pd.DataFrame.from_dict() utilizado para cargar el contenido JSON espera un diccionario donde cada clave representa el nombre de una columna y los valores asociados representan los datos de esa columna. Sin embargo, en este caso parece que los datos JSON no están en este formato esperado, lo que podría estar causando el problema.

    Para resolver este problema, sería útil examinar más de cerca los datos JSON y comprender su estructura. Según la imagen proporcionada, parece que los datos JSON están anidados, con cada “county_code” que contiene un diccionario de valores para cada característica. En este caso, una posible solución sería aplanar los datos JSON anidados antes de cargarlos en un DataFrame. Esto se puede lograr utilizando la función json_normalize() de la biblioteca pandas, que nos permite aplanar los datos JSON anidados en un formato tabular.

    Aquí tienes un ejemplo de cómo se puede hacer esto:

    import pandas as pd
    import json
    
    archivo = "/Users/mickelborg/Desktop/Dataset/2018/Carbon_Minoxide_(CO)_2018.json"
    
    with open(archivo, 'r') as j:
        contenido = json.loads(j.read())
    
    # aplanar los datos JSON utilizando json_normalize()
    datos = pd.json_normalize(contenido, record_path='county_code', meta=['date'])
    
    # establecer el índice en la columna de date
    datos.set_index('date', inplace=True)
    
    # mostrar el DataFrame resultante
    print(datos)
    

    En este código, primero cargamos los datos JSON del archivo utilizando json.loads(). Luego, utilizamos pd.json_normalize() para aplanar los datos JSON anidados en un formato tabular. Usamos record_path='county_code' para especificar que queremos extraer datos de la clave “county_code” en los datos JSON, y meta=['date'] para incluir la clave “date” en el DataFrame resultante como una columna separada. Finalmente, establecemos el índice del DataFrame en la columna “date” utilizando set_index(). Esto debería dar como resultado un DataFrame donde cada fila representa un condado y cada columna representa una característica, y la columna “date” sirve como índice.

    Intenta ejecutar este código con tu propio archivo JSON y verifica si produce la salida deseada. Si encuentras algún problema o tienes alguna pregunta adicional, ¡no dudes en preguntar!

Comments are closed.