原文地址:https://www.lujun9972.win/blog/2021/04/15/使用awk查找并修复数据中一对多的不一致问题/index.html
从 https://www.datafix.com.au/BASHing/2021-03-17.html 上看到的一个 awk 小技巧。
所谓“一对多”的不一致问题是指这么一种情况:属性1与属性2本来应该是 1:1 或者 N:1 的关系,但是由于数据错误导致同一个属性1有了多个属性2与之对应。
例如下面数据中, 每个 item 本来应该只有唯一的一个 class,但是实际上 banana 和 potato 有多个 class 与之对应。
saleID date item class kg 001 2021-01-02 capsicum vegetable 11.9 002 2021-01-02 banana fruit 12.7 003 2021-01-02 capsicum vegetable 3.7 004 2021-01-02 potato vegetable 4.1 005 2021-01-02 capsicum vegetable 6.0 006 2021-01-02 potato fruit 13.0 007 2021-01-02 banana vegetable 9.1 008 2021-01-02 potato vegetable 15.0 009 2021-01-02 apple fruit 5.6 010 2021-01-02 banana fruit 7.7 011 2021-01-02 pumpkin vegetable 8.3 012 2021-01-02 pumpkin vegetable 5.6 013 2021-01-02 apple fruit 3.5 014 2021-01-02 pumpkin vegetable 5.3 015 2021-01-02 capsicum vegetable 10.3 016 2021-01-03 apple fruit 12.2 017 2021-01-03 pumpkin vegetable 12.6 018 2021-01-03 potato vegetable 4.4 019 2021-01-03 ap

本文介绍了如何使用awk查找并修复数据中的一对多不一致问题。通过建立二维数组来检查属性之间的关系,当发现某个属性有多于一个的对应属性时,即视为不一致。提供了一个简化版的awk程序来识别这种问题,并定义了一个可复用的awk函数。修复过程包括创建查询表和在awk中更新不一致的数据。
最低0.47元/天 解锁文章
1581

被折叠的 条评论
为什么被折叠?



