import pandas as pd
import numpy as np
import json
1. Carregamento e Normalização
with open('cursos_cadastrados.json', 'r', encoding='utf-8') as f:
dados = json.load(f)
Normalizamos os dados para que o dicionário 'instrutor' vire colunas separadas
df = pd.json_normalize(dados)
2. Remoção de Duplicatas
Note que o curso "Introdução à programação" aparece duas vezes identicamente
df = df.drop_duplicates()
3. Tratamento de Strings Vazias e Valores Nulos
Primeiro, convertemos strings vazias "" em NaN para o Pandas reconhecê-las como nulas
df = df.replace('', np.nan)
Removemos as amostras com valores nulos (como o curso "Excel" que está quase todo vazio)
df = df.dropna()
4. Conversão de Tipos
Preço: converter de string para float
df['preco'] = pd.to_numeric(df['preco'])
Concluintes: converter para int (após a limpeza, os dados restantes permitem isso)
df['concluintes'] = df['concluintes'].astype(int)
Datas: converter para datetime
df['data_inicio'] = pd.to_datetime(df['data_inicio'])
df['data_conclusao'] = pd.to_datetime(df['data_conclusao'])
print("Base de dados limpa e tipada:")
display(df)
print(df.info())