fixmint
SV

Rensa en rörig CSV-export: problemen att kontrollera, i ordning

Av · · 5 min läsning

För att rensa en rörig CSV-export åtgärdar du den i lager: först tecknen, sedan layouten och till sist vad varje kolumn betyder. En CSV är ren text, så de flesta problem beror på fel tecken, extra rader eller avgränsare, eller på värden som ett program läser annorlunda än du. Åtgärda tecknen först. Ett osynligt mellanslag kan göra att ett datum inte tolkas som datum, och då misslyckas de senare stegen utan tydlig anledning.

Rensa CSV-filCSV med tomma rader och dubbletterGör det gratis

Tecken som ser rätt ut men inte är det

Extra mellanslag. Ett mellanslag i början eller slutet av en cell, eller två mellanslag i mitten av ett värde, gör att ”Berlin ” och ”Berlin” blir två olika värden för en uppslagning, ett filter eller en join.

Osynliga tecken. Vissa tecken tar ingen plats på skärmen:

  • Ett hårt mellanslag (U+00A0) ser ut som ett vanligt mellanslag men är ett annat tecken. Webbsidor använder det för att hålla ihop ord.
  • Ett nollbreddsmellanslag (U+200B) har ingen bredd alls.
  • En byte order mark (U+FEFF) kan ligga helt först i filen, före rubriken. Kolumnen ser ut som ”id” men är egentligen ”id”, så en uppslagning efter ”id” misslyckas.

Ta bort osynliga tecken visar vad som hittas innan något ändras.

Trasiga bokstäver. ”é” där du väntar dig ”é” är ett kodningsproblem som kallas mojibake. Filen sparades som UTF-8, där é tar två byte, och lästes sedan som Windows-1252, där de två byten blir två helt olika bokstäver. Ett ”’”-apostrof blir på samma sätt ”’”. Lösningen är att läsa filen som UTF-8, eller att exportera den igen från källan med UTF-8 valt. Att reparera text som redan sparats fel är skört, så behåll originalet och arbeta med en kopia.

Layout: rubrikrader, tomma rader och dubbletter

Rapporter börjar ofta med en titel, ett datum och en tom rad ovanför den riktiga rubriken. Ta bort allt ovanför rubrikraden, så att första raden innehåller kolumnnamnen. Varje kolumn behöver ett namn, och inget namn ska vara tomt.

Varje rad bör ha samma antal fält. Ett felplacerat kommatecken i ett värde som inte står inom citattecken lägger till ett fält, och varje värde efter det flyttas en kolumn åt höger. Räkna fälten per rad. En rad med annat antal är trasig.

Dubbletter finns i två varianter. Rader som är identiska i varje kolumn kommer oftast från att man exporterat eller klistrat in två gånger, och de kan säkert tas bort. Rader som delar en nyckel men skiljer sig i övrigt kan vara uppdateringar. Om du tar bort fel rad kan du radera den senaste versionen, så kontrollera dem först.

Datum: 03/04/2026 kan vara två olika dagar

03/04/2026 är 3 april i ett land och 4 mars i ett annat, och texten säger inte vilket. Titta på de andra datumen i samma kolumn. Om något första tal är större än 12 är kolumnen dag först. Om något andra tal är större än 12 är den månad först. Om alla värden har båda talen på 12 eller mindre kan filen inte avgöra det, och då måste du fråga källsystemet. Datatypskontrollen flaggar en sådan kolumn som tvetydig i stället för att gissa.

När du vet ordningen konverterar du varje datum till ISO 8601, formen år-månad-dag som 2026-04-03. Den är entydig och sorteras rätt som text. Konvertera blandade format ett i taget, eftersom en kolumn med båda stilarna tolkas inkonsekvent av de flesta program.

Tal lagrade som text

Ett tal lagras som text när det har ett valutatecken, ett procenttecken eller ett mellanslag i sig, som ”€ 12”, ”45%” eller ”1 234” med ett hårt mellanslag. Tusentalsavskiljare, som i ”1,234.50”, får ofta ett program att läsa värdet som text också. Ett kalkylblad visar textsiffror vänsterjusterade, och summor hoppar över dem.

