如何在 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 完成,是的。
您需要组合使用:
- 对于任何类型的合并工作,始终在记录模式(而非行模式)下工作。
- 将单元格跨列转置为行(转置为带有前缀的 MERGE 列)
- 将您的姓名列移至开始列。
- 填写您的姓名列(因为在转置之后它现在在某些单元格上是空白的。稍后您可能需要在任何特定的转置或合并之后再次填写。)
- 将自定义文本分面与 value.startsWith("Amount") 等一起使用
- 使用 Add new column based on 创建基于 MERGE 列的新列
- 根据需要移动列以再次执行第 2 步。
- 根据需要重复步骤。
这是一个 OpenRefine 项目示例,显示了在上述第一组步骤之后发生的事情的开始(使用 Undo/Redo 查看,但不显示 Facets):
OpenRefine Project with Transpose across cells into one column
我有一个数据 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 完成,是的。
您需要组合使用:
- 对于任何类型的合并工作,始终在记录模式(而非行模式)下工作。
- 将单元格跨列转置为行(转置为带有前缀的 MERGE 列)
- 将您的姓名列移至开始列。
- 填写您的姓名列(因为在转置之后它现在在某些单元格上是空白的。稍后您可能需要在任何特定的转置或合并之后再次填写。)
- 将自定义文本分面与 value.startsWith("Amount") 等一起使用
- 使用 Add new column based on 创建基于 MERGE 列的新列
- 根据需要移动列以再次执行第 2 步。
- 根据需要重复步骤。
这是一个 OpenRefine 项目示例,显示了在上述第一组步骤之后发生的事情的开始(使用 Undo/Redo 查看,但不显示 Facets):
OpenRefine Project with Transpose across cells into one column