OpenRefine:如何为列中的每个输入创建一个唯一的行(用逗号稀释)
OpenRefine: How to create a unique row for each input in a column ( dilneated by comma)
在进入数据库之前,我有一堆产品数据需要清理,如下所示:
COL A
COL B
COL C... "N"
Option 1
A, B, C, D
Option 1 attribute
Option 2
C, D, F
Option 2 attribute
Option 3
D, J, Z
Option 3 attribute
我希望它看起来像这样,每个独特的产品选项都有一个独特的行:
COL A
COL B
COL C... "N"
Option 1
A
Option 1 attribute
Option 1
B
Option 1 attribute
Option 1
C
Option 1 attribute
Option 1
D
Option 1 attribute
Option 2
C
Option 2 attribute
Option 2
D
Option 2 attribute
Option 2
F
Option 2 attribute
Option 3
D
Option 3 attribute
Option 3
J
Option 3 attribute
Option 3
Z
Option 3 attribute
我知道如何使用 python 脚本来做到这一点,但我已经在使用 OpenRefine,我希望不要在我的数据流中涉及一个全新的过程。
在 OpenRefine 中有没有简单的方法来做到这一点?我很难找到类似这样的方法或扩展。
谢谢!
编辑
@magdmartin
如何使用第一个单元格中的划定值填充空白单元格?
COL A
COL B
COL C... "N"
Option 1
A,B,C,D
Option 1 attribute
Option 1
Option 1 attribute
Option 1
Option 1 attribute
Option 1
Option 1 attribute
Option 2
C,D,F
Option 2 attribute
Option 2
Option 2 attribute
Option 2
Option 2 attribute
Option 3
D,J,Z
Option 3 attribute
Option 3
Option 3 attribute
Option 3
Option 3 attribute
变成了
COL A
COL B
COL C... "N"
Option 1
A
Option 1 attribute
Option 1
B
Option 1 attribute
Option 1
C
Option 1 attribute
Option 1
D
Option 1 attribute
Option 2
C
Option 2 attribute
Option 2
D
Option 2 attribute
Option 2
F
Option 2 attribute
Option 3
D
Option 3 attribute
Option 3
J
Option 3 attribute
Option 3
Z
Option 3 attribute
谢谢!
我在这里录制了一段视频,介绍了下面描述的每个选项:https://youtu.be/3194zXoJtqI
对于这个项目,您将需要使用两个 OpenRefine 函数
- Split multi-valued cells on
COL B
为每个用逗号分隔的值创建一个新行
- Fill down and blank down 从菜单中填写另一列中的值。
如果您有很多列,您可以使用 All > Transform
通过以下表达式 row.record.cells[columnName].value[0]
来加快处理速度。这里的技巧是填写 Col A
last 这样我们可以在填写其他列时保留 record mode (见下面的截图)
在进入数据库之前,我有一堆产品数据需要清理,如下所示:
COL A | COL B | COL C... "N" |
---|---|---|
Option 1 | A, B, C, D | Option 1 attribute |
Option 2 | C, D, F | Option 2 attribute |
Option 3 | D, J, Z | Option 3 attribute |
我希望它看起来像这样,每个独特的产品选项都有一个独特的行:
COL A | COL B | COL C... "N" |
---|---|---|
Option 1 | A | Option 1 attribute |
Option 1 | B | Option 1 attribute |
Option 1 | C | Option 1 attribute |
Option 1 | D | Option 1 attribute |
Option 2 | C | Option 2 attribute |
Option 2 | D | Option 2 attribute |
Option 2 | F | Option 2 attribute |
Option 3 | D | Option 3 attribute |
Option 3 | J | Option 3 attribute |
Option 3 | Z | Option 3 attribute |
我知道如何使用 python 脚本来做到这一点,但我已经在使用 OpenRefine,我希望不要在我的数据流中涉及一个全新的过程。
在 OpenRefine 中有没有简单的方法来做到这一点?我很难找到类似这样的方法或扩展。
谢谢!
编辑
@magdmartin 如何使用第一个单元格中的划定值填充空白单元格?
COL A | COL B | COL C... "N" |
---|---|---|
Option 1 | A,B,C,D | Option 1 attribute |
Option 1 | Option 1 attribute | |
Option 1 | Option 1 attribute | |
Option 1 | Option 1 attribute | |
Option 2 | C,D,F | Option 2 attribute |
Option 2 | Option 2 attribute | |
Option 2 | Option 2 attribute | |
Option 3 | D,J,Z | Option 3 attribute |
Option 3 | Option 3 attribute | |
Option 3 | Option 3 attribute |
变成了
COL A | COL B | COL C... "N" |
---|---|---|
Option 1 | A | Option 1 attribute |
Option 1 | B | Option 1 attribute |
Option 1 | C | Option 1 attribute |
Option 1 | D | Option 1 attribute |
Option 2 | C | Option 2 attribute |
Option 2 | D | Option 2 attribute |
Option 2 | F | Option 2 attribute |
Option 3 | D | Option 3 attribute |
Option 3 | J | Option 3 attribute |
Option 3 | Z | Option 3 attribute |
谢谢!
我在这里录制了一段视频,介绍了下面描述的每个选项:https://youtu.be/3194zXoJtqI
对于这个项目,您将需要使用两个 OpenRefine 函数
- Split multi-valued cells on
COL B
为每个用逗号分隔的值创建一个新行 - Fill down and blank down 从菜单中填写另一列中的值。
如果您有很多列,您可以使用 All > Transform
通过以下表达式 row.record.cells[columnName].value[0]
来加快处理速度。这里的技巧是填写 Col A
last 这样我们可以在填写其他列时保留 record mode (见下面的截图)