fixmint
CS

Čištění CSV exportu: problémy v pořadí kontroly

Autor: · · 5 min čtení

Nepořádný CSV export vyčistíte po vrstvách: nejdřív znaky, pak rozložení a nakonec význam jednotlivých sloupců. CSV je prostý text, takže většina potíží spočívá ve špatných znacích, navíc řádcích nebo oddělovačích a v hodnotách, které program čte jinak, než jak je vnímáte vy. Opravte nejdřív znaky. Skrytá mezera může zabránit tomu, aby se datum načetlo jako datum, a pozdější opravy pak selhávají bez jasného důvodu.

Čištění CSVCSV plné prázdných řádků a kopiíVyzkoušet zdarma

Znaky, které vypadají správně, ale správné nejsou

Nadbytečné mezery. Mezera na začátku nebo na konci buňky a dvě mezery uprostřed hodnoty způsobí, že pro vyhledávání, filtr nebo spojení jsou „Berlin “ a „Berlin“ dvěma různými hodnotami.

Neviditelné znaky. Některé znaky na obrazovce nezaberou žádné místo:

  • Nezalomitelná mezera (U+00A0) vypadá jako běžná mezera, ale je to jiný znak. Webové stránky ji používají, aby drželi slova pohromadě.
  • Nulová šířka mezery (U+200B) nemá žádnou šířku.
  • Značka pořadí bajtů (U+FEFF) může být na úplném začátku souboru před prvním záhlavím. Sloupec pak vypadá jako „id“, ale ve skutečnosti je to „id“, takže vyhledávání „id“ selže.

Odstranit skryté znaky ukáže, co najde, dřív než cokoli změní.

Rozbitá písmena. „é“ místo očekávaného „é“ je problém s kódováním, takzvaný mojibake. Soubor byl uložen jako UTF-8, kde é zabere dva bajty, a pak byl přečten jako Windows-1252, kde se z těchto dvou bajtů stanou dvě nesouvisející písmena. Stejně se apostrof „’“ změní na „’“. Oprava spočívá v tom, že soubor přečtete jako UTF-8, nebo že z původního zdroje exportujete znovu s výběrem UTF-8. Opravovat text, který už byl uložen špatně, je křehké, proto si původní soubor ponechte a pracujte na kopii.

Rozložení: názvové řádky, prázdné řádky a duplicity

Přehledy často začínají názvem, datem a prázdným řádkem nad skutečným záhlavím. Odstraňte vše nad řádkem se záhlavím, aby první řádek obsahoval názvy sloupců. Každý sloupec potřebuje jeden název a žádný název nesmí být prázdný.

Každý řádek by měl mít stejný počet polí. Čárka uvnitř hodnoty, která není v uvozovkách, přidá pole a každá hodnota za ní se posune o sloupec doprava. Spočítejte pole na každém řádku. Řádek s jiným počtem je rozbitý.

Duplicity jsou dvojího druhu. Řádky, které se shodují ve všech sloupcích, obvykle vzniknou tím, že jste export nebo vložení provedli dvakrát, a lze je bez obav odstranit. Řádky, které sdílejí klíč, ale liší se jinde, mohou být aktualizacemi. Smazání nesprávného může odstranit nejnovější verzi, proto je nejdřív zkontrolujte.

Data: 03/04/2026 může znamenat dva různé dny

03/04/2026 je 3. dubna v jedné zemi a 4. března v jiné, text neříká, která varianta platí. Podívejte se na ostatní data ve stejném sloupci. Pokud je některé první číslo vyšší než 12, má sloupec den na prvním místě. Pokud je některé druhé číslo vyšší než 12, má měsíc na prvním místě. Pokud mají všechny hodnoty obě čísla 12 nebo menší, soubor to neurčí a musíte se zeptat zdrojového systému. Kontrola datových typů takový sloupec označí jako nejednoznačný, místo aby hádala.

Jakmile pořadí znáte, převeďte každé datum do ISO 8601, tedy tvaru rok-měsíc-den, například 2026-04-03. Je jednoznačný a jako text se správně řadí. Převádějte smíšené formáty jeden po druhém, protože většina programů načte sloupec s oběma styly nekonzistentně.

Čísla uložená jako text

Číslo je uloženo jako text, když obsahuje znak měny, znak procenta nebo mezeru, například „€ 12“, „45%“ nebo „1 234“ s nezalomitelnou mezerou. Oddělovače tisíců, jako v „1,234.50“, často způsobí, že je hodnota načtena také jako text. Tabulkový procesor zobrazuje čísla v textu zarovnaná doleva a součty je přeskakují.

