OpenRefine:删除单元格中重复的,逗号分隔的值

时间:2018-12-20 15:48:54

标签: openrefine

我如何清理(然后导出到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 :(得分:1)

您必须首先以基于行的模式导入数据集,以便将值包含在单个列中。

喜欢这个。

enter image description here

然后,您可以使用这个骇人的Python / Jython脚本(已经提到here)来转换您的列:

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

结果:

enter image description here

最后,通过单击“导出->模板”,可以在“行模板”字段中使用类似这样的值:

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