Плохая таблица часто выглядит вполне аккуратно: даты выровнены, названия похожи, пустых ячеек мало. Ошибки обнаруживаются при объединении файлов или построении отчёта. В одном месте записан город с пробелом, в другом дата прочитана в американском формате, а идентификатор потерял ведущий ноль. ИИ полезен для разработки правил очистки, если каждое правило можно проверить и отменить.
Разделите исправления и догадки
Создайте три слоя: неизменяемый исходник, очищенную таблицу и журнал преобразований. В журнале нужны идентификатор строки, колонка, исходное значение, новое значение и применённое правило. Автоматически исправлять стоит однозначные случаи. Неоднозначности отправляйте в отдельную таблицу вопросов, сохраняя исходную запись.
Начните с профиля данных. Для каждого столбца получите количество пустых значений, число уникальных вариантов, наиболее частые значения и несколько редких. В категориальном поле редкие варианты могут быть опечатками, но могут обозначать реальные филиалы. Удаление всех редких значений превращает очистку в потерю информации.
Порядок преобразований
- Зафиксируйте тип каждой колонки. Артикул, индекс и номер договора часто должны оставаться текстом, даже если состоят только из цифр.
- Очистите технические пробелы по краям строк. Внутренние пробелы меняйте только там, где формат заранее известен.
- Нормализуйте категории через явный справочник соответствий. Сохраняйте список вариантов, которые справочник не распознал.
- Разберите даты с заданным форматом. Значение 03/04 без известной локали нельзя уверенно превратить ни в третье апреля, ни в четвёртое марта.
- Обработайте пропуски по смыслу поля. Неизвестная сумма и нулевая сумма являются разными фактами.
- Проверьте результат повторным запуском. Очищенная таблица не должна снова измениться от тех же правил.
Пример с несколькими типами ошибок
Учебная таблица содержит 120 заявок. В 8 строках город записан как « Казань », в 3 — «казань», а в 2 отсутствует. Справочник переводит первые 11 значений в «Казань», но оставляет два пропуска неизвестными. Это не даёт права утверждать, что все 13 заявок относятся к одному городу. Идентификатор «00127» сохраняется текстом, иначе связь с другой системой может нарушиться.
Если сумма «1 250,50» преобразуется в число, сначала согласуйте правила для пробелов и запятой. Отдельно проверьте отрицательные значения и скобки. Количество исправленных ячеек не равно количеству исправленных строк: одна заявка может содержать несколько проблем. Отчёт должен показывать обе величины, чтобы не преувеличивать масштаб очистки.
Запрос к модели
Составь план очистки таблицы по приложенному профилю и примерам. Не угадывай пропуски. Для каждого правила укажи область применения, условие, преобразование, риск потери смысла и контрольный пример. Идентификаторы сохраняй текстом. Выведи отдельно однозначные изменения и случаи для ручного решения. Предложи журнал old_value, new_value, rule_id, row_id. Проверь, что повторное применение правил не меняет результат.Контроль после очистки
Сравните число строк до и после. Любое удаление должно иметь объяснение и перечень идентификаторов. Проверьте суммы числовых колонок, минимальные и максимальные даты, распределение категорий. Если исправление пробелов неожиданно изменило сумму продаж, преобразование затронуло лишние поля или неверно распознало тип данных.
При экспорте CSV обратите внимание на кавычки и разделители: официальная документация модуля csv показывает, что формат чтения и записи требует явных настроек. Повторно откройте экспорт в целевой программе. Правильный файл в одном инструменте может отображаться иначе при автоматическом определении локали в другом.
Для рабочих процессов полезен небольшой набор эталонных строк: корректная запись, пустая ячейка, неоднозначная дата, неизвестная категория, длинный идентификатор. Прогоняйте их после изменения правила. Так вы проверяете поведение очистки, а не уверенность текстового объяснения. Новые неизвестные варианты лучше замечать сразу, до построения ежемесячного отчёта.
Частые вопросы
Нужно ли удалять все дубли?
Сначала определите ключ дубля. Два одинаковых платежа могут быть повторной операцией, а могут быть законными покупками. Совпадение всех видимых полей ещё не заменяет идентификатор события.
Можно ли попросить ИИ восстановить пропуски?
Можно обсудить метод восстановления, но оценённые значения должны храниться отдельно от наблюдаемых. Для операционного учёта догадка редко подходит как замена первичному документу.
Как хранить словарь исправлений?
В отдельной таблице с датой изменения и пояснением. Тогда новое написание категории добавляется осознанно, а прошлые отчёты можно воспроизвести.
Гайд подготовлен для Tarasov Code — проекта Ильи Тарасова и TarasovWeb.
