【发布时间】:2021-04-23 14:22:06
【问题描述】:
- 我有一个包含 WKT 值列的 pandas 数据框。
- 值可以是点或多边形
- 我想过滤掉 y=32 以下的所有点和多边形。
例如:
print (df['WKT'].head(3))
mistac 给出:
POINT (-3.8891602, 51.1724553)
POINT (-1.5820313, 53.7162156)
POLYGON ((-2.2521973 53.1533591, -2.3181152 52.8492299, -1.5490723 52.7695392 -2.2521973 53.1533591
))
我想过滤所有低于y=52 的值。
在我的示例中,我们将过滤第二行:POINT (-3.8891602, 51.1724553)
我该怎么做?
【问题讨论】:
-
为什么
head(3)给出 4 行?另外,POINT (-3.8891602, 51.1724553)是字符串还是类对象?您对POLYGON ((-2.2521973 53.1533591, -2.3181152, 52.8492299 -1.5490723, 52.7695392 -2.2521973, 53.1533591 ))的预期结果是什么? -
修复它(复制粘贴错误)
-
另外,
POLYGON ((-2.2521973 53.1533591, -2.3181152, 52.8492299 -1.5490723, 52.7695392 -2.2521973, 53.1533591 ))中是否缺少逗号?不可读。 -
我更新结果
-
您不能只通过单个 y 值过滤多边形。由于多边形是由多个 x、y 值形成的,因此您必须相应地定义您的过滤器。如果要过滤掉所有 y 坐标都低于特定值的多边形,则必须编写一个函数查找范围或 max y ,然后决定是否过滤。
标签: python python-3.x pandas