介绍
我得到了一个凌乱的excel转储直接到一张桌子上。现在我需要把这个烂摊子变成有用的东西。转储有重复和不一致的地方......好时光!
到目前为止,我一直在尝试各种方法:( - 希望你能帮助我。
给定这个示例数据集:
ExcelDump
+----+------+------+------+
| ID | Col1 | Col2 | Col3 |
+----+------+------+------+
| 1 | | | C |
| 1 | | B | C |
| 1 | A | B | D |
| 1 | E | B | C |
| 2 | A | B | C |
| 2 | A | B | C |
| 3 | A | B | C |
| 3 | A | B | F |
| 4 | A | B | C |
| 4 | G | B | C |
+----+------+------+------+
一种可能的结果可能是:
OutputTable
+----+------+------+------+
| ID | Col1 | Col2 | Col3 |
+----+------+------+------+
| 1 | A | B | C |
| 2 | A | B | C |
| 3 | A | B | C |
| 4 | A | B | C |
+----+------+------+------+
漂亮整洁。唯一 ID 密钥和数据以一种有意义的方式合并在一起。
如何选择正确的数据?
您可能已经注意到另一个可能的结果可能是:
+----+------+------+------+
| ID | Col1 | Col2 | Col3 |
+----+------+------+------+
| 1 | E | B | C |
| 2 | A | B | C |
| 3 | A | B | F |
| 4 | G | B | C |
+----+------+------+------+
这就是复杂的地方。我希望能够根据我可以操纵的一些条件选择最有意义的集合。
例如,我想设置一个条件:“选择最常见的(非空)值,如果没有找到最常见的值,则取第一个非空值。” 此条件应应用于按 ID 分组的选择。该条件的结果将是:
+----+------+------+------+
| ID | Col1 | Col2 | Col3 |
+----+------+------+------+
| 1 | A | B | C |
| 2 | A | B | C |
| 3 | A | B | C |
| 4 | A | B | C |
+----+------+------+------+
如果我后来发现那个假设是错误的,它应该是:“选择最常见的(非空)值,如果没有找到最常见的值,则取最后一个不为空的值。”
+----+------+------+------+
| ID | Col1 | Col2 | Col3 |
+----+------+------+------+
| 1 | E | B | C |
| 2 | A | B | C |
| 3 | A | B | F |
| 4 | G | B | C |
+----+------+------+------+
所以基本上我想根据每组 ID 的一组条件来选择值。