bg-img bg-img bg-img
Увiйти в ГУРТ
Забули пароль?

Ще не з нами? Зареєструйтесь зараз

Проблеми якості відкритих даних: як уникнути помилок і покращити дата сети
25.12.2019

Важливою складовою даних є не лише їх відкритість, але й придатність для аналізу. Тому в процесі підготовки дата сетів важливо уникати помилок у документах, які можуть перетворити публікацію на «сміття». Сьогодні ми розглянемо найпоширеніші помилки та способи їх уникнення, а також розкажемо, що робити, якщо у ваші руки такі потрапили «брудні» дані.

«В Україні однією з основних проблем відкритих даних є їхня якість. На жаль, розпорядники не завжди і не до кінця розуміють, як саме ділитися даними та чому це важливо. Загалом проблему брудних даних можна розділити на два аспекти: загальна якість даних (єдиний формат даних у стовбцях, відсутність зайвих символів і пробілів, правильний десятковий розділювач тощо) та вірна структура даних», – пояснив аналітик даних, експерт проекту «Дані міст» Андрій Савчук.

ПОРАДИ ЩОДО УНИКНЕННЯ ТИПОВИХ ПОМИЛОК

  • в жодному разі не використовуйте об’єднані комірки в Excel-таблицях
  • заповнюйте всі комірки в таблиці, навіть коли дані відсутні – внесіть у них запис “NA” (Not Available)
  • використовуйте завжди один і той самий запис для пропущених значень
  • вставляйте лише одне значення в комірку; наприклад, у комірці може бути записана відстань – «19 км»; краще написати просто “19”, а одиниці виміру винести в назву колонки: «відстань_км»
  • у межах однієї змінної вживайте один тип даних, тобто якщо в певному стовпчику записані дати, у ньому не має бути текстових даних чисел
  • записуйте усі дати в одному форматі; використовуйте один загальний формат для всіх дат – бажано, щоб це був стандарт ISO 8601, тобто РРРР-ММ-ДД (рік-місяць-день)
  • використовуйте один простий формат для чисел – не слід вдаватися до зайвого форматування, наприклад, розділення великого числа комами чи пробілами для його кращого візуального сприйняття
  • використовуйте крапку як десятковий розділювач: «108.7» замість «108,7»
  • коли потрібно зберегти провідні нулі (які йдуть попереду числа, наприклад, при використанні кодів бюджету ‘‘02509000000’’), форматуйте комірки з числами як текст
  • ваші дані не мають містити в комірках результатів підрахунків чи формул
  • один стовпчик у таблиці – одна змінна; поширена помилка – використовувати значення змінних (назви областей чи років) як назви стовпців даних в таблиці
  • не використовуйте перенос рядка в текстових комірках
  • не використовуйте латинські літери замість кириличних і навпаки; наприклад, назва міста «Сарни» (українськими літерами) та «Cарни» (з першою латинською літерою) виглядають однаково, проте на практиці є різними значеннями
  • будьте уважні з пробілами – на початку і в кінці комірки з даними не має бути пробілів; не можна ставити два пробіли підряд
  • не потрібно писати текстові значення чи назви стовпців ВЕЛИКИМИ ЛІТЕРАМИ (крім абревіатур) – під час обробки даних машиною це може сприйматися як різні значення
  • називайте файли лише латиницею, наприклад, «budget.csv»
  • не варто використовувати пробіли в заголовках стовпців або назвах файлів. Замість них використовуйте підкреслення «_». Наприклад, «budget_2019.csv»

ЯК ПОКРАЩИТИ ДАТА СЕТИ

Для багатьох випадків чистки помилок чи одруківок у даних досить використання команди пошуку і заміни (комбінація клавіш Ctrl + H). Так можна замінити лапки чи розділювач, прибрати зайві пробіли, помилкові символи, уніфікувати текстові значення.

  • для об’єднання вмісту двох або більше комірок можна використати функцію «CONCATENATE», наприклад, =CONCATENATE(A2," ",B2) об’єднає вміст комірок A2 та B2, розділивши їх пробілом
  • для розділення комірок до різних стовпців, що використовують певний символ-роздільник, наприклад, крапку чи крапку з комою, можна використати функцію «Текст за стовпцями», що знаходиться у вкладці «Дані»
  • для видалення даних, що повторюються, можна також скористатися базовою функцією «Видалення дублікатів», що знаходиться у вкладці «Дані»
  • ля очищення комірок від зайвих пробілів можна використати функцію «TRIM»

«При значних обсягах чи для зміни структури даних потрібно використовувати відповідні бібліотеки в мовах програмування R чи Python. Універсальним інструментом, який не вимагає значних початкових навичок та досвіду, стане OpenRefine. Адже це універсальна opensource-програма для очистки даних, що допоможе впоратися із усіма найпопулярнішими проблемами: від зміни структури даних до кластеризації значень у межах стовбців», – додав Андрій Савчук.

ПРОГРАМИ ДЛЯ ВИПРАВЛЕННЯ ПОМИЛОК У ДАТА СЕТАХ

DataProofer

