Занятие 2
Очистка данных
Машиночитаемость
Грязные данные: описание и типы
Отношения «ключ–значение»
Процесс очистки
Очистка данных
Очистка и обработка данных — второй шаг на пути подготовки дата-материала.

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

Цель этого этапа — структуризация и унификация форматов и содержания.



Типы данных:
  • int — integer — целые числа
  • float / real — дроби, числа с долями
  • str — string — текст
  • date — дата
  • time — время
  • Boolean — True/False; ИСТИНА / ЛОЖЬ — Булево значение, логический тип данных, да или нет
  • Null / None — нет данных или нет результата действия;
  • в питоне None влияет на расчёты как самостоятельный тип данных, а не как просто пропуск и пустое место
Машиночитаемость
Слово «машиночитаемый» означает «может быть прочитан и обработан компьютером». ​Это международно признанный формат организации и представления данных.

Определение из американского акта об «открытых, публичных, электронных и необходимых (OPEN) государственных данных» (OPEN Government Data Act):

«Данные в формате, который может быть легко обработан компьютером без участия человека при полном сохранении смысловой нагрузки»



Определение Министерства финансов РФ из Рекомендаций по публикации открытых данных:

«Машиночитаемые данные – данные, представленные в форматах,
пригодных для автоматического или автоматизированного использования»

Узнать больше:
ЗОЛОТОЕ ПРАВИЛО
ОДИН ЛИСТ — ОДНА ТАБЛИЦА
ОДИН РЯД — ОДИН ОБЪЕКТ
ОДНА КОЛОНКА — ОДНА ХАРАКТЕРИСТИКА
ОДНА КОЛОНКА — ОДНА ШКАЛА И ЕДИНИЦА ИЗМЕРЕНИЯ
Грязные данные
Грязные данные — неточные, неполные или непоследовательные данные, которые нарушают связность и структурированность вашего датасета.

Критерии качества данных:
  • Валидность — нет логических ошибок или некорректного форматирования.
  • Точность — данные детальны и надёжны.
  • Полнота — минимум пустых ячеек.
  • Последовательность — нет противоречащих значений.
  • Единообразие — данные структурированные и машиночитаемые.

Ответ: вагадане — золотодобыча, рыбная ловля, энергетика.
Это перевод, который мне кажется корректным. В других источниках те же принципы могут называться иначе, но суть остаётся той же самой.

Есть и другие критерии, о них можно узнать больше в следующих статьях:
Типы грязных данных
  1. Сломанная кодировка.
  2. Много таблиц на одном листе.
  3. Не соблюдено Золотое правило «Один ряд — один объект, один столбец — одна характеристика». Например, значение «24 кг» должно быть разделено на два столбца: «24» в колонку «вес» и «кг» в «единицы измерения».​
  4. Дубликаты.
  5. Пустые ячейки — например, возникшие в ходе ошибок форматирования.
  6. Ложнопустые ячейки.
  7. Непоследовательное форматирование данных — например, где-то указаны «Полная фамилия + Полное имя», а где-то «Фамилия и инициалы».
  • ​Юлия Веред
  • Климова Е. Б.
или, например, разные форматы телефонных номеров:​
  • +7-926-170-40-93
  • 8-(926)-170-4093

Ответ: вагадане



8. Данные в столбце не соответствуют названию столбца, например, в столбце «Страны» содержатся числа.лотодобыча, рыбная ловля, энергетика.
9. Разные типы данных в одном столбце, например:
  • 25.03.1821​
  • Греция
  • ИСТИНА
10. Неверный формат данных — например, «03.03.2022» распознаётся как "string" (текст) вместо "date" (даты).​
11. Невозможные данные — например, 13-й месяц.
12. В одном текстовом столбце разные языки (если так не задумано), например:
  • England​
  • Lietuva
  • Spain
  • Deutschland
13. Опечатки​.
14. Разное написание одного и того же объекта, например, "Kia Rio" и «КИА РИО» в одном столбце.
15. Ячейки, в которых обязательно должны быть данные, пусты; отсутствующие данные.
Человекочитаемость и машиночитаемость
ДАВАЙТЕ ПОЗНАКОМИМСЯ
Сломанная кодировка и невозможные данные
Туториалы
  1. Определитель кодировок.
  2. Скорость движения пешеходов.
  3. Кто изобрёл автомобиль.
  4. Звери в зоопарке.
  5. Плагины для скрейпинга (автоматического сбора информации с сайтов):
