gpt4 book ai didi

openrefine - 将可变数量的行转置为 OpenRefine 中的列

转载 作者:行者123 更新时间:2023-12-05 05:09:47 24 4
gpt4 key购买 nike

我有一个包含图书馆目录记录的 xml 文件。我已将其导入 OpenRefine,但所有值都在一列中。我想转置它,以便记录中的每个字段都有自己的列。但是,由于 a) 每个字段都是可选的,因此并不存在于所有记录中,并且 b) 许多字段是可重复的,因此可以在每个记录中出现多次,因此这很复杂。这是数据的简化示例:

| RecordID | Tag  | Data               |
| 1 | 040a | CaABCD |
| 1 | 245a | Go fish |
| 1 | 245a | A guide to fish |
| 1 | 246i | Fish series |
| 1 | 260a | Fishing friends |
| 2 | 040a | CaABDC |
| 2 | 245a | Happy trails |
| 2 | 246i | Hiking series |
| 2 | 260i | The happy hiker |
| 2 | 500a | Notes |

我已经阅读了这里的问答Openrefine - Transpose rows into columns based on text但是这个解决方案的问题是,如果我将所有值连接在一起,我将无法确定它们属于哪个字段,因为我的数据比那个问题中的数据复杂得多(我的实际数据有 25 个以上的字段以及数千条记录)。

我能够更接近使用 Google 表格并制作一个带有计算字段的数据透视表(如 PivotTable to show values, not sum of values - 请参阅最底部的答案)。但是,我仍然不知道如何处理重复字段。在数据透视表中,有多个值,但只显示第一个值(双击单个单元格会弹出一个列出所有值的详细信息表),因此当我复制粘贴该表时,我会丢失其他值。我想连接它们,但在数据透视表中看不到这样做的方法。

你能想到我可以用 OpenRefine 或其他工具做这件事的任何其他方法吗?谢谢!

最佳答案

在 OpenRefine 中解决这个问题的经典方法是使用“Transpose -> Columnize by key value”。但是这个特征是poorly documented甚至会让 OpenRefine 开发人员头疼。在您的情况下,重复的字段会有问题,因此这是一个可能的解决方案。

1° 转到“标签”列,单击“转置 -> 按键值列化”并使用以下配置(不要忘记“注释列(可选)”)

enter image description here

结果是这样的(我的数据集和你的不完全一样,我修改了一个值做一些测试)

enter image description here

2° 在新列“记录 ID:040 a”中,单击“编辑列 -> 将列移至开头”。

3° 如果您想合并重复的字段,转到包含它们的每个列并单击“编辑单元格 -> 加入多值单元格”并选择分隔符,例如“|”。

最终结果将如下所示。

enter image description here

要删除不必要的列:单击“导出”->“自定义表格导出”并取消选择名称以 RecordId 开头的列。

关于openrefine - 将可变数量的行转置为 OpenRefine 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57233255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com