OpenRefine 将具有重复值的单个列拆分为带有标题的格式良好的列



我在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的单个列中(我们称之为"数据"(
    • 从数据中删除所有"代码":
    • 使用 GRELvalue.startsWith(".").toString()创建自定义文本分面
    • 在该方面选择"真">
    • 删除所有选定的行
    • 移除刻面

  • 从数据中删除所有空白行
    • 分面(空白或空(
    • 在该方面选择"真">
    • 删除所有选定的行
    • 移除刻面
使用"数据"列
  • 中的"基于现有列添加列"向 OpenRefine 项目添加新列
    • 使用 GRELif(value.endsWith(":"),value,"")
    • 将新列(例如(称为"键">
    • 将新的"键"列移动到项目中的第一个列
    • 在"键"列中,使用"向下填充">
删除"键">
  • 和"数据"列中同时具有"键"的行
    • 在"数据"列上,使用 GREL 创建自定义文本分面value.endsWith(":").toString()
    • 在该方面选择"真">
    • 删除所有选定的行
    • 移除刻面

  • 转置基于的数据:
    • 在"键"列中,选择"转置 ->按键/值列列化
    • " 选择"键">
    • 作为键列,选择"数据"作为值列
    • 单击"确定">

结果应该是一个表格,其中每个标题都是列标题,下面列出了值。由于某些标题具有多个值(例如,对于单个"本地化和命名:",您可以有许多"省-地区-支付:"等,您可能需要使用 OpenRefine 中的"记录"功能以及"连接多值单元格"函数,将值放入单个逗号分隔的单元格中

最新更新