1
resposta

Acessar JSON dentro de uma lista em diferentes linha do DataFrame

Na aula vimos que para percorrer um JSON dentro de uma lista usamos pd.json_normalize(data=dados_normal['listings'].iloc[0], sep='_'). Neste caso, os dados estaam todos em uma mesma célula. A dúvida é: se eu tiver uma dataframe com diversas linhas contendo um uma lista de json, como fazer para percorrer essas linhas, sem ter que percorrer linha por linha individualmente, e obter um novo dataframe? Segue uma imagem exemplificando a dúvida.

exemplo de lista de json )

1 resposta

Oi Caroline,

Suponha o seguinte conjunto de dados:

import pandas as pd

dados = [
    [
        {'nome': 'Caroline', 'idade': 25}, 
        {'nome': 'Ana', 'idade': 12}
    ],
    [ 
        {'nome': 'Ricardo', 'idade': 44}, 
        {'nome': 'Luiza', 'idade': 32}
    ],
    [ 
        {'nome': 'Daniel', 'idade': 27}, 
        {'nome': 'João', 'idade': 56}
    ]
]

dados = pd.Series(dados).to_frame(name='dados')
dados

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Utilizando o método explode podemos expandir o conteúdo das listas pelas linhas do DataFrame

dados = dados.explode(column='dados', ignore_index=True)
dados

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Aplicando o json_normalize no DataFrame acima temos o novo DataFrame

pd.json_normalize(data=dados['dados'])

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Espero ter ajudado