6. Определение чисел по картинке с графиком с помощью ИИ.
7. Определение чисел по картинке с графиком вручную (может быть нужен VPN).
8. OCR — Optical Character Recognition — распознавание текста на изображениях.



Нули в числах​
  • K, ​千 — 1000 — 1 000 — 3 нуля
  • M — 1000000 — 1 000 000— 6 нулей
  • B — 1000000000 — 1 000 000 000— 9 нулей
  • 万 — 10000 — 1 00 00 — 4 нуля
  • 亿 — 100000000 — 1 00 00 00 00 — 8 нулей
Как очистить эту таблицу?
Как удалить дубликаты и пустые ячейки в Excel
Как удалить дубликаты и пустые ячейки
в Google Sheets
Разбивка по неразрывному пробелу
в Google Sheets
Как собрать статистику YouTube-канала
Некорректное время в Google Sheets
Системы исчисления в Excel
Конвертируем американские даты в русские
Как вытаскивать данные из графика-картинки
Формулы
для очистки
1.=IMPORTHTML("ссылка";"table";
номер_нужной_таблицы) Работает только в Google Sheets, в Excel нужно в панели инструментов выбрать «Данные» → «Импорт из интернета».

2. =SPLIT(текст;"разделитель"; ЛОЖЬ) Аргумент «ЛОЖЬ» нужен, когда мы хотим разделить текст по всей последовательности символов (слову), а не по отдельным буквам. Работает только в Google Sheets, в Excel нужно в панели инструментов выбрать «Данные» → «Текст по столбцам».

Случай 1:
  • Формула =SPLIT("Imagine me and you";"and")
  • Результат "Im" "gi" "e me" "d you"
Случай 2:​
  • Формула =SPLIT("Imagine me and you";"and"; ЛОЖЬ)​
  • Результат "Imagine me" "you

3. Если хотим объединить текст из нескольких ячеек в одну строку
=СЦЕПИТЬ("текст_1";"разделитель";"текст_2") — часто разделителем может служить простой пробел

4. =ВПР(нужный_ключ; диапазон_для_поиска; число_колонок_с_нужными_значениями; ЛОЖЬ). «ЛОЖЬ» здесь означает 100 % совпадение. См. блок «Ключ-Значение», чтобы узнать больше.

5. Изменить регистр текста:
  • =ПРОПНАЧ("текст") — Пример: "Happy together"
  • =СТРОЧН("текст") — Пример: "happy together"
  • =ПРОПИСН("текст") — Пример: "HAPPY TOGETHER"





6. Выбери ... символов с ... стороны
  • =ЛЕВСИМВ("текст";число_символов) — Пример: =ЛЕВСИМВ("Happy together";4) возвращает "Happ"
  • =ПРАВСИМВ("текст";число_символов) — Пример: =ПРАВСИМВ("Happy together";4) возвращает "ther"

7. Время
Эти функции возвращают простое число. Если выходит странный результат с 1900-ми годами, поменяйте форматирование ячейки с даты на число.
  • =ГОД(дата)
  • =МЕСЯЦ(дата)
  • =ДЕНЬ(дата)
  • =ДЕНЬНЕД(дата;2) — по умолчанию единицей считается воскресенье, поэтому добавляем аргумент 2
  • =ЧАС(время)
  • =МИНУТЫ(время)

  • =ВРЕМЯ(часы;минуты;секунды) — для форматирования отдельных чисел как времени​

8. Проверь форматы и верни ИСТИНА или ЛОЖЬ
  • =ЕПУСТО() — пуста ли ячейка. Возвращает ЛОЖЬ, если ячейка псевдопуста, и прежде в неё сохранялись "" или результат работы формулы.
  • =ЕТЕКСТ() — содержится ли в ячейке текст
  • =ЕЧИСЛО() — содержится ли в ячейке число

9. Скажи, сколько символов в строке
  • =ДЛСТР("текст"); также можно использовать для очистки дат
