Как почистить CSV-файл: что проверять и в каком порядке
Чтобы почистить неаккуратный экспорт CSV, исправляйте его по слоям: сначала символы, затем структура, затем смысл каждого столбца. CSV — это обычный текст, поэтому большинство проблем связано с неверными символами, лишними строками или разделителями, а также со значениями, которые программа читает иначе, чем вы. Сначала исправьте символы. Скрытый пробел может помешать распознаванию даты, и последующие исправления тогда не работают без видимой причины.
Очистка CSV и ExcelCSV с пустыми строками и дублямиСделать бесплатноСимволы, которые выглядят правильно, а таковыми не являются
Лишние пробелы. Пробел в начале или в конце ячейки либо два пробела внутри значения делают «Берлин » и «Берлин» для поиска, фильтра или объединения двумя разными значениями.
Невидимые символы. Некоторые символы не занимают места на экране:
- Неразрывный пробел (U+00A0) выглядит как обычный пробел, но это другой символ. Веб-страницы используют его, чтобы не разрывать слова.
- Пробел нулевой ширины (U+200B) вообще не имеет ширины.
- Метка порядка байтов (U+FEFF) может стоять в самом начале файла, перед первой строкой заголовков. Столбец выглядит как «id», но на деле это «id», поэтому поиск по «id» не находит его.
Удаление невидимых символов показывает, что находит, прежде чем что-либо менять.
Искажённые буквы. «Ã©» вместо «é» — это проблема кодировки, которую называют кракозябрами (mojibake). Файл сохранили в UTF-8, где é занимает два байта, а затем прочитали как Windows-1252, где эти два байта превращаются в две никак не связанные буквы. Апостроф «’» так же превращается в «â€™». Исправить это можно, прочитав файл как UTF-8 или заново экспортировав данные из источника с выбранной кодировкой UTF-8. Исправлять уже неверно сохранённый текст ненадёжно, поэтому оставьте оригинал и работайте с копией.
Структура: служебные строки, пустые строки и дубликаты
Отчёты часто начинаются с названия, даты и пустой строки над настоящей шапкой. Удалите всё над строкой заголовков, чтобы первая строка содержала имена столбцов. У каждого столбца должно быть одно имя, и ни одно имя не должно быть пустым.
Каждая строка должна содержать одинаковое количество полей. Лишняя запятая внутри значения без кавычек добавляет поле, и все значения после неё сдвигаются на один столбец вправо. Посчитайте поля в каждой строке. Строка с другим количеством полей повреждена.
Дубликаты бывают двух видов. Строки, полностью совпадающие во всех столбцах, обычно появляются из-за двойного экспорта или вставки, и их безопасно удалить. Строки с одинаковым ключом, но разными остальными значениями, могут быть обновлениями. Удалив не ту, вы можете потерять самую свежую версию, поэтому сначала проверьте их.
Даты: 03/04/2026 может означать два разных дня
03/04/2026 — это 3 апреля в одной стране и 4 марта в другой, а текст не указывает, какой вариант верен. Посмотрите на другие даты в том же столбце. Если у какого-либо значения первое число больше 12, столбец записан с днём впереди. Если больше 12 второе число, то впереди месяц. Если во всех значениях оба числа не превышают 12, файл ответить не может, и стоит уточнить это в исходной системе. Проверка типов данных помечает такой столбец как неоднозначный, а не угадывает.
Когда порядок известен, переведите все даты в формат ISO 8601, то есть год-месяц-день, например 2026-04-03. Такой формат однозначен и правильно сортируется как текст. Смешанные форматы переводите по одному: большинство программ будут читать столбец с обоими стилями непоследовательно.
Числа, сохранённые как текст
Число хранится как текст, если в нём есть знак валюты, знак процента или пробел внутри, например «€ 12», «45%» или «1 234» с неразрывным пробелом. Разделители тысяч, как в «1,234.50», часто тоже заставляют программу читать значение как текст. Таблица показывает числа-текст выровненными по левому краю, а суммы их пропускают.
Ловушка — десятичные разделители. В «1.234,50» запятая — десятичный разделитель, а точка группирует тысячи. В «1,234.50» всё наоборот. Поэтому «1,234» может означать 1234 в одном экспорте и 1.234 в другом. Прежде чем конвертировать, узнайте локаль источника, затем уберите разделители тысяч и замените десятичную запятую на точку.
Ведущие нули потеряны
Почтовые индексы, артикулы и номера счетов часто начинаются с нулей. Когда CSV открывается в таблицах, «01234» читается как число 1234, и нули пропадают. Сохранение файла закрепляет потерю, поэтому исходная система — единственная надёжная копия.
Идентификатор — это текст, даже если выглядит как число, потому что с ним не проводят арифметических действий. Отключите преобразование в числа для таких столбцов при очистке CSV и открывайте файл заново из источника, а не из копии, сохранённой таблицами. Затем проверьте каждый столбец в Проверке типов данных, чтобы столбец с индексами незаметно не превратился обратно в числа. Excel тоже может менять значения при открытии CSV, поэтому проверяйте результат в виде обычного текста.
Проверьте типы, затем составьте профиль
После очистки проверьте тип каждого столбца. Одно значение «N/A» в столбце цен превращает весь столбец в текст, и итог по нему получится неверным. Проверка типов данных присваивает каждому столбцу тип и показатель уверенности и перечисляет ячейки, которые не подходят.
Затем составьте профиль столбцов. Профиль столбцов CSV показывает пропуски и выбросы в каждом столбце. Выброс может быть настоящим значением или ошибкой, например ценой, которая в тысячу раз больше остальных; такое часто возникает из-за неверно поставленной десятичной точки или разделителя.
Пограничные случаи
- Переносы строк внутри кавычек. Значение в кавычках может содержать перенос строки. Инструмент, который делит файл по строкам, разорвёт такую запись на две, поэтому используйте программу, которая понимает поля в кавычках.
- Файлы с точкой с запятой. Многие европейские таблицы сохраняют CSV с точкой с запятой, потому что в их локали запятая служит десятичным разделителем. Проверьте разделитель, прежде чем читать столбцы.
- Оставьте оригинал. Сохраняйте очищенный результат в новый файл, а экспорт храните таким, каким он пришёл.
Порядок действий в виде чек-листа
- Сохраните копию исходного экспорта.
- Уберите лишние пробелы и невидимые символы. По возможности исправьте искажённые буквы в источнике.
- Удалите служебные строки, проверьте имена столбцов и убедитесь, что в каждой строке одинаковое количество полей.
- Найдите дубликаты и решите, какую версию оставить.
- Переведите даты в формат год-месяц-день, уберите разделители и сделайте идентификаторы текстом.
- Проверьте тип каждого столбца, затем составьте его профиль на предмет пропусков и выбросов.
Быстрые ответы
Почему поиск не работает, если значения выглядят одинаково?
Обычно в одной из ячеек стоит пробел, неразрывный пробел или метка порядка байтов. Удалите скрытые символы и повторите попытку.
Почему даты меняются на другие?
Программа прочла дату с днём впереди или с месяцем впереди в неверном порядке либо преобразовала текст в собственный формат даты. Сначала сами переведите даты в формат год-месяц-день.
Переведено с помощью ИИ с Английский оригинал.
Комментарии
Комментариев пока нет. Будьте первым.


