OpenRefine: удаление повторяющихся значений, разделенных запятыми, в ячейках - PullRequest
0 голосов
/ 20 декабря 2018

Как я могу очистить (и затем экспортировать в JSON) ячейки, которые содержат разделенные запятыми, возможно, повторяющиеся значения?

Пример ячеек:

+-------------+
| foo,bar,foo |
+-------------+
| bar,qux     |
+-------------+
| bar,bar     |
+-------------+

То, что я хочу, этолибо данные разбиваются на новые столбцы и дедуплицируются следующим образом:

+-----+-----+
| foo | bar |
+-----+-----+
| bar | qux |
+-----+-----+
| bar |     |
+-----+-----+

или возможность экспортировать дедуплицированные данные в виде массива JSON

+---------+
| foo,bar |
+---------+
| bar,qux |
+---------+
| bar     |
+---------+

в

"cellname": ["foo", "bar"]
"cellname": ["bar", "qux"]
"cellname": ["bar"]

Спасибо за помощь!

1 Ответ

0 голосов
/ 21 декабря 2018

Сначала вы должны импортировать ваш набор данных в линейном режиме, чтобы значения содержались в одном столбце.

Вот так.

enter image description here

Затем вы можете использовать этот хакерский скрипт Python / Jython (уже упоминавшийся здесь ) для преобразования вашего столбца:

from collections import OrderedDict
dedup = list(OrderedDict.fromkeys(value.replace(' ','').split(',')))
return '["' + '","'.join(dedup) + '"]')

Результат:

enter image description here

Наконец, нажав «Экспорт -> Шаблоны», вы можете использовать значение, подобное этому, в поле «Шаблон строки»:

  "cellnames" : {{cells["Column 1"].value}}
...