Clean	
  Up	
  Your	
  Dirty	
  Data	
  Using	
  
2	
  
OpenRefine	
  –	
  сервис	
  для	
  обработки	
  и	
  очистки	
  данных	
  
•  Получение	
  
представления	
  о	
  
больших	
  
массивах	
  данных;	
  
•  Нахождение	
  
ошибок	
  и	
  
опечаток	
  
•  Переработка	
  
данных	
  в	
  нужные	
  
форматы.	
  
hGp://openrefine.org/	
  
3	
  
Кейс	
  1.	
  Общее	
  представление	
  о	
  массиве	
  данных	
  
Количество	
  строк	
   Названия	
  столбцов	
  
Импорт,	
  экспорт	
  проектов	
  
Гос.	
  контракты	
  Ленинградской	
  области	
  за	
  март	
  и	
  май	
  2014	
  года	
  
4	
  
Построение	
  фасетов	
  
Значения,	
  встречающиеся	
  в	
  столбце	
  
Построение	
  фасетов	
  
Сортировка	
  по	
  количеству	
  
5	
  
Изменение	
  наименований	
  и	
  удаление	
  столбцов	
  
Изменение	
  наименования	
  столбца	
   Удаление	
  столбца	
  
6	
  
Работа	
  с	
  датами	
  
Преобразование	
  текстовых	
  значений	
  в	
  даты	
   Исследование	
  дат	
  
Пример:	
  даты	
  публикации	
  контрактов	
  
Выходные	
   Время	
  
публикации	
  
Март	
   Май	
  
7	
  
Работа	
  с	
  персональными	
  данными	
  
Исходные	
  столбцы	
  
Пример:	
  Ф.И.О.	
  генеральных	
  директоров	
  
Ошибки	
  в	
  заполнении	
  данных	
  
Построение	
  фасетов	
  
Объединение	
  столбцов	
  