Формулы для работы с текстом в таблицах
Связь «Ключ–Значение»
Иногда у нас есть несколько рядов для схожих объектов. Например,
  • Имя, Фамилия, Животное, Кличка животного
  • Елена, Рихтер, собака, Бобик
  • Елена, Рихтер, собака, Гарольд
  • Елена, Рихтер, кошка, София
  • Елена, Коробкова, голубь, Гарольд
  • Елена, Коробкова, собака, Бобик

Итого у нас встречаются:
  • 5 раз «Елена»
  • 3 раза «Рихтер», 2 раза «Коробкова»
  • 3 собаки, 1 кошка, 1 голубь
  • 2 «Бобик», 2 «Гарольд», 1 «София»





Хотя датасет содержит информацию о разных животных, значения повторяются. Если мы хотим сослаться на конкретный ряд, нам нужно использовать уникальный идентификатор — "id".​
ID обычно состоят из цифр — либо порядковые числа, либо некая вычисленная комбинация.

ID — это ключи, которые помогают нам установить связи между разными датасетами, так называемые «реляционные базы данных» ("relational databases"), где датасеты взаимосвязаны между собой.
Домашнее задание
БЖУР231 — дедлайн 1 февраля, воскресенье, 18:00
БЖУР233 — дедлайн 3 февраля, вторник, 18:00
Критерии оценивания
Это задание индивидуальное. Очистите один из тех датасетов, который вы нашли в рамках первого домашнего задания. Один человек = один датасет, приведённый в машиночитаемый вид.

Если все ваши датасеты уже чистые, вы можете соскрейпить:
  • страницу на маркетплейсе при поиске конкретного товара, как делали на занятии
  • статистику YouTube-канала, как показано в туториале выше

Выбранный датасет в исходной форме должен отвечать следующим критериям:
  • минимум 15 рядов, без учёта названий столбцов
  • минимум 5 столбцов

1. Создайте подпапку вашей проектной группы группы в папке с домашними заданиями. Назовите её вашими фамилиями, например, Красоткина_Умкина_Фантастичков.

2. Загрузите в папку выбранный вами датасет в исходной форме, в которой вы нашли эти данные, без каких-либо изменений. Назовите файл по принципу Фамилия_Грязный_Название датасета. Например, Красоткина_Грязный_Рейтинг.xlsx.

3. Очистите датасет и загрузите его в ту же папку. Назовите файл по принципу Фамилия_Чистый_Название датасета. Например, Умкина_Чистый_Рейтинг.xlsx.
🌻 Необязательно включать все данные из оригинального датасета. Оставьте только те параметры, которые понадобятся вам при анализе.

4. Создайте текстовый документ с описанием всего, что вы сделали с исходным файлом в процессе очистки. Пример оформления:

Проблема №1: имена и годы в одном столбце, например, Фантаст Фантастичков (1920–1980)
Нарушение принципа: каждый столбец должен содержать только одну машиночитаемую характеристику (см. блок «Типы грязных данных» выше)
Алгоритм очистки:
  • Добавили три новых столбца справа.
  • Текст по столбцам, разделитель «(»​
  • Текст по столбцам, разделитель «-»
  • Текст по столбцам, разделитель пробел « »
  • Найти и заменить, «)» на ничего
  • Названия столбцов заменены на «Имя», «Фамилия», «Год рождения», «Год смерти»
Результат​: в каждом столбце содержится только одна характеристика для каждого объекта, например: «Имя: Фантаст, Фамилия: Фантастичков, Год рождения: 1920, Год смерти: 1980».
___
Если в первом дз вы вместо датасета нашли инфографику, виджет или исчерпывающее текстовое описание, вы можете в рамках этого дз создать из того объекта машиночитаемый датасет. Как одну из проблем отметьте «Человекочитаемый, но не машиночитаемый формат». Иными словами, если ваши данные ещё не в табличном формате, вам нужно переконвертировать их в табличный машиночитаемый вид самостоятельно.

Если вы извлекаете таблицу из другого файла, например, из pdf или из веба, также пропишите это в текстовом документе.

Если хочется, в описательный документ можно вставлять скриншоты. В одном датасете может быть несколько проблем.
Каждый шаг должен быть зафиксирован, это очень важно. Описывайте ваши действия так, чтобы человек с улицы, повторив ваши шаги, смог прийти к тому же результату.
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website