fixmint
PL

Czyszczenie eksportu CSV: problemy do sprawdzenia po kolei

Autor: · · czas czytania: 5 min

Aby wyczyścić zabałaganiony eksport CSV, napraw go warstwami: najpierw znaki, potem układ, a na końcu znaczenie poszczególnych kolumn. CSV to zwykły tekst, więc większość problemów to złe znaki, nadmiarowe wiersze lub separatory albo wartości, które program odczytuje inaczej niż Ty. Zacznij od znaków. Ukryta spacja może sprawić, że data nie zostanie rozpoznana jako data, a późniejsze poprawki wtedy zawodzą bez wyraźnego powodu.

Czyszczenie CSVZbiór CSV z pustymi polami i kopiamiZrób to za darmo

Znaki, które wyglądają dobrze, a takie nie są

Przypadkowe spacje. Spacja na początku lub na końcu komórki albo dwie spacje w środku wartości sprawiają, że „Berlin ” i „Berlin” są dla wyszukiwania, filtra czy złączenia dwiema różnymi wartościami.

Niewidoczne znaki. Niektóre znaki nie zajmują miejsca na ekranie:

  • Twarda spacja (U+00A0) wygląda jak zwykła spacja, ale jest innym znakiem. Strony internetowe używają jej, żeby trzymać wyrazy razem.
  • Spacja o zerowej szerokości (U+200B) nie ma żadnej szerokości.
  • Znacznik kolejności bajtów (U+FEFF) może stać na samym początku pliku, przed pierwszym nagłówkiem. Kolumna wygląda jak „id”, ale naprawdę to „id”, więc wyszukiwanie „id” się nie udaje.

Usuwanie ukrytych znaków pokazuje, co znajduje, zanim cokolwiek zmieni.

Zepsute litery. „é” tam, gdzie oczekujesz „é”, to problem z kodowaniem zwany mojibake. Plik zapisano jako UTF-8, gdzie é zajmuje dwa bajty, a potem odczytano go jako Windows-1252, gdzie te dwa bajty stają się dwiema niepowiązanymi literami. Apostrof „’” w ten sam sposób zamienia się w „’”. Rozwiązaniem jest odczytanie pliku jako UTF-8 albo ponowny eksport ze źródła z wybranym UTF-8. Naprawianie tekstu, który został już źle zapisany, jest zawodne, więc zachowaj oryginał i pracuj na kopii.

Układ: wiersze tytułowe, puste linie i duplikaty

Raporty często zaczynają się od tytułu, daty i pustej linii nad właściwym nagłówkiem. Usuń wszystko powyżej wiersza nagłówka, tak aby pierwsza linia zawierała nazwy kolumn. Każda kolumna potrzebuje jednej nazwy, a żadna nazwa nie może być pusta.

Każdy wiersz powinien mieć tyle samo pól. Przecinek w wartości bez cudzysłowów dodaje pole, a każda następna wartość przesuwa się o jedną kolumnę w prawo. Policz pola w każdym wierszu. Wiersz z inną liczbą pól jest uszkodzony.

Duplikaty występują w dwóch rodzajach. Wiersze identyczne we wszystkich kolumnach zwykle biorą się z dwukrotnego eksportu lub wklejenia i można je bezpiecznie usunąć. Wiersze, które mają ten sam klucz, ale różnią się w innych miejscach, mogą być aktualizacjami. Usunięcie niewłaściwego może skasować najnowszą wersję, więc najpierw je sprawdź.

Daty: 03/04/2026 może oznaczać dwa różne dni

03/04/2026 to 3 kwietnia w jednym kraju i 4 marca w innym, a tekst nie mówi, który z tych dni jest prawidłowy. Spójrz na inne daty w tej samej kolumnie. Jeśli którakolwiek pierwsza liczba jest większa niż 12, kolumna ma dzień na początku. Jeśli którakolwiek druga liczba jest większa niż 12, ma miesiąc na początku. Jeśli każda wartość ma obie liczby 12 lub mniej, plik nie pozwoli tego ustalić i trzeba zapytać system źródłowy. Sprawdzanie typów danych oznacza taką kolumnę jako niejednoznaczną zamiast zgadywać.

Gdy znasz kolejność, zamień każdą datę na ISO 8601, czyli formę rok-miesiąc-dzień, np. 2026-04-03. Jest jednoznaczna i poprawnie sortuje się jako tekst. Zamieniaj mieszane formaty pojedynczo, bo kolumna z obiema postaciami będzie czytana przez większość programów niespójnie.

Liczby zapisane jako tekst

