0
respostas

[Projeto] 08 Desafio: tratando uma base de dados

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())