Що таке tidy data | robot_dreams
Для відстеження статусу замовлення - авторизуйтесь
Введіть код, який був надісланий на пошту Введіть код із SMS, який був надісланий на номер
 
Код дійсний протягом 2 хвилин Код з SMS дійсний протягом 2 хвилин
Ви впевнені, що хочете вийти?
Сеанс завершено
На головну
Що таке tidy data

Що таке tidy data

Структуруємо дані

Дата-саєнтисти кажуть, що 80 % часу витрачають на підготовку даних, а на аналіз — лише 20 %. Якісна інформація дає змогу побудувати ефективну модель і провести точні обчислення. 

Розповідаємо, у чому суть tidy data і як спростити структурування даних. 

Хто описав концепцію tidy data 

Термін запровадив дата-саєнтист Гедлі Вікем у 2014 році. 

Вікем — творець кількох десятків бібліотек для мови R. У публікації для JSS (Journal of Statistical Software) він каже, що tidy data (охайні дані) — це стандартизований спосіб з’єднати структуру набору даних і його семантику. Іншими словами — фізичне втілення інформації (наприклад, у вигляді таблиці) і значення в наборі даних (числа, назви, номери, характеристики). Кожне значення залежить від двох параметрів: змінної та спостереження. Змінна — це одна характеристика набору даних (наприклад, вік, місто, професія). Спостереження — це групування значень змінних за однією спільною ознакою. Наприклад, інформація про одну людину.       

У більшості датасетів дані — у вигляді таблиць. Вікем вказує три умови, за яких дані називають охайними (tidy).

#1. Усі змінні створюють стовпці.

#2. Усі спостереження створюють рядки.

#3. Кожен тип спостереження створює одну таблицю.

Джерело: Displayr

Якщо будь-яку з умов порушено, то дані вважають неохайними (dirty data).

Більшість завдань дата-аналітиків зосереджена на масивах інформації, операції з якими вимагають різних інструментів і команд. Іноді обробку даних ускладнюють аномалії БД:

  • модифікації (зміна даних впливає на інші записи з таблиці);
  • видалення (за видалення стовпця зникає інформація, не пов’язана з ним безпосередньо);
  • додавання (неможливість додати інформацію в базу).

Якщо формат даних правильний, аномалії не проявляються. 

Використання інструментів, які під час обробки створюють охайні дані, скорочує час на рефакторинг БД. Його основне завдання — спрощення роботи з моделлю без зміни функцій. Зазвичай він потрібний у роботі з таблицями, у яких занадто велика кількість рядків або стовпців для баз конкретного типу або міститься різнорідна чи несортована інформація. Більшість цих проблем усуває tidy data.   

Охайні дані добре працюють з R, тому що це векторна мова програмування. Інформація в R зберігається у вигляді кадрів даних. Якщо ваші дані охайні, показники кожної змінної потрапляють у власний вектор стовпця.   

Неструктуровані дані не виконують одну або більше умов «охайності». Вікем виділяє п’ять ознак безладної інформації:

  • Одиниця спостереження наявна в різних таблицях.

    Приклад: у каталозі бібліотеки інформація про книгу міститься одночасно в таблицях «зарубіжна література» і «класика». 
  • В одній таблиці — багато типів спостереження. 

    Приклад: в одному файлі міститься і список книг, і список відвідувачів.
  • І в рядках, і в стовпцях записано змінні.

    Приклад: у рядках каталогу, де міститься інформація про назву книги, помилково вказано видавництво. Таким чином, зіставляються дві змінні, а не спостереження і змінна.  
  • В одному стовпці — кілька показників.

    Приклад: у стовпці «автор книги» також є інформація про рік друку.
  • Заголовки стовпців — це значення, а не імена змінних.

    Приклад: у списку книг створено стовпці «1997» і «1998», які можна об’єднати в одну змінну — «рік».

Як поліпшити дані: R vs Python 

Є різні плагіни для нормалізації даних. Tidyverse — у десятці найпопулярніших бібліотек для R. Її теж створив Гедлі Вікем. 

Це бібліотека з простим синтаксисом. Вона схожа на мову SQL.

Tidyverse складається з восьми пакетів: ggplot2, dplyr, tidyr, readr, purrr, tibble, strinf, forcatcs. Пакети відрізняються функціоналом виконання завдань, але мають спільний дизайн, граматику і структуру.  

Наприклад, ggplot2 використовують для створення графіки та візуалізації даних, purrr — для роботи з функціями та векторами, а tidyr — для нормалізації охайних даних.   

Крім того, в R є власний репозиторій з відкритим кодом CRAN (Comprehensive R Archive Network) із 17 тис. пакетів. 

Основні функції для очищення даних у tidyr:

#1. Pivotting — функція перетворення даних із широкого формату в довгий і навпаки (за допомогою команд pivot_longer() і pivot_wider()).

Функцію використовують, наприклад, у випадках, коли заголовки стовпців — не змінні, а їхні значення (у таблиці — дванадцять стовпчиків із назвою місяців, хоча це одна змінна — рік або дата). Застосовуємо команду pivot_longer(), щоб «подовжити» таблицю і скоротити кількість стовпців.

pivot_wider() задіюють, якщо кілька змінних розташовано в одному стовпчику (наприклад, дані про зріст і вагу не розділені). За допомогою цієї команди можна «розширити» таблицю.

#2. Fill — функція заповнення пропусків значеннями з наявних записів стовпця. Команда — Fill(). Для функції також можна задавати напрямок «вгору» або «вниз». Тоді автозаповнення використовуватиме попередній або наступний показник у стовпці. 

#3. Unite — функція, яка об’єднує кілька клітинок в одне поле, команда — unite(). 

#4. Separate — функція, протилежна unite. Команда separate() розділяє поле на кілька клітинок.

#5. Nested data

Команда nest() створює стовпчик-список із фреймом даних з однієї групи або таблиці. Таким чином можна порівнювати набори даних, отримати швидкий доступ до датасету або коротку довідку про інформацію в ньому. Команда unnest() розкриває всю інформацію про набір.  

У Python теж можна структурувати дані, працюючи з бібліотекою pandas. 

Основні функції для очищення даних у pandas:

#1. Drop() — видалення зайвих стовпців і рядів. Також за допомогою функції можна видаляти вибіркову інформацію. Для цього потрібно прописати команду, щоб усунути поля, які містять певні мітки. Наприклад, числові або текстові показники.  

#2. Merge() — об’єднання інформації з декількох таблиць в одну.

#3. Stack() — це команда для «розкриття» таблиці та конвертування колонок у рядки. Зворотною є команда Unstack(), яка «згортає» рядки в колонки.

#4. Melt() — функція, яка перетворює формат даних — з широкого в довгий. 

#5. Pivot() — створення зведених таблиць. Застосовуючи цю команду, можна групувати дані за змінними, створюючи багаторівневі таблиці. Наприклад, відібрати з каталогу друкованих видань тільки щорічні британські журнали про географію, використовуючи параметри змінних. 

Яку б мову ви не обрали, створення охайних даних заощадить ваш час.

Ще статті
Порівнюємо швидкість, якість і відповідальність за результат