портал в режимі тестування та наповнення
0-800-507-506, 0954633565
Гаряча лінія
  • A-
    A+
Пошук
Шукати на порталі
або
серед нормативних актів

Очищенням даних

Процес приведення машиночитаних даних до робочого, впорядкованого стану, називається очищенням даних.

Чистими можна вважати дані, які:

- не містять помилок та одруківок;

- мають уніфікований формат: дати зазначаються у єдиному форматі (наприклад, 2021-10-12), числа мають однаковий роздільник для десяткових знаків (або кома, або крапка, в одному наборі даних не має зустрічатись два різних роздільника десяткових знаків);

- пишуться однаково, без граматичних помилок (однаковий варіант напису адреси, номеру телефону, ПІБ людини тощо);

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

Приклад брудних даних:

Дата

Місто

Показник

2021-08-05

Краматорськ

1 678 910

01-06-2021

Кроматорск

1,574,258

1 липня 2021

Черв. Лиман

1 млн 256 тис 327

2021.08.07

Ліман

1.854.126

2021/09/05

Лиман

3 258 524


З брудними даними неможливо працювати, створювати інфографіку, робити вибірку та фільтрування. В них присутній;

- часовий вимір (дати), однак неможливо вибудувати часову лінію, оскільки всі дати мають різний формат;

- географічний вимір (назва міста), однак дані неможливо агрегувати за змінною «Місто», оскільки кожен раз назва міста пишеться інакше;

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

Ті самі дані після очищення

Дата

Місто

Показник

2021-08-05

Краматорськ

1678910

2021-06-01

Краматорськ

1574258

2021-07-01

Лиман

1256327

2021-08-07

Лиман

1854126

2021-09-05

Лиман

3258524


Чисті дані можна фільтрувати, сортувати, здійснювати з ними арифметичні операції, візуалізувати та будувати на їх основі сервіси.

Найпростіший спосіб очистити дані – використати вбудовані функції електронної таблиці (наприклад, Excel або Google Spreadsheets). Для багатьох випадків неправильно поданих даних досить використання команди пошуку і заміни (Find & Replace). Так можна прибрати зайві пробіли у значеннях, помилкові символи, та інші прості патерни.

Для об’єднання вмісту двох комірок можна використати формулу CONCATENATE, наприклад, =CONCATENATE(A2," ",A3) виведе вміст другої і третьої комірок в першій колонці, розділивши їх пробілом.

Для розділення комірок до різних колонок використовуючи певний символ-роздільник, наприклад, кому, можна використати формулу SPLIT: =SPLIT(A2,", ",false)

Якщо масив даних занадто великий, або дані занадто «брудні», простими засобами електронної таблиці очистити дані практично неможливо, в такому разі доречна програма Open Refine.

OpenRefine – інструмент для очищення даних, створений на Java, виконується локально і працює всередині веббраузера, який запускається автоматично.

Open Refine дозволяє:

- виявляти та виправляти помилки в даних, зокрема – знаходити різні варіанти написання назв і дат та приводити їх до єдиного вигляду;

- знаходити та видаляти зайві символи та комбінації символів у даних, в тому числі за допомоги регулярних виразів;

- розбивати стовпці за певним роздільником або об’єднувати дані із певним роздільником;

- фільтрувати дані за кількома показниками;

- виділяти та видаляти стовпці, змінювати структуру файлу;

- конвертувати дані в різні формати;

- здійснювати базовий аналіз даних;

- надсилати запити до різних АРІ (наприклад, геокодувати адреси);

- зберігати всі трансформації даних в окремому проекті та застосовувати їх до інших документів.


Оптимізація структури даних

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

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

Для даних, організованих у таблицю існує просте правило: кожна колонка є змінною, кожен рядок – окремим спостереженням. Такі дані називаються «охайними» (tidy), їх можна легко і швидко трансформувати, аналізувати і візуалізувати.

Таблиці, створені для людей, далекі від дотримання цього правила. Наприклад, таблиця показує користувачу динаміку доходів населення, користувачу зручно порівнювати цифри за роками і за областями, вона компактна: одиниці виміру винесено до заголовку. Але вона малопридатна до машинної обробки. Якщо уявімо, що років і областей більше, її буде неможливо сортувати та складно фільтрувати. Крім того, назву змінної «рік» ніде, крім як в заголовку не вказано.

