"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como o Pandas lida com objetos JSON aninhados?

Como o Pandas lida com objetos JSON aninhados?

Publicado em 2024-11-07
Navegar:777

How Do Pandas Handle Nested JSON Objects?

Como lidar com objetos JSON aninhados com Pandas

Neste artigo, exploraremos como manipular efetivamente estruturas de dados JSON com objetos aninhados usando pandas.

Estrutura JSON aninhada

Considere a seguinte estrutura 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": ""
        }
    ]
}

Achatar com json_normalize

a função json_normalize do pandas nos permite achatar objetos aninhados em um 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_')

Isso resulta em um DataFrame com colunas para cada chave no objeto "locations" aninhado.

Concatenação agrupada sem nivelamento

Se nivelamento não for desejar, você pode usar os recursos de agrupamento e concatenação do 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()

Esta abordagem concatena os "locais "valores como uma string separada por vírgula para cada combinação exclusiva de "data", "nome" e "número".

Conclusão

Ao utilizar pandas' json_normalize e recursos de agrupamento/concatenação, podemos lidar efetivamente com estruturas JSON aninhadas, permitindo-nos extrair e manipular dados em um formato tabular.

Declaração de lançamento Este artigo foi reimpresso em: 1729739820 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3