我在 Geopandas 几何列中有一堆 POINT Z (x,y,z) 值。我想利用这些点并构造一条线,然后我可以缓冲它以创建多边形。
生成我使用的行:
lineStringObj = LineString([[a.x, a.y] for a in gdf.geometry.values])
当所有点值都按纬度北/南正确排序时,这很好。但是,我的数据框需要按经度排列为东/西,因此当我创建 linestringobj 时,点会连接成一条漂亮的直线,而不是根据纬度顺序进行锯齿形排列。如何根据几何列的经度 (gdf.geometry.values.x
) 值对数据帧进行排序/重新排序?
最佳答案
您可以使用pd.Series.argsort
获取排序顺序:
gdf = gdf.iloc[
gdf.geometry.x.argsort().values
]
此时,您可以使用上面的相同代码构建线串。
关于pandas - 在 Geopandas 数据框中按经度对几何列进行排序/排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75646734/