Liczba jest zapisana jako tekst, gdy zawiera znak waluty, znak procenta albo spację w środku, np. „€ 12”, „45%” lub „1 234” z twardą spacją. Separatory tysięcy, jak w „1,234.50”, często powodują, że program też czyta wartość jako tekst. Arkusz pokazuje liczby tekstowe wyrównane do lewej, a sumy je pomijają.

Przecinki dziesiętne to pułapka. W „1.234,50” przecinek jest separatorem dziesiętnym, a kropka grupuje tysiące. W „1,234.50” jest odwrotnie. Zatem „1,234” może być 1234 w jednym eksporcie, a 1.234 w innym. Ustal ustawienia regionalne źródła przed konwersją, potem usuń separatory tysięcy i zamień przecinek dziesiętny na kropkę.

Wiodące zera znikają

Kody pocztowe, kody produktów i numery kont często zaczynają się od zer. Gdy plik CSV otwiera się w arkuszu, „01234” zostaje odczytane jako liczba 1234 i zera znikają. Zapisanie pliku utrwala tę stratę, więc system źródłowy jest jedyną wiarygodną kopią.

Identyfikator jest tekstem, nawet gdy wygląda jak liczba, bo nigdy się na nim nie liczy. Wyłącz zamianę liczb dla takich kolumn, gdy czyścisz plik CSV, i otwórz plik ponownie ze źródła, a nie z kopii zapisanej przez arkusz. Potem sprawdź typ danych każdej kolumny, żeby kolumna kodów pocztowych po cichu nie wróciła do liczb. Excel może też zmieniać wartości przy otwieraniu CSV, więc sprawdź wynik w widoku zwykłego tekstu.

Sprawdź typy, potem profiluj

Po czyszczeniu sprawdź typ każdej kolumny. Jedno „N/A” w kolumnie cen zamienia całą kolumnę w tekst, a jej suma wychodzi błędna. Sprawdzanie typów danych przypisuje każdej kolumnie typ i wskaźnik pewności oraz wypisuje komórki, które do niego nie pasują.

Potem profiluj kolumny. Profiler kolumn CSV pokazuje braki i wartości odstające w każdej kolumnie. Wartość odstająca może być prawdziwa albo może być błędem, np. ceną tysiąc razy większą od reszty, co często wynika z przesuniętego przecinka lub separatora.

Przypadki szczególne

  • Podziały wierszy w cudzysłowie. Wartość w cudzysłowie może zawierać podział wiersza. Narzędzie dzielące plik po liniach rozbije taki wiersz na dwa, więc użyj czytnika, który rozumie pola w cudzysłowach.
  • Pliki z średnikami. Wiele europejskich arkuszy zapisuje CSV ze średnikami, bo w ich ustawieniach regionalnych przecinek jest separatorem dziesiętnym. Sprawdź separator, zanim odczytasz kolumny.
  • Zachowaj oryginał. Zapisz oczyszczony wynik do nowego pliku, a eksport zostaw w takiej postaci, w jakiej przyszedł.

Kolejność, jako lista kontrolna

  1. Zachowaj kopię oryginalnego eksportu.
  2. Usuń przypadkowe spacje i niewidoczne znaki. Jeśli to możliwe, napraw zepsute litery u źródła.
  3. Usuń wiersze tytułowe, sprawdź nazwy nagłówków i upewnij się, że każdy wiersz ma tyle samo pól.
  4. Znajdź duplikaty i zdecyduj, którą wersję zachować.
  5. Zamień daty na rok-miesiąc-dzień, usuń separatory i zapisz identyfikatory jako tekst.
  6. Sprawdź typ każdej kolumny, a potem profiluj ją pod kątem braków i wartości odstających.

Szybkie odpowiedzi

Dlaczego wyszukiwanie się nie udaje, skoro wartości wyglądają identycznie?

Zwykle w jednej z komórek siedzi spacja, twarda spacja albo znacznik kolejności bajtów. Usuń ukryte znaki i spróbuj ponownie.

Dlaczego moje daty zmieniają się na coś innego?

Program odczytał datę z dniem albo miesiącem na początku w złej kolejności albo zamienił tekst na własny format daty. Najpierw sam zamień daty na rok-miesiąc-dzień.

Przetłumaczone z Wersja angielska przy wsparciu AI.

Komentarze

    Brak komentarzy. Bądź pierwszy.

    Twoja ocena (opcjonalnie)

    Twój e-mail nigdy nie jest pokazywany ani zapisywany.

    Okładka: Open Data for AGI - Why Public, Free, and Open Datasets MatterOpen Data for AGI - Why Public, Free, and Open Datasets Matter

    Dlaczego publiczne, bezpłatne i otwarte zbiory danych ukształtują ogólną sztuczną inteligencję równie mocno jak algorytmy i moc obliczeniowa.

    $4.99Kup na GumroadPo angielsku