我在OpenRefine中有一列是这样的:
.TI
Localisation et dénomination :
Provenance des matériaux de monuments de Senlis
.DA
Date du cliché :
Janvier 1970
.R16N
Commune :
Senlis
.R17N
Département-Région-Pays :
Oise
Picardie
France
.R62N
Localisation plus précise dans l'édifice :
Cave
.R13
Datation de l'édifice :
Lutétien
Éocène
Paléogène
.MC
Mots-clés :
Pierre
Roche
Géologie
Caractérisation
Calcaire
Carrière
Liais
Liais de Senlis
Carrière souterraine
每个项目的数据都以标签名称开头,"本地化...","日期...","公社"等(代码如.TI,.DA等不重要(,后跟一个值,每个标签或值都在连续的行中,大约一万。我想要这样的东西,标签作为列标题:
Localisation et dénomination | Date du cliché | Commune | Département-Région-Pays | etc.
Provenance des matériaux de monuments de Senlis | Janvier 1970 | Senlis | Oise, Picardie, France | etc.
知道吗? 谢谢
我建议按以下方法处理:
- 将您拥有的数据导入到OpenRefine的单个列中(我们称之为"数据"(
- 从数据中删除所有"代码":
- 使用 GREL
value.startsWith(".").toString()
创建自定义文本分面 - 在该方面选择"真">
- 删除所有选定的行
- 移除刻面
- 从数据中删除所有空白行
- 分面(空白或空(
- 在该方面选择"真">
- 删除所有选定的行
- 移除刻面
- 中的"基于现有列添加列"向 OpenRefine 项目添加新列
- 使用 GREL
if(value.endsWith(":"),value,"")
- 将新列(例如(称为"键">
- 将新的"键"列移动到项目中的第一个列
- 在"键"列中,使用"向下填充">
- 使用 GREL
- 和"数据"列中同时具有"键"的行
- 在"数据"列上,使用 GREL 创建自定义文本分面
value.endsWith(":").toString()
- 在该方面选择"真">
- 删除所有选定的行
- 移除刻面
- 在"数据"列上,使用 GREL 创建自定义文本分面
- 转置基于的数据:
- 在"键"列中,选择"转置 ->按键/值列列化 " 选择"键">
- 作为键列,选择"数据"作为值列
- 单击"确定">
结果应该是一个表格,其中每个标题都是列标题,下面列出了值。由于某些标题具有多个值(例如,对于单个"本地化和命名:",您可以有许多"省-地区-支付:"等,您可能需要使用 OpenRefine 中的"记录"功能以及"连接多值单元格"函数,将值放入单个逗号分隔的单元格中