如何在 Open Refine 中按部分转置单元格数据?

How to transpose cell data by section in Open Refine?

我有一个数据 table 看起来像这样:

Name | Date-Freq | Date-Amount | Date-Freq | Date-Amount 
A    |      4    |    3000     |     8     |   9000
B    |      5    |    4000     |     9     |   7000
C    |      6    |    5000     |     10    |   8000

我希望它看起来像这样:

Name |     Date    |  Freq | Amount 
A    |  July 2014  |   4   | 3000
A    |  Aug 2014   |   8   | 9000
B    |  July 2014  |   5   | 4000
B    |  Aug 2014   |   9   | 7000
C    |  July 2014  |   6   | 5000
C    |  Aug 2014   |   10  | 3000

做这样的事情最好的方法是什么?我应该只创建两个新列吗?

您想要完成的工作需要很多步骤、分面和添加新列等。但是您可以使用 OpenRefine 完成,是的。

您需要组合使用:

  1. 对于任何类型的合并工作,始终在记录模式(而非行模式)下工作。
  2. 将单元格跨列转置为行(转置为带有前缀的 MERGE 列)
  3. 将您的姓名列移至开始列。
  4. 填写您的姓名列(因为在转置之后它现在在某些单元格上是空白的。稍后您可能需要在任何特定的转置或合并之后再次填写。)
  5. 将自定义文本分面与 value.startsWith("Amount") 等一起使用
  6. 使用 Add new column based on 创建基于 MERGE 列的新列
  7. 根据需要移动列以再次执行第 2 步。
  8. 根据需要重复步骤。

这是一个 OpenRefine 项目示例,显示了在上述第一组步骤之后发生的事情的开始(使用 Undo/Redo 查看,但不显示 Facets):

OpenRefine Project with Transpose across cells into one column