Pular para o conteúdo

Limpar dados

Perfil primeiro, depois ausência, tipos, duplicatas e valores fora da curva — nessa ordem.

Limpar sem olhar é adivinhar. O primeiro passo é o perfil: por coluna, o tipo inferido, quantos faltam, quantos distintos, mínimo e máximo. Ele diz onde está o problema antes de você mexer em qualquer coisa.

dataforge
adopt Arcane.Quadro as Q

bruto := Q.de_vaults([
    {"id": 1, "idade": "34", "cidade": "Recife"},
    {"id": 2, "idade": "", "cidade": "recife "},
    {"id": 2, "idade": "", "cidade": "recife "},
    {"id": 3, "idade": "trinta", "cidade": "Natal"},
    {"id": 4, "idade": "290", "cidade": "Natal"}])

out bruto.perfil().texto()

limpo := bruto
    .sem_duplicadas()
    .converter({"idade": "Integer"})                         // 'trinta' vira void
    .mapear("cidade", lambda c: (c ?? "").trim().capitalize())

assert limpo.altura() is 4
assert limpo.coluna("idade") is [34, void, void, 290]
assert limpo.coluna("cidade") is ["Recife", "Recife", "Natal", "Natal"]
OrdemPassoVerbo
1olharperfil()
2tirar a linha repetidasem_duplicadas(por)
3converter os tiposconverter({…}) — o que falha vira void, contado no perfil
4padronizar o textomapear com trim, lower, capitalize
5decidir a ausênciapreencher("media"), sem_nulos(), ou deixar
6olhar o que sobrou fora da curvafora_da_curva(col)olhar, não apagar