Shanraq.org Shanraq.org
Очистка данных без потери происхождения
Общество

Информатика: создаём своего цифрового помощника Урок 49 из 72

Очистка данных без потери происхождения

Исправим плохую строку, сохранив исходник и причину решения.

Где мы на карте

Урок 49 из 72, блок «Данные, таблицы и базы» (47–54). Мы продолжаем помощника 1.1 с тремя вымышленными задачами. В конце блока его записи будут храниться в локальном SQLite, а проверенные правила напоминаний останутся прежними.

Очистка данных без потери происхождения

Ситуация и вопрос

В чужой копии журнала появились s-04 дважды и дата 2026-02-29. Можно просто удалить «некрасивое»? Тогда исчезнет след того, что данные были повреждены или повторно выгружены.

Новые слова без пропусков

Очистка — проверка и исправление данных по известным правилам. Происхождение — путь от источника до результата. Сырой файл хранит полученное как есть; очищенный набор — только принятые строки. Карантин — список отвергнутых строк с причиной. Дубликат здесь означает одинаковый session_id, даже если остальной текст различается. Валидация проверяет дату календарём, целое число минут от 0 до 180, известный task_id и paper/app.

Опорный сигнал

Прочитайте схему слева направо. Для каждой стрелки назовите вход, преобразование и проверку. Закройте третий шаг и предскажите его. Затем найдите соответствующую строку в CSV, SQL или отчёте: нарисованная стрелка не должна подменять реальные значения и связи.

Разбираем шаг за шагом

Скопируйте CSV, исходник не меняйте. Прочитайте строки по очереди: s-01 принимаем, второй s-01 отправляем в карантин с причиной «повтор ID». Запись с 29 февраля 2026 года отклоняем: 2026 год не високосный. Строку с t-99 отклоняем как ссылку на несуществующую задачу. В коде read_sessions сначала проверяет все строки и только потом возвращает набор для новой БД. Одно неверное наблюдение останавливает импорт — на этом этапе мы предпочитаем явное исправление источника.

Предскажите и проверьте

Сначала запишите ожидаемый вывод точно, включая порядок строк. Затем выполните код из папки step-05 и сравните посимвольно. Измените один вход и повторите цикл «предсказать — запустить — объяснить». Пример доказывает только заявленное правило: он не превращает учебные вымышленные данные в измерение реальных людей.

from data_store import read_sessions
rows = read_sessions("study_sessions.csv", {"t-01", "t-02", "t-03"})
print(len(rows), sum(row[3] for row in rows))

Ожидаемый вывод

4 70

Поймайте ошибку

Удаление строки без журнала решений делает результат невоспроизводимым. Автоматическая замена неизвестной даты на сегодня создаёт ложный факт. Пустую длительность нельзя тихо превратить в ноль: это утверждало бы, что занятие длилось ноль минут.

Изменение проекта

Сохраните четыре исходные вымышленные строки, составьте на бумаге карантин для трёх испорченных примеров и исправьте только рабочую копию. Настройка импорта 1.2 отказывается создать базу, пока CSV не пройдёт проверку целиком.

Задание и доказательство

Для повторного ID, невозможной даты и неизвестного task_id напишите отдельную причину отказа. Укажите, какое доказательство нужно, чтобы исправить каждую строку, и какой файл остаётся нетронутым.

Перенос в новую ситуацию

Два сайта опубликовали разные числа об одном событии. Почему полезно хранить URL, дату получения и правило отбора прежде, чем построить общий график?

Возврат через 1, 7 и 30 дней

Через 1 день восстановите схему по памяти и назовите случай, где простая аналогия не работает. Через 7 дней объясните новую таблицу товарищу без текста и ответьте минимум на 7 из 10 вопросов итогового урока. Через 30 дней повторите импорт во временную папку и проверьте три задачи, четыре занятия, сумму 70 и неизменные напоминания. Запишите оставшийся непонятным термин и вернитесь к его первому определению.

Первоисточник для проверки

Официальная документация

Следующий урок

Как диаграмма может солгать правдивыми числами

Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом

Проверить доказательство проекта

Запишите наблюдение, объяснение, исправление ошибки и изменение своего проекта. Модель укажет первую перепутанную или недоказанную связь, но не даст готовый ответ.

Чтобы проверить, нужно войти. Войти

Комментарии (0)

Пока нет комментариев. Будьте первым.