Fredit Flow
Workflows

Geautomatiseerd data opschonen, één gecontroleerde stap tegelijk

03
Het scenario

Een rommelige export, een script en een nieuw bestand

Geautomatiseerd data opschonen betekent hier een Python-script dat je opgeschreven regels op een bestand toepast en het resultaat als nieuw bestand bewaart. Je hebt een export met losse spaties, herhaalde rijen en getallen als tekst. Het script houd je zelf. Je kunt het lezen en opnieuw draaien, en het origineel is nooit de uitvoer.

01

Open de projectmap

Kies de map met je eigen export en een kopie ervan. De bestandstools werken binnen die chatmap.

02

Beschrijf de regels

Zeg welke kolommen je bijsnijdt, welke sleutel duplicaten vindt en wat er met lege plekken gebeurt. Plan only somt de stappen eerst op.

03

Draai op een kopie

Shell draait het script met je Python-opdracht en toont de echte exitcode en de afgedrukte rijaantallen.

04

Bekijk het resultaat

Lees de diff, vergelijk het nieuwe bestand met het origineel en controleer rijen met de hand voordat je accepteert.

Een script dat klein genoeg is om in een minuut te lezen

clean_customers.py
rows = [
    {"email": " Ann@Mail.com ", "age": "34"},
    {"email": "ann@mail.com", "age": "34"},
    {"email": "Bo@Mail.com", "age": "n/a"},
]
seen, clean = set(), []
for row in rows:
    email = row["email"].strip().lower()
    if email in seen:
        continue
    seen.add(email)
    try:
        age = int(row["age"].strip())
    except ValueError:
        age = None
    clean.append({"email": email, "age": age})
print("rows in:", len(rows), "rows out:", len(clean))

Het haalt spaties weg, zet het e-mailadres in kleine letters, slaat herhalingen over met een set en maakt van de leeftijdstekst een getal of None. Het bevat 3 verzonnen rijen. Bij het draaien drukt het 3 erin, 2 eruit af.

Twee projecten om data op te schonen, stap voor stap

Verwijder duplicaten uit een grote CSV

Om duplicaten uit een grote CSV te verwijderen heb je eerst een duidelijke sleutel nodig, bijvoorbeeld een genormaliseerd e-mailadres, omdat exacte duplicaten rijen missen die alleen in spaties of hoofdletters verschillen. Fredit Flow gebruikt grep om in de sleutelkolom te zoeken naar losse spaties en hoofdletters, daarna slaat write_file dedupe.py op en draait Shell het op een kopie van de export met je eigen Python-opdracht. Het script houdt de eerste rij per sleutel en schrijft de rest naar een apart bestand. Het origineel blijft. Controleer de 2 afgedrukte rijaantallen, open het controlebestand en bevestig dat elk paar echt dezelfde klant is voordat je de uitvoer accepteert.

Draai het script opnieuw na een tweede blik

CSV-data opschonen is zelden in één ronde klaar, en de herhalingen tussen opschonen en analyseren zijn normaal: een grafiek toont een vreemde waarde, je voegt een regel toe en draait opnieuw. Vraag om de wijziging. edit_file past het script aan en toont de diff, Shell draait het opnieuw op dezelfde kopie, en de nieuwe run moet naar een anders genoemd uitvoerbestand schrijven zodat het eerste bewaard blijft, wat je in de diff kunt nagaan. Draai het daarna eenmaal op een tweede voorbeeldbestand van dezelfde bron. Als de exitcode of een rijaantal er verkeerd uitziet, stop je, lees je de diff opnieuw en beslis je zelf.

Fredit Flow voor Windows

Begin met één klein bestand dat van jou is

Fredit Flow downloaden ↗