Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Sobre o método explode

Saudações,

quando estava acompanhando a aula 02 - Retirando as listas, realizei o mesmo procedimento da instrutura. Entretando no meu código apresenta um erro que não consigo contornar, já recorrir a documentação pandas.DataFrame.explode: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.explode.html sem sucesso.

Segue o meu código:

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

Pelo o que entendi esse erro surge da não compatibilidade dos elementos das listas, ou seja, as listas explodidas devem ser do mesmo tamanho (mesma quantidade de elementos) ?

Tentei o codigo do IDLE Shell do Python e o mesmo erro acontece.

Como proceder?

1 resposta
solução!

O código que você forneceu está quase correto, mas você esqueceu de atribuir o resultado da operação explode de volta ao DataFrame dados. Além disso, a função explode funciona em uma coluna por vez, e você parece querer aplicá-la a várias colunas.

import pandas as pd

# Seu código para ler o JSON
dados = pd.read_json('/content/dados_hospedagem.json')
dados = pd.json_normalize(dados['info_moveis'])

# Extraindo as colunas e explodindo cada uma delas
colunas = list(dados.columns)
dados_expandido = dados.copy()

for coluna in colunas[3:]:
    dados_expandido = dados_expandido.explode(coluna)

dados_expandido.head()

Esta versão do código deve resolver o problema que você está enfrentando. O loop for percorre cada uma das colunas da terceira em diante e aplica a função explode a cada uma delas. Certifique-se de atribuir o resultado de volta ao DataFrame dados_expandido para manter as alterações.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software