fixmint
RO

Curăță un export CSV dezordonat: problemele de verificat, în ordine

De · · 5 min de citit

Pentru a curăța un export CSV dezordonat, repară-l pe straturi: întâi caracterele, apoi structura, apoi ce înseamnă fiecare coloană. Un CSV este text simplu, deci majoritatea problemelor sunt caractere greșite, rânduri sau separatoare în plus ori valori pe care un program le citește altfel decât tu. Repară întâi caracterele. Un spațiu ascuns poate împiedica citirea unei date ca dată, iar corecturile următoare eșuează fără un motiv clar.

Curățător CSVCSV plin de goluri și duplicateÎncearcă gratuit

Caractere care par corecte și nu sunt

Spații parazite. Un spațiu la începutul sau sfârșitul unei celule ori două spații în mijlocul unei valori face ca „Berlin ” și „Berlin” să fie, pentru o căutare, un filtru sau un join, două valori diferite.

Caractere invizibile. Unele caractere nu ocupă loc pe ecran:

  • Un spațiu fără întrerupere (U+00A0) arată ca un spațiu obișnuit, dar este alt caracter. Paginile web îl folosesc ca să țină cuvintele împreună.
  • Un spațiu de lățime zero (U+200B) nu are deloc lățime.
  • Un marcaj de ordine a octeților (U+FEFF) poate sta chiar la începutul fișierului, în fața primului antet. Coloana arată ca „id”, dar este de fapt „id”, deci o căutare după „id” eșuează.

Elimină caractere ascunse arată ce găsește înainte să schimbe ceva.

Litere stricate. „é” în locul lui „é” este o problemă de codificare numită mojibake. Fișierul a fost salvat în UTF-8, unde é ocupă doi octeți, apoi a fost citit ca Windows-1252, unde acei doi octeți devin două litere fără legătură. Un apostrof „’” ajunge „’” în același mod. Soluția este să citești fișierul ca UTF-8 sau să exporți din nou din sursă cu UTF-8 selectat. Repararea unui text deja salvat greșit este fragilă, deci păstrează originalul și lucrează pe o copie.

Structură: rânduri de titlu, linii goale și duplicate

Rapoartele încep adesea cu un titlu, o dată și o linie goală deasupra antetului real. Șterge tot ce este deasupra rândului de antet, astfel încât prima linie să conțină numele coloanelor. Fiecare coloană are nevoie de un singur nume, iar niciun nume nu trebuie să fie gol.

Fiecare rând ar trebui să aibă același număr de câmpuri. O virgulă rătăcită într-o valoare care nu este între ghilimele adaugă un câmp, iar fiecare valoare de după ea se mută o coloană mai la dreapta. Numără câmpurile pe rând. Un rând cu alt număr este defect.

Duplicatele sunt de două feluri. Rândurile identice în fiecare coloană vin de obicei dintr-un export sau o lipire făcută de două ori și pot fi șterse fără risc. Rândurile care au aceeași cheie, dar diferă în rest, pot fi actualizări. Ștergerea celei greșite poate elimina cea mai nouă versiune, deci verifică-le întâi.

Date: 03/04/2026 pot fi două zile diferite

03/04/2026 este 3 aprilie într-o țară și 4 martie în alta, iar textul nu spune care. Uită-te la celelalte date din aceeași coloană. Dacă vreun prim număr este peste 12, coloana are ziua pe primul loc. Dacă vreun al doilea număr este peste 12, are luna pe primul loc. Dacă fiecare valoare are ambele numere de 12 sau mai mici, fișierul nu îți poate spune, deci întreabă sistemul sursă. Verificator tipuri de date marchează o astfel de coloană ca ambiguă, în loc să ghicească.

Odată ce știi ordinea, convertește fiecare dată în ISO 8601, forma an-lună-zi, de exemplu 2026-04-03. Este lipsită de ambiguitate și se sortează corect ca text. Convertește formatele amestecate pe rând, deoarece o coloană cu ambele stiluri va fi citită inconsecvent de majoritatea programelor.

Numere salvate ca text

Un număr este salvat ca text atunci când are un semn monetar, un semn procentual sau un spațiu în interior, de exemplu „€ 12”, „45%” sau „1 234” cu un spațiu fără întrerupere. Separatoarele de mii, ca în „1,234.50”, fac adesea ca un program să citească valoarea tot ca text. O foaie de calcul aliniază numerele text la stânga, iar sumele le ignoră.