value	
  +	
  "	
  "	
  +	
  cells["First	
  Name"].value	
  +	
  "	
  "	
  +	
  cells["Middle	
  Name"].value	
  
(Объединяем	
  столбцы	
  с	
  фамилией,	
  именем	
  и	
  отчеством	
  в	
  один	
  столбец)	
  
Количество	
  
вариантов	
  
8	
  
Работа	
  с	
  персональными	
  данными.	
  Исправляем	
  ошибки	
  
Массовое	
  редактирование	
  ячеек	
  
Кластеризация	
  данных	
  
9	
  
Работа	
  с	
  номерами	
  телефонов	
  
Фасеты	
  и	
  кластеризация	
  (fingerprint)	
  
2206	
  вариантов	
  
Кластеризация	
  (ngram-­‐fingerprint)	
  
2170	
  вариантов	
  
10	
  
Кейс	
  2.	
  Преобразовываем	
  текстовые	
  данные	
  в	
  таблицу	
  
Пример	
  данных:	
   Шаг	
  1.	
  Создаем	
  новый	
  проект	
  
Шаг	
  2.	
  Делим	
  данные	
  на	
  несколько	
  столбцов	
  
В	
  качестве	
  разделителя	
  используем:	
  ‘	
  (‘	
  
11	
  
Кейс	
  2.	
  Преобразовываем	
  текстовые	
  данные	
  в	
  таблицу	
  
Шаг	
  3.	
  Удаляем	
  лишние	
  символы	
  
Делим	
  вторую	
  колонку	
  на	
  две,	
  
используя	
  в	
  качестве	
  разделителя:	
  ‘)	
  ’	
  
Выбираем	
  меню	
  столбца,	
  содержащего	
  
лишние	
  символы	
  
Вводим	
  нужную	
  функцию	
  
replace(value,	
  /d+(.	
  )/,	
  "")	
  
С	
  помощью	
  функции	
  replace	
  
мы	
  заменяем	
  выражение	
  “/
d+(.	
  )”	
  на	
  выражение:	
  “”	
  
Выражение	
  “/d+(.	
  )”	
  означает	
  
последовательность	
  символов:	
  
«любая	
  цифра	
  с	
  точкой	
  и	
  
пробелом»,	
  например	
  «1.	
  »	
  или	
  
«2.	
  ».	
  
Выражение	
  “”	
  означает	
  
отсутствие	
  символов.	
  
Результат:	
  из	
  требуемого	
  
столбца	
  удаляются	
  все	
  цифры	
  с	
  
точками	
  и	
  пробелами	
  
Для	
  составления	
  выражений	
  читаем	
  
раздел	
  Help,	
  синтаксис	
  языка	
  GREL	
  и	
  
регулярные	
  выражения.	
  
12	
  
Кейс	
  2.	
  Преобразовываем	
  текстовые	
  данные	
  в	
  таблицу	
  
Шаг	
  4.	
  Переименовываем	
  столбцы	
  
Меню	
  колонки:	
  	
  
Edit	
  column	
  >	
  Rename	
  column	
  
replace(value,	
  "	
  	
  ",	
  "	
  ")	
  
Шаг	
  5.	
  Удаляем	
  двойные	
  пробелы	
  (при	
  необходимости)	
  
Меню	
  колонки:	
  	
  
Edit	
  cells	
  >	
  Transform	
  
Шаг	
  6.	
  Добавляем	
  порядковые	
  номера	
  
строк	
  и	
  меняем	
  порядок	
  столбцов	
  
Меню	
  колонки:	
  	
  
Edit	
  column	
  >	
  Add	
  column	
  based	
  on	
  this	
  column	
   row.index+1	
  
Меню	
  колонки:	
  	
  
Edit	
  column	
  >	
  Move	
  column	
  to	
  beginning	
  
Шаг	
  7.	
  Экспортируем	
  
результат	
  
13	
  
Кейс	
  3.	
  Преобразовываем	
  данные	
  бюджета	
  
•  Большое	
  количество	
  
строк,	
  не	
  содержащих	
  
новой	
  информации;	
  
•  Формат	
  данных	
  не	
  удобен	
  
как	
  для	
  изучения	
  
пользователями,	
  так	
  и	
  для	
  
автоматизированной	
  
обработки	
  
Исходные	
  данные:	
  
14	
  
Кейс	
  3.	
  Преобразовываем	
  данные	
  бюджета	
  
Результат:	
  
•  Массив	
  данных	
  не	
  содержит	
  лишней	
  и	
  дублирующейся	
  информации;	
  
•  Формат	
  данных	
  совместим	
  с	
  форматом	
  сервиса	
  OpenSpending;	
  
•  Данные	
  могут	
  быть	
  подвергнуты	
  автоматизированной	
  обработке;	
  
•  Данные	
  могут	
  быть	
  изучены	
  (самостоятельно	
  пользователем	
  или	
  с	
  
помощью	
  сервисов	
  визуализации)	
  без	
  предварительной	
  обработки.	
  
15	
  
Кейс	
  3.	
  Преобразовываем	
  данные	
  бюджета	
  
Шаг	
  1.	
  Импорт	
  файла	
  
-­‐  Выбираем	
  название	
  
проекта;	
  
-­‐  Устанавливаем	
  
количество	
  верхних	
  
строк,	
  которые	
  не	
  
должны	
  быть	
  
импортированы;	
  
-­‐  Выбираем	
  строки	
  
для	
  названия	
  
столбцов.	
  	
  
16	
  
Кейс	
  3.	
  Преобразовываем	
  данные	
  бюджета	
  
Шаг	
  2.	
  Удаление	
  лишних	
  строк,	
  использование	
  star	
  
17	
  
Кейс	
  3.	
  Преобразовываем	
  данные	
  бюджета	
  
Шаг	
  3.	
  Добавляем	
  столбцы	
  
Шаг	
  4.	
  Массовое	
  изменение	
  ячеек	
  
Спасибо	
  за	
  внимание!	
  
Ольга	
  Пархимович	
  
olya.parkhimovich@gmail.com	
  
@OpenDataRu,	
  @k0shk	
  

CityCamp & Hack 2014: Использование Open Refine для очистки и преобразования данных

  • 1.
    Clean  Up  Your  Dirty  Data  Using  
  • 2.
    2   OpenRefine  –  сервис  для  обработки  и  очистки  данных   •  Получение   представления  о   больших   массивах  данных;   •  Нахождение   ошибок  и   опечаток   •  Переработка   данных  в  нужные   форматы.   hGp://openrefine.org/  
  • 3.
    3   Кейс  1.  Общее  представление  о  массиве  данных   Количество  строк   Названия  столбцов   Импорт,  экспорт  проектов   Гос.  контракты  Ленинградской  области  за  март  и  май  2014  года  
  • 4.
    4   Построение  фасетов   Значения,  встречающиеся  в  столбце   Построение  фасетов   Сортировка  по  количеству  
  • 5.
    5   Изменение  наименований  и  удаление  столбцов   Изменение  наименования  столбца   Удаление  столбца  
  • 6.
    6   Работа  с  датами   Преобразование  текстовых  значений  в  даты   Исследование  дат   Пример:  даты  публикации  контрактов   Выходные   Время   публикации   Март   Май  
  • 7.
    7   Работа  с  персональными  данными   Исходные  столбцы   Пример:  Ф.И.О.  генеральных  директоров   Ошибки  в  заполнении  данных   Построение  фасетов   Объединение  столбцов   value  +  "  "  +  cells["First  Name"].value  +  "  "  +  cells["Middle  Name"].value   (Объединяем  столбцы  с  фамилией,  именем  и  отчеством  в  один  столбец)   Количество   вариантов  
  • 8.
    8   Работа  с  персональными  данными.  Исправляем  ошибки   Массовое  редактирование  ячеек   Кластеризация  данных  
  • 9.
    9   Работа  с  номерами  телефонов   Фасеты  и  кластеризация  (fingerprint)   2206  вариантов   Кластеризация  (ngram-­‐fingerprint)   2170  вариантов  
  • 10.
    10   Кейс  2.  Преобразовываем  текстовые  данные  в  таблицу   Пример  данных:   Шаг  1.  Создаем  новый  проект   Шаг  2.  Делим  данные  на  несколько  столбцов   В  качестве  разделителя  используем:  ‘  (‘  
  • 11.
    11   Кейс  2.  Преобразовываем  текстовые  данные  в  таблицу   Шаг  3.  Удаляем  лишние  символы   Делим  вторую  колонку  на  две,   используя  в  качестве  разделителя:  ‘)  ’   Выбираем  меню  столбца,  содержащего   лишние  символы   Вводим  нужную  функцию   replace(value,  /d+(.  )/,  "")   С  помощью  функции  replace   мы  заменяем  выражение  “/ d+(.  )”  на  выражение:  “”   Выражение  “/d+(.  )”  означает   последовательность  символов:   «любая  цифра  с  точкой  и   пробелом»,  например  «1.  »  или   «2.  ».   Выражение  “”  означает   отсутствие  символов.   Результат:  из  требуемого   столбца  удаляются  все  цифры  с   точками  и  пробелами   Для  составления  выражений  читаем   раздел  Help,  синтаксис  языка  GREL  и   регулярные  выражения.  
  • 12.
    12   Кейс  2.  Преобразовываем  текстовые  данные  в  таблицу   Шаг  4.  Переименовываем  столбцы   Меню  колонки:     Edit  column  >  Rename  column   replace(value,  "    ",  "  ")   Шаг  5.  Удаляем  двойные  пробелы  (при  необходимости)   Меню  колонки:     Edit  cells  >  Transform   Шаг  6.  Добавляем  порядковые  номера   строк  и  меняем  порядок  столбцов   Меню  колонки:     Edit  column  >  Add  column  based  on  this  column   row.index+1   Меню  колонки:     Edit  column  >  Move  column  to  beginning   Шаг  7.  Экспортируем   результат  
  • 13.
    13   Кейс  3.  Преобразовываем  данные  бюджета   •  Большое  количество   строк,  не  содержащих   новой  информации;   •  Формат  данных  не  удобен   как  для  изучения   пользователями,  так  и  для   автоматизированной   обработки   Исходные  данные:  
  • 14.
    14   Кейс  3.  Преобразовываем  данные  бюджета   Результат:   •  Массив  данных  не  содержит  лишней  и  дублирующейся  информации;   •  Формат  данных  совместим  с  форматом  сервиса  OpenSpending;   •  Данные  могут  быть  подвергнуты  автоматизированной  обработке;   •  Данные  могут  быть  изучены  (самостоятельно  пользователем  или  с   помощью  сервисов  визуализации)  без  предварительной  обработки.  
  • 15.
    15   Кейс  3.  Преобразовываем  данные  бюджета   Шаг  1.  Импорт  файла   -­‐  Выбираем  название   проекта;   -­‐  Устанавливаем   количество  верхних   строк,  которые  не   должны  быть   импортированы;   -­‐  Выбираем  строки   для  названия   столбцов.    
  • 16.
    16   Кейс  3.  Преобразовываем  данные  бюджета   Шаг  2.  Удаление  лишних  строк,  использование  star  
  • 17.
    17   Кейс  3.  Преобразовываем  данные  бюджета   Шаг  3.  Добавляем  столбцы   Шаг  4.  Массовое  изменение  ячеек  
  • 18.
    Спасибо  за  внимание!   Ольга  Пархимович   olya.parkhimovich@gmail.com   @OpenDataRu,  @k0shk