我有一个 CSV 文件,可以通过 Excel/LibreOffice 和/或 SQLite3 处理。仅当更新 CSV 时才必须执行此任务,这种情况很少发生,因此我可以在需要时手动运行它。
假设一个表的结构与此类似,包含大约 10k 行和更多列。SAME_COLOR 列为空。
这是起始 CSV/表:
ID | 产品 | 颜色 | 相同颜色 |
---|---|---|---|
1 | T恤 | 黑色的 | |
2 | 鞋 | 白色的 | |
3 | 裤子 | 黄色的 | |
4 | 袜子 | 黑色的 | |
5 | 连帽衫 | 粉色的 | |
6 | 包 | 红色的 | |
7 | 手套 | 蓝色的 | |
8 | 手镯 | 红色的 |
如果表中的一行与 COLOR 列中的另一行具有相同的值(这种情况在表内只能发生两次,或者永远不会发生),我想在 SAME_COLOR 列中添加另一行的 ID具有相同值的行。
这将是输出表:
ID | 产品 | 颜色 | 相同颜色 |
---|---|---|---|
1 | T恤 | 黑色的 | 4 |
2 | 鞋 | 白色的 | |
3 | 裤子 | 黄色的 | |
4 | 袜子 | 黑色的 | 1 |
5 | 连帽衫 | 粉色的 | |
6 | 包 | 红色的 | 8 |
7 | 手套 | 蓝色的 | |
8 | 手镯 | 红色的 | 6 |
ID 1 和 ID 4 具有相同的颜色,因此:
- 在第 1 行的 SAME_COLOR 列中插入值 4
- 在第 4 行的 SAME_COLOR 列中插入值 1
ID 6 和 ID 8 具有相同的颜色,因此:
- 在第 6 行的 SAME_COLOR 列中插入值 8
- 在第 8 行的 SAME_COLOR 列中插入值 6
这是上面输出表的 CSV 示例:
ID,product,COLOR,SAME_COLOR
1,tshirt,black,4
2,shoes,white,
3,pants,yellow,
4,socks,black,1
5,hoodies,pink,
6,bags,red,8
7,gloves,blue,
8,bracelets,red,6
我如何快速/自动地做到这一点?