Virgulele zecimale sunt capcana. În „1.234,50” virgula este punctul zecimal, iar punctul grupează miile. În „1,234.50” este invers. Deci „1,234” poate fi 1234 într-un export și 1.234 într-altul. Află localizarea sursei înainte să convertești, apoi elimină separatoarele de mii și transformă virgula zecimală într-un punct.

Zerourile de început se pierd

Coduri poștale, coduri de produs și numere de cont încep adesea cu zerouri. Când un CSV se deschide într-o foaie de calcul, „01234” este citit ca numărul 1234, iar zerourile dispar. Salvarea fișierului păstrează pierderea, deci sistemul sursă este singura copie sigură.

Un identificator este text, chiar dacă arată ca un număr, pentru că nu faci niciodată calcule cu el. Lasă conversia numerelor dezactivată pentru astfel de coloane când curăță CSV-ul și deschide din nou fișierul din sursă, nu dintr-o copie salvată de o foaie de calcul. Verifică tipul de date al fiecărei coloane după aceea, ca o coloană cu coduri poștale să nu revină discret la numere. Excel poate modifica valorile și la deschiderea unui CSV, deci verifică rezultatul într-o vizualizare de text simplu.

Verifică tipurile, apoi profilează

După curățare, verifică tipul fiecărei coloane. Un singur „N/A” într-o coloană de prețuri transformă toată coloana în text, iar totalul ei iese greșit. Verificator tipuri de date îi dă fiecărei coloane un tip și un scor de încredere și listează celulele care nu se potrivesc.

Apoi profilează coloanele. Profilare coloane CSV arată lipsurile și valorile atipice din fiecare coloană. O valoare atipică poate fi o valoare reală sau o eroare, de exemplu un preț de o mie de ori mai mare decât restul, ceea ce vine adesea dintr-un punct zecimal sau separator pus greșit.

Cazuri limită

  • Linii noi între ghilimele. O valoare între ghilimele poate conține un rând nou. Un instrument care împarte fișierul pe linii sparge acel rând în două, deci folosește un cititor care înțelege câmpurile între ghilimele.
  • Fișiere cu punct și virgulă. Multe foi de calcul europene salvează CSV cu punct și virgulă, pentru că în localizarea lor virgula este separatorul zecimal. Verifică separatorul înainte să citești coloanele.
  • Păstrează originalul. Scrie rezultatul curățat într-un fișier nou și păstrează exportul așa cum a venit.

Ordinea, ca listă de verificare

  1. Păstrează o copie a exportului original.
  2. Șterge spațiile parazite și caracterele invizibile. Repară literele stricate din sursă, dacă poți.
  3. Șterge rândurile de titlu, verifică numele antetelor și confirmă că fiecare rând are același număr de câmpuri.
  4. Găsește duplicatele și decide ce versiune păstrezi.
  5. Convertește datele în an-lună-zi, elimină separatoarele și fă identificatorii text.
  6. Verifică tipul fiecărei coloane, apoi profilează-o pentru lipsuri și valori atipice.

Răspunsuri rapide

De ce eșuează căutarea mea când valorile arată identic?

De obicei, un spațiu, un spațiu fără întrerupere sau un marcaj de ordine a octeților se află într-una dintre celule. Elimină caracterele ascunse și încearcă din nou.

De ce se schimbă datele mele în altceva?

Un program a citit o dată cu ziua sau luna pe primul loc în ordinea greșită ori a convertit textul în propriul său format de dată. Convertește tu întâi datele, în an-lună-zi.

Tradus din Original în engleză cu ajutorul AI.

Comentarii

    Încă nu sunt comentarii. Fii primul.

    Evaluarea ta (opțional)

    E-mailul tău nu este afișat și nu este păstrat niciodată.

    Copertă pentru Open Data for AGI - Why Public, Free, and Open Datasets MatterOpen Data for AGI - Why Public, Free, and Open Datasets Matter

    De ce seturile de date publice, gratuite și deschise vor modela inteligența artificială generală la fel de mult ca algoritmii și puterea de calcul.

    $4.99Cumpără de pe GumroadÎn engleză