"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo manejan Pandas los objetos JSON anidados?

¿Cómo manejan Pandas los objetos JSON anidados?

Publicado el 2024-11-07
Navegar:830

How Do Pandas Handle Nested JSON Objects?

Cómo manejar objetos JSON anidados con Pandas

En este artículo, exploraremos cómo manipular eficazmente estructuras de datos JSON con objetos anidados usando pandas.

Estructura JSON anidada

Considere la siguiente estructura JSON:

{
    "number": "",
    "date": "01.10.2016",
    "name": "R 3932",
    "locations": [
        {
            "depTimeDiffMin": "0",
            "name": "Spital am Pyhrn Bahnhof",
            "arrTime": "",
            "depTime": "06:32",
            "platform": "2",
            "stationIdx": "0",
            "arrTimeDiffMin": "",
            "track": "R 3932"
        },
        {
            "depTimeDiffMin": "0",
            "name": "Windischgarsten Bahnhof",
            "arrTime": "06:37",
            "depTime": "06:40",
            "platform": "2",
            "stationIdx": "1",
            "arrTimeDiffMin": "1",
            "track": ""
        },
        {
            "depTimeDiffMin": "",
            "name": "Linz/Donau Hbf",
            "arrTime": "08:24",
            "depTime": "",
            "platform": "1A-B",
            "stationIdx": "22",
            "arrTimeDiffMin": "1",
            "track": ""
        }
    ]
}

Aplanar con json_normalize

La función json_normalize de pandas nos permite aplanar objetos anidados en un formato tabular:

import json

with open('myJson.json') as data_file:    
    data = json.load(data_file)  

df = pd.json_normalize(data, 'locations', ['date', 'number', 'name'], 
                    record_prefix='locations_')

Esto da como resultado un DataFrame con columnas para cada clave en el objeto "ubicaciones" anidado.

Concatenación agrupada sin aplanamiento

Si no se aplana Si lo desea, puede utilizar las capacidades de agrupación y concatenación de Pandas:

df = pd.read_json("myJson.json")
df.locations = pd.DataFrame(df.locations.values.tolist())['name']
df = df.groupby(['date', 'name', 'number'])['locations'].apply(','.join).reset_index()

Este enfoque concatena las "ubicaciones " valores como una cadena separada por comas para cada combinación única de "fecha", "nombre" y "número".

Conclusión

Al utilizar json_normalize y las funciones de agrupación/concatenación de pandas, podemos manejar eficazmente estructuras JSON anidadas, lo que nos permite extraer y manipular datos en formato tabular.

Declaración de liberación Este artículo se reimprime en: 1729739820 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3