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

OpenRefine: Remove duplicate, comma separated values in cells

如何清理(然后导出到 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"]

感谢您的帮助!

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

像这样。

然后,您可以使用这个 hacky Python/Jython 脚本(已经提到 )来转换您的专栏:

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

结果:

最后,通过单击 "Export -> Templating",您可以在 "Row template" 字段中使用这样的值:

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