Olá Marcos! Tudo bem contigo?
Peço desculpas pela demora em dar um retorno.
Na verdade, o professor também faz o tratamento, mas de outra forma.
Se você observar na parte "6.2 Rotina de Scraping", vai perceber que dentro do for anuncio in anuncios
ele faz esse tratamento de uma forma mais direta.
Primeiro, ele salva os itens na lista "acessorios" e depois passa essa lista para a chave "items" do dicionário "card", por meio da linha card['items'] = acessorios
. Após isso, ele passa esse dicionário "card" para a lista "cards", estruturando assim uma lista de dicionários. Como os dados já estão estruturados em uma lista de dicionários, ao passarmos eles para o pd.DataFrame
eles já são organizados da mesma forma que foram colocados na lista.
De forma geral, se queremos que nossos dados permaneçam com uma mesma estrutura, ao passarmos eles para um DataFrame, basta colocarmos eles em uma lista antes de criarmos a tabela. E foi exatamente isso que o professor fez nesse segundo tratamento.
Se quiséssemos aplicar esse tipo de tratamento naquele dataset anterior, também funcionaria da mesma forma. Observe:
card = {'category': 'USADO',
'description': 'Ano 1993 - 55.286 km',
'items': [' 4 X 4',
' Câmera de estacionamento',
' Controle de tração',
' Sensor de estacionamento'],
'location': 'Belo Horizonte - MG',
'motor': 'Motor 1.8 16v',
'name': 'LAMBORGHINI AVENTADOR',
'value': 'R$ 338.000'}
dataset = pd.DataFrame([card])
dataset
Resultado:
| category | description | items | location | motor | name | value |
---|
0 | USADO | Ano 1993 - 55.286 km | [' 4 X 4', ' Câmera de estacionamento', ' Controle de tração', ' Sensor de estacionamento'] | Belo Horizonte - MG | Motor 1.8 16v | LAMBORGHINI AVENTADOR | R$ 338.000 |
Assim, fica ainda mais simples do que fazer daquela outra forma que foi apresentada durante a aula.
Apenas a nível de curiosidade, esse mesmo tratamento também é válido para dicionários de dicionários. Observe um exemplo:
card2 = {1 : {'tp': 26, 'fp': 112},
2 : {'tp': 26, 'fp': 91},
3 : {'tp': 23, 'fp': 74}}
dataset2 = pd.DataFrame([card2])
dataset2
Resultado:
| 1 | 2 | 3 |
---|
0 | {'tp': 26, 'fp': 112} | {'tp': 26, 'fp': 91} | {'tp': 23, 'fp': 74} |
Assim, ao passarmos os dados dentro de uma lista para um DataFrame, eles ficarão estruturados no DataFrame da mesma forma que encontram-se na lista.
Espero que tenha tirado sua dúvida.
Qualquer outra dúvida estou à disposição para ajudar. Bons estudos!