Доходи населення за регіонами у 2018-2020 роках, млн. грн.

Область

2017

2018

2019

Вінницька

94417

114480

129787

Дніпропетровська

245778

307844

352532

Донецька

141340

174771

197830

Луганська

49342

58880

65859


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

Область

Рік

Доходи

Вінницька

2017

94417

Вінницька

2018

114480

Вінницька

2019

129787

Дніпропетровська

2017

245778

Дніпропетровська

2018

307844

Дніпропетровська

2019

352532

Донецька

2017

141340

Донецька

2018

174771

Донецька

2019

197830

Луганська

2017

49342

Луганська

2018

58880

Луганська

2019

65859


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

Варто розташовувати колонки фіксованих змінних на початку таблиці, а вимірюваних – наприкінці.

П’ять основних проблем неохайних чи погано структурованих наборів даних:

  1. Заголовки в колонках містять значення, а не назви змінних;
  2. Різні змінні записані в одну колонку;
  3. Змінні записані як в рядках, так і в колонках;
  4. Різні типи блоків спостережень записані в тій самій таблиці;
  5. Один блок спостереження записано у кількох таблицях.

Правильна структура даних дозволяє аналітику або комп’ютеру легко виділяти потрібні змінні, оскільки надає стандартний спосіб структурування набору даних.

Принципи охайно структурованих даних:

1. Один фіксований код для відсутніх значень;

2. Ідентифікатори об’єктів мають бути записані відповідно до однієї системи;

3. Однакова структура даних в різних файлах;

4. Один загальний формат для всіх дат, (переважно РРРР-ММ-ДД);

5. Змінні у колонках, об’єкти (спостереження) у рядках;

6. Заповнюються всі комірки в таблиці, навіть коли дані відсутні;

7. Одне значення в комірці. Наприклад, у комірку може бути записана вага, «45 кг» але краще записати «45», а одиниці виміру винести в назву колонки, наприклад «вага_кг». А ще краще, назвати колонку «вага», а одиниці виміру винести в окремий словник даних.

8. Створити словник даних – окрему таблицю, в якій пояснюються змінні. Це буде частиною метаданих – дані про дані.

Такий словник може містити:

- точну назву змінної, як це вказано в наборі даних («технічну» назву змінної);

- читабельну назву змінної, що може використовуватися, наприклад, для візуалізації даних;

- розлогий опис змінної;

- одиниці виміру;

- очікувані максимальні та мінімальні значення змінних, якщо такі є.

9. Первинні дані не мають містити в комірках таблиці підрахунків чи формул.

10. Не виділяти дані за кольором чи типом шрифта.

11. Зберігати дані у простих текстових форматах (таких як CSV). У разі використання кирилиці, чи інших символів, що виходять за межі ASCII («базової латиниці») краще використовувати кодування UTF-8.

Метадані

У Постанові Кабінету Міністрів України № 835 «Про затвердження Положення про набори даних, які підлягають оприлюдненню у формі відкритих даних» структура набору даних визначається як сукупність метаданих, що містить опис складу (елементів) набору даних, їх формат, параметри та призначення. Тобто структура набору даних – це перелік усіх змінних, що у ньому є, з розшифруванням значення та зазначенням типу даних для кожної змінної.

Для опису таких даних потрібен словник – окрема таблиця метаданих. У ній описано значення кожної зі змінних, їх тип (текст, число, дата тощо), одиниці виміру, мінімальні і максимальні значення, якщо такі є. До словника набору даних також варто включити усі необхідні примітки, уточнення, розшифровки тощо. Структура набору даних – це ключова таблиця набору відкритих даних. Вона описує кожну колонку вихідної таблиці в розрізі п’яти атрибутів: назва (name), заголовок (title), опис (description), тип даних (datatype) й вимога заповнення (required).

name – це машиночитана назва колонки в вихідній таблиці;

title – стислий людиночитаний заголовок колонки;

description – опис значень у колонці й інструкції стосовно її заповнення;

datatype – тип даних колонки. Він відповідає формату в електронних таблицях Microsoft Excel, LibreOffice Calc і Google Таблицях. Тип даних загально визначає, які значення можуть бути внесені до комірок, наприклад, рядки тексту, дати, числа, посилання тощо. Також визначены типи колонки вказується при імпорті набору даних для подальшого його опрацювання.


Назва

Призначення

Приклад значення

string

