使用 OpenRefine 将行转置为列(行数可变)
Transpose rows into columns with OpenRefine (variable number of rows)
任何人都可以帮助我将可变数量的行转换为列吗?
我有这样的数据:
ID, NAMES
1, Jon
1, Jonny
1, Jonathan
2, James
3, Bill
3, William
4, Robert
4, Bob
4, Bobby
4, Rob
并且想要这个:
ID, Name1, Name2, Name3, Name4
1, Jon, Jonny, Jonathan
2, James
3, Bill, William
4, Robert, Bob, Bobby, Rob
换句话说,对于每个 ID,我想找到具有该 ID 的所有行,并将每个名称放入一个单独的列(或一个单独的列,名称以逗号分隔的列表)
我知道每个ID最多有4个名字。
我认为使用 OpenRefine 这很容易,但我真的想不通。有人可以帮忙吗?
您可以采用的方法是:
- 根据ID字段创建OpenRefine"records"
- 将与一条记录关联的姓名合并到一个单元格中
- 将新的多值名称单元格拆分为多列
详细:
- 在 ID 列中使用 "Edit Cells -> Blank down"
- 确保您处于记录模式(数据网格左上角 "Show as: Records"
- 在 NAMES 列中使用 "Edit Cells -> Join multi-valued cells" 指定您确信不会出现在任何名称中的分隔符(例如竖线字符 | )
- 然后在 NAMES 列中使用 "Edit Column -> Split into several columns" 指定相同的分隔符
这应该会给出您在这里寻找的结果
任何人都可以帮助我将可变数量的行转换为列吗?
我有这样的数据:
ID, NAMES
1, Jon
1, Jonny
1, Jonathan
2, James
3, Bill
3, William
4, Robert
4, Bob
4, Bobby
4, Rob
并且想要这个:
ID, Name1, Name2, Name3, Name4
1, Jon, Jonny, Jonathan
2, James
3, Bill, William
4, Robert, Bob, Bobby, Rob
换句话说,对于每个 ID,我想找到具有该 ID 的所有行,并将每个名称放入一个单独的列(或一个单独的列,名称以逗号分隔的列表)
我知道每个ID最多有4个名字。
我认为使用 OpenRefine 这很容易,但我真的想不通。有人可以帮忙吗?
您可以采用的方法是:
- 根据ID字段创建OpenRefine"records"
- 将与一条记录关联的姓名合并到一个单元格中
- 将新的多值名称单元格拆分为多列
详细:
- 在 ID 列中使用 "Edit Cells -> Blank down"
- 确保您处于记录模式(数据网格左上角 "Show as: Records"
- 在 NAMES 列中使用 "Edit Cells -> Join multi-valued cells" 指定您确信不会出现在任何名称中的分隔符(例如竖线字符 | )
- 然后在 NAMES 列中使用 "Edit Column -> Split into several columns" 指定相同的分隔符
这应该会给出您在这里寻找的结果