OpenRefine中多值单元格配对拆分转单行的实现方法咨询
OpenRefine 多值配对单元格拆分方法
完全可行,用OpenRefine的GREL函数就能精准处理这种一一配对的多值单元格,步骤如下:
第一步:统一清洗多值分隔符(可选但推荐)
如果你的分号前后有空格(比如张三 ; 1234),先给Name和Account Number列做清洗:用Edit cells → Transform,输入replace(value, /;\s*/, ";"),把分号和后续空格替换成纯分号,避免拆分后数组元素带多余空格。第二步:生成配对数组
添加新列(比如命名为「配对组」),选择Edit column → Add column based on this column(选任意一列都行,比如Name列),在GREL输入框里写:zip(split(cells["Name"].value, ";"), split(cells["Account Number"].value, ";"))这个函数会把Name列拆分的数组和Account Number列拆分的数组,按位置一一配对成子数组(比如
["张三", "1234"])。第三步:拆分配对组为单行
选中「配对组」列,点击Edit cells → Multi-valued cells → Split into rows,这时候每个配对子数组会单独变成一行。第四步:拆分出独立列
现在「配对组」列的内容是类似["张三", "1234"]的格式,要拆回Name和Account Number列:- 添加新列「拆分后Name」,用GREL:
cells["配对组"].value[0] - 添加新列「拆分后Account」,用GREL:
cells["配对组"].value[1]
最后删掉原来的列和「配对组」列即可。
- 添加新列「拆分后Name」,用GREL:
注意:如果你的多值分隔符不是分号,把GREL里的";"改成你实际的分隔符就行。
内容的提问来源于stack exchange,提问作者user20246308
相关产品推荐
相关产品推荐