Запис рядків тексту

Східне міжрегіональне управління Міністерства юстиції (м. Харків)

date

Запис рядків дат

2021-07-15

integer

Запис цілих чисел

1658

decimal

Запис десяткових дробів

12.17

anyURI

Запис посилань в мережі інтернет

https://dn.gov.ua/storage/app/sites/1/
publicinfo/LegalAct/1071-21.pdf



required – це вимога заповнення. Якщо зазначено «Хибність (false)», то колонка може містити відсутні значення (пропуски). Як правило, вони позначаються «null». У протилежному випадку, кожна комірка має бути заповненою й містити конкретне значення (true). Ця таблиця також має бути охайно структурована, наприклад:

name

title

description

datatype

required

identifier

Ідентифікатор

Ідентифікатором нормативно правового акта (НПА) є номер та рік видання, що розділені знаком дефіс. Наприклад: 258/5-2019.

string

true

type

Вид

Розпорядження

string

true

title

Назва

Назва (заголовок) нормативно-правового акта

string

true

dateAccepted

Дата ухвалення

Дата ухвалення нормативно-правового акта у форматі ISO 8601 (рррр-мм-дд). Наприклад: 2019-07-06.

date

true

number

Номер

Номер НПА. Наприклад: 196

integer

true

natureOrder

Характер розпорядження

Характер розпорядження. Наприклад: освіти і науки, релігії, охорони здоров'я, транспорту і зв'язку

string

true

issued

Дата оприлюднення

Дата оприлюднення нормативно-правового акта

date

true

valid

Чинний від

Дата набрання чинності нормативно-правовим актом у форматі ISO 8601 (рррр-мм-дд)

date

true

changed

Внесення змін

Внесення змін до нормативно правового акту. Наприклад: розпорядження голови ОДА від 2021-05-24 № 254

string

false

status

Статус

Статус може мати одне зі значень: чинний, втратив чинність, втратив чинність частково, не набрав чинності, дію призупинено

string

true

basis

Підстава втрати чинності або часткової втрати чинності

Підстава втрати чинності або часткової втрати чинності. Наприклад: розпорядження голови ОДА від 2021-05-24 № 254

string

false

publisherName

Назва видавника

Повна назва видавника. Наприклад: департамент охорони здоров'я

string

true

publisherIdentifier

Ідентифікатор видавника

Якщо видавник є юридичною особою, вказати його код ЄДРПОУ. Наприклад: 01234567. У іншому випадку зазначити null

integer

true

url

Посилання

Посилання на оприлюднений в мережі Інтернет документ (URL)

anyURI

true

registrationNumber

Номер державної реєстрації

Номер акта за державним реєстром. Наприклад: 123/12345. Якщо державна реєстрація не передбачена, вказати null

string

false

registrationDate

Дата державної реєстрації

Дата державної реєстрації акта форматі ISO 8601 (рррр-мм-дд). Якщо державна реєстрація не передбачена, вказати null

date

false

registratorPrefLabel

Назва реєстратора

Назва суб’єкта, що провів державну реєстрацію НПА. Наприклад: східне міжрегіональне управління Міністерства юстиції (м. Харків). Якщо державна реєстрація не передбачена, вказати null

string

false

registratorIdentifier

Ідентифікатор реєстратора

Код ЄДРПОУ суб’єкта, що провів державну реєстрацію НПА. Якщо державна реєстрація не передбачена, вказати null

integer

false

odPortalUrl

Гіперпосилання на вебпортал відкритих даних

Гіперпосилання на вебпортал відкритих даних, якщо інформація з нормативно-правового акту оприлюднена у формі відкритих даних. У іншому випадку вказати null

anyURI

false


Зі словником даних користувачі отримають чіткі пояснення щодо даних з якими вони працюють. Оскільки інформація, яка публікується, може містити специфічні терміни, позначення чи класифікації, які відомі лише розпоряднику інформації. Метадані завантажуються на Єдиний державний вебпортал відкритих даних (далі – Портал) разом з набором даних у спеціальний розділ, який призначений для завантаження словнику даних.

Для створення структури набору даних можна скористатись онлайн-сервісом Data Package Creator, створеним міжнародною організацією Open Knowledge Foundation. Він дає змогу генерувати структуру набору даних у машиночитаному форматі JSON, на основі файлу і даними, а також зазначити для кожної змінної тип даних і опис.

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