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

时间:2015-10-23 17:27:16

标签: openrefine

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

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

这样做的最佳方式是什么?我应该创建两个新列吗?

1 个答案:

答案 0 :(得分:2)

您想要完成的工作将需要大量的步骤和分面以及添加新的列等。但您可以使用OpenRefine完成此操作,是。

您需要使用以下组合:

  1. 始终在记录模式(非行模式)下进行任何类型的合并工作。
  2. 将列间的单元转换为行(在前面的一个MERGE列中)
  3. 将您的名称列移至开始列。
  4. 填写您的名称列(因为它在转置后的某些单元格上现在为空。以后您可能需要在任何特定的转置或合并后再次填写。)
  5. 使用自定义文本构面与value.startsWith(“Amount”)等。
  6. 使用“添加新列”基于MERGE列创建新列
  7. 根据需要移动列以再次执行步骤2.
  8. 根据需要重复步骤。
  9. 这是一个示例OpenRefine项目,显示在上述第一组步骤之后发生的事情的开始(使用Undo / Redo查看,但不显示Facets):

    OpenRefine Project with Transpose across cells into one column