1

我有一个如下所示的数据表:

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

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

4

1 回答 1

2

您想要完成的工作需要大量步骤、分面和添加新列等。但是您可以使用 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 项目

于 2015-10-24T16:50:16.607 回答