+------------+-----+--------+-----+-------------+
| Meth.name | Min| Max |Layer| Global name |
+------------+-----+--------+-----+-------------+
| DTS | 2600| 3041.2 | AC1 | DTS |
| GGK | 1800| 3200.0 | AC1 | DEN |
| DTP | 700 | 3041.0 | AC2 | DT |
| DS | 700 | 3041.0 | AC3 | CALI |
| PF1 | 2800| 3012.0 | AC3 | CALI |
| PF2 | 3000| 3041.0 | AC4 | CALI |
+------------+-----+--------+-----+-------------+
我们必须按“Global name”列删除重复的行,但具体方式是:我们要选择行,它将给出与range的最大交集,range是使用列"Min"
的最大值和非重复行"Max"
的列"Max"
的最小值计算的。
在上面的示例中,这个范围将是[2600.0;3041.0],因此我们只想保留带有['Meth.name] == 'DS'
的行,总体结果如下:
+------------+-----+--------+-----+-------------+
| Meth.name | Min| Max |Layer| Global name |
+------------+-----+--------+-----+-------------+
| DTS | 2600| 3041.2 | AC1 | DTS |
| GGK | 1800| 3200.0 | AC1 | DEN |
| DTP | 700 | 3041.0 | AC2 | DT |
| DS | 700 | 3041.0 | AC3 | CALI |
+------------+-----+--------+-----+-------------+
当然,这个问题可以通过多次迭代来解决(基于非重复行计算间隔,然后迭代地只选择那些(从重复行中)将产生最大交集的行),但是我正在尝试发现最有效的方法 谢谢
如果行的顺序不重要,可以执行以下操作:
来自this问题
我将这样做:
所需输出:
相关问题 更多 >
编程相关推荐