0
respostas

[Projeto] 09 Desafio: tratando os dados

import pandas as pd
import json
import numpy as np

1. Carregando o arquivo

with open('dados.json', 'r') as f:
dados = json.load(f)

2. Normalizando os dados

Usamos record_path para os telefones e meta para o restante

df = pd.json_normalize(
dados['pessoas'],
record_path=['telefones'],
meta=['nome', 'idade', ['endereco', 'rua'], ['endereco', 'numero'], ['endereco', 'cidade']]
)

Renomeando a coluna do telefone que fica com o nome '0' por padrão

df.rename(columns={0: 'telefone'}, inplace=True)

3. Tratando dados vazios

Identificamos a string vazia na rua da Maria e trocamos por NaN

df.replace('', np.nan, inplace=True)

Removendo linhas com qualquer dado nulo (no caso, a rua vazia da Maria)

df.dropna(inplace=True)

4. Ajustando a tipagem

A idade do João está como string "25", precisamos converter tudo para int

df['idade'] = df['idade'].astype(int)

print("DataFrame Tratado:")
display(df)
print(df.info())