Desetinná čárka je past. V „1.234,50“ je čárka desetinná a tečka odděluje tisíce. V „1,234.50“ je to naopak. Takže „1,234“ může být v jednom exportu 1234 a v jiném 1,234. Před převodem zjistěte nastavení jazyka a formátu zdroje, potom odstraňte oddělovače tisíců a desetinnou čárku proměňte v tečku.

Ztracené úvodní nuly

PSČ, kódy produktů a čísla účtů často začínají nulami. Když se CSV otevře v tabulkovém procesoru, „01234“ se načte jako číslo 1234 a nuly zmizí. Uložení souboru ztrátu zachová, takže jediná spolehlivá kopie je zdrojový systém.

Identifikátor je text, i když vypadá jako číslo, protože s ním nikdy nepočítáte. U takových sloupců vypněte při čištění CSV převod na čísla a soubor otevřete znovu ze zdroje, ne z kopie, kterou už uložil tabulkový procesor. Poté zkontrolujte datový typ každého sloupce, aby se sloupec s PSČ tiše nepřepnul zpět na čísla. Excel může hodnoty změnit i při otevření CSV, proto výsledek zkontrolujte v zobrazení prostého textu.

Zkontrolujte typy, pak profilujte

Po čištění zkontrolujte typ každého sloupce. Jediné „N/A“ ve sloupci cen změní celý sloupec na text a jeho součet pak vyjde špatně. Kontrola datových typů přiřadí každému sloupci typ a míru jistoty a vypíše buňky, které se do něj nehodí.

Pak profilujte sloupce. Profilování sloupců CSV ukáže v každém sloupci mezery a odlehlé hodnoty. Odlehlá hodnota může být skutečná, nebo chyba, například cena tisíckrát větší než ostatní, což často pochází z posunuté desetinné tečky nebo špatného oddělovače.

Okrajové případy

  • Zalomení řádků uvnitř uvozovek. Uvozovaná hodnota může obsahovat zalomení řádku. Nástroj, který soubor dělí podle řádků, ten řádek rozdělí na dva, proto použijte čtečku, která rozumí uvozovaným polím.
  • Soubory se středníky. Mnoho evropských tabulkových procesorů ukládá CSV se středníky, protože jejich nastavení jazyka používá čárku jako desetinný oddělovač. Před čtením sloupců zkontrolujte oddělovač.
  • Původní soubor si ponechte. Vyčištěný výsledek zapište do nového souboru a export ponechte tak, jak přišel.

Pořadí jako kontrolní seznam

  1. Uschovejte kopii původního exportu.
  2. Odstraňte nadbytečné mezery a neviditelné znaky. Pokud můžete, opravte rozbitá písmena už u zdroje.
  3. Smažte názvové řádky, zkontrolujte názvy záhlaví a ověřte, že každý řádek má stejný počet polí.
  4. Najděte duplicity a rozhodněte, kterou verzi ponechat.
  5. Převeďte data na rok-měsíc-den, odstraňte oddělovače a identifikátory nechte jako text.
  6. Zkontrolujte typ každého sloupce a poté jej profilujte kvůli mezerám a odlehlým hodnotám.

Stručné odpovědi

Proč mé vyhledávání selže, když hodnoty vypadají stejně?

Obvykle je v jedné z buněk mezera, nezalomitelná mezera nebo značka pořadí bajtů. Odstraňte skryté znaky a zkuste to znovu.

Proč se mé datumy změní na něco jiného?

Program načetl datum s dnem a měsícem v jiném pořadí, než bylo zamýšleno, nebo převedl text do svého vlastního formátu data. Převeďte data nejdřív sami na rok-měsíc-den.

Přeloženo z Anglický originál s pomocí AI.

Komentáře

    Zatím žádné komentáře. Buďte první.

    Vaše hodnocení (nepovinné)

    Váš e-mail se nikde nezobrazuje ani neukládá.

    Obálka knihy Open Data for AGI - Why Public, Free, and Open Datasets MatterOpen Data for AGI - Why Public, Free, and Open Datasets Matter

    Proč budou veřejné, volně dostupné a otevřené datové sady formovat obecnou umělou inteligenci stejně výrazně jako algoritmy a výpočetní výkon.

    $4.99Koupit na GumroaduAnglicky