Для виявлення проблем у даних можна скористатися безплатною програмою Dataproofer, яка застосовує до кожного набору даних 14 різних тестів. Вона допоможе перевірити набори даних у табличних форматах: xls(x), CSV, TSV та PSV.

Програма дозволяє:

·       перевірити, чи всі значення в стовпцях є числами чи текстом

·       виявити дублікати чи пусті комірки

·       побачити потенційну втрату даних, коли, наприклад, загальна кількість рядків у таблиці становить 65 536 (обмеження попередніх версій Excel) чи загальна кількість символів у комірці 255 (деякі обмеження під час експорту з баз даних)

·       перевірити недійсні чи пусті значення широти та довготи

·       провести тести, які перевірять відхилення від середнього значення та/чи медіани стовпця

OpenRefine

Для очищення наборів даних чи перетворення їх в інші формати можна використовувати спеціальний інструмент – OpenRefine. Ця програма виконується локально і працює всередині веб-браузера, який запускається автоматично. OpenRefine підтримує імпорт даних із форматів CSV, *SV, xls(x), JSON, XML тощо.

Програма дозволяє:

  • виявляти та виправляти помилки в даних, зокрема, знаходити різні варіанти написання назв і дат та приводити їх до єдиного вигляду
  • знаходити та видаляти зайві символи й комбінації символів у даних, в тому числі за допомогою регулярних виразів
  • розбивати стовпчики за певним роздільником або ж навпаки об’єднувати дані
  • фільтрувати дані за кількома показниками
  • виділяти/видаляти стовпчики, змінювати структуру документу
  • здійснювати базовий аналіз даних
  • конвертувати дані в різні формати
  • надсилати запити до різних АРІ (наприклад, геокодувати адреси)
  • зберігати всі трансформації даних в окремому проекті та застосовувати їх до інших документів

R

За допомогою програмного середовища R також можна здійснювати обробку, структурування чи поверхневу чистку даних. Для багатьох операцій буде достатньо навіть простих навичок програмування.

ПЕРЕЛІК БІБЛІОТЕК, ЯКІ ДОПОМОЖУТЬ ПРИ СТРУКТУРУВАННІ/ОЧИЩЕННІ ДАНИХ

  • stringr – допомагає краще працювати з текстовими рядками; можна дізнатися довжину символів у комірці, здійснити необхідні заміни чи прибрати зайві пробіли
  • lubridate – набір функцій для роботи з датами та часом; бібліотека, наприклад, може визначити день тижня за датою чи порахувати проміжок між двома датами
  • tidyr – робота із «брудними» даними, зокрема, їхнє структурування; також за допомогою цієї бібліотеки можна розділити чи об’єднати комірки

Стаття підготовлена на основі посібника «Відкриті дані для міст».

Матеріал опублікований в рамках Ініціативи «Дані міст», що реалізовується фондом TechSoup та Ресурсним центром ГУРТ за підтримки NED.

Контакти

Коментарі

Ігор Алексєєв   1574 дні тому   #  

Дуже хороша стаття! Дуже знадобилася!
Справжній подарунок на Новий рік, дуже дякую!
Давно маю кілька БД, які треба об'єднати і почистити - тепер я зроблю це з легкістю!

Виникло ще питання:
не варто використовувати пробіли в заголовках стовпців або назвах файлів. Замість них використовуйте підкреслення «_». Наприклад, «budget_2019.csv»
А як щодо довжини імені файлу? Зі старих часів існує звичай, що бажано найкоротше, аж до восьми літер. Наскільки це зараз обґрунтовано? Я питаю у розрізі викладаю файли для скачування на сайт.

  •   Пiдписатися на новi
Мазипчук Максим   1557 днів тому   #  

Вітаю! Як підказує експерт проекту Дані міст Андрій Савчук, по довжині файлу можна згадати хіба обмеження "до 255 символів", які існують у різних операційних системах. Потрібно розуміти, що назва файлу повинна повністю відображати його вміст, наприклад, "Lutsk_weather_forecast_2019.csv". Іншими словами, варто відповідати на питання "Що це за дані?", "Який період вони охоплюють?", "Яка у мене географічна прив'язка?". Але "захоплюватися" і робити дуже довгу назву не потрібно. У будь-якому разі на сайті, гітхабі чи деінде у Вас повинен бути опис файлу, який можуть завантажити користувачі. Тоді вони точно знатимуть, що за файл вони завантажують, а за необхідності перейменують його!. З повагою, Максим Мазипчук

  •   Пiдписатися на новi
Ігор Алексєєв   1556 днів тому   #  

Ех, якби все так було просто! Деінде проблема виникає з кирилицею, Віндовси сімейства НТ не підтримують розширену латинку, у Лінуксах є різниця - велика літера чи мала. Ніде, здається, у назвах файлів не припускається : / \ ? і ще щось...
Там стільки приколів, що як забезпечити 100% сумісність - навіть не всі спеціалісти знають.
Тому я, зі старого переляку, застосовую стандарт із перших версій ДОСу - ім'я файлу до 8 літер без пробілів :-)

  •   Пiдписатися на новi
  •   Пiдписатися на новi



Щоб розмістити свою новину, відкоментувати чи скопіювати потрібний текст, зареєструйтеся та на портал.