Decimaltecken är fällan. I ”1.234,50” är kommatecknet decimalpunkten och punkten grupperar tusental. I ”1,234.50” är det tvärtom. Så ”1,234” kan vara 1234 i en export och 1,234 i en annan. Ta reda på vilken lokal källan använder innan du konverterar, ta sedan bort tusentalsavskiljarna och gör decimalkommatecknet till en punkt.

Inledande nollor försvinner

Postnummer, produktkoder och kontonummer börjar ofta med nollor. När en CSV öppnas i ett kalkylblad läses ”01234” som talet 1234, och nollorna är borta. Om du sparar filen behålls förlusten, så källsystemet är den enda pålitliga kopian.

En identifierare är text, även när den ser ut som ett tal, eftersom du aldrig räknar med den. Stäng av talkonverteringen för sådana kolumner när du rensar CSV-filen, och öppna filen från källan igen i stället för från en kopia som ett kalkylblad har sparat. Kontrollera varje kolumns datatyp efteråt, så att en postnummerkolumn inte tyst växlar tillbaka till tal. Excel kan också ändra värden när det öppnar en CSV, så kontrollera resultatet i en ren textvy.

Kontrollera typerna och profilera sedan

Efter rensningen kontrollerar du typen för varje kolumn. Ett enda ”N/A” i en kolumn med priser gör hela kolumnen till text, och dess summa blir fel. Datatypskontrollen ger varje kolumn en typ och en träffsäkerhetspoäng och listar cellerna som inte passar.

Profilera sedan kolumnerna. CSV-kolumnprofilerare visar luckor och avvikare i varje kolumn. En avvikare kan vara ett riktigt värde, eller ett fel som ett pris som är tusen gånger större än de övriga, vilket ofta beror på ett felplacerat decimaltecken eller en felplacerad avgränsare.

Specialfall

  • Radbrytningar inom citattecken. Ett citerat värde kan innehålla en radbrytning. Ett verktyg som delar upp filen rad för rad bryter då raden i två, så använd en läsare som förstår citerade fält.
  • Semikolonfiler. Många europeiska kalkylprogram sparar CSV med semikolon, eftersom kommatecknet är decimaltecken i deras lokal. Kontrollera avgränsaren innan du läser kolumnerna.
  • Behåll originalet. Skriv det rensade resultatet till en ny fil, och behåll exporten som den var.

Ordningen, som checklista

  1. Spara en kopia av den ursprungliga exporten.
  2. Ta bort extra mellanslag och osynliga tecken. Åtgärda trasiga bokstäver vid källan om du kan.
  3. Ta bort titelraderna, kontrollera rubriknamnen och bekräfta att alla rader har samma antal fält.
  4. Hitta dubbletterna och bestäm vilken version som ska behållas.
  5. Konvertera datum till år-månad-dag, ta bort avgränsare och gör identifierare till text.
  6. Kontrollera typen för varje kolumn och profilera den sedan för luckor och avvikare.

Snabba svar

Varför misslyckas min uppslagning när värdena ser identiska ut?

Oftast finns ett mellanslag, ett hårt mellanslag eller en byte order mark i en av cellerna. Ta bort de osynliga tecknen och försök igen.

Varför ändras mina datum till något annat?

Ett program läste ett dag-först- eller månad-först-datum i fel ordning, eller konverterade texten till sitt eget datumformat. Konvertera datumen själv först, till år-månad-dag.

Översatt från Engelsk original med hjälp av AI.

Kommentarer

    Inga kommentarer än. Var först.

    Ditt betyg (valfritt)

    Din e-post visas eller sparas aldrig.

    Omslag till Open Data for AGI - Why Public, Free, and Open Datasets MatterOpen Data for AGI - Why Public, Free, and Open Datasets Matter

    Varför offentliga, fria och öppna datamängder kommer att forma generell artificiell intelligens lika mycket som algoritmer och beräkningskraft gör.

    $4.99Köp på GumroadPå engelska