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"]| Ordem | Passo | Verbo |
|---|---|---|
| 1 | olhar | perfil() |
| 2 | tirar a linha repetida | sem_duplicadas(por) |
| 3 | converter os tipos | converter({…}) — o que falha vira void, contado no perfil |
| 4 | padronizar o texto | mapear com trim, lower, capitalize |
| 5 | decidir a ausência | preencher("media"), sem_nulos(), ou deixar |
| 6 | olhar o que sobrou fora da curva | fora_da_curva(col) — olhar, não apagar |