目前,我有一个名为GeoDataframe
的{{1}},它看起来像这样,其中几何图形表示一个Point(纬度,经度)。
world
给定另一个Point(lat,long),我想找到从此数据帧到那个特定点的最近点。我使用距离函数来计算最近的点
name geometry
0 Vatican City POINT (12.45338654497177 41.90328217996012)
1 San Marino POINT (12.44177015780014 43.936095834768)
2 Vaduz POINT (9.516669472907267 47.13372377429357)
3 Luxembourg POINT (6.130002806227083 49.61166037912108)
4 Palikir POINT (158.1499743237623 6.916643696007725)
现在我有一个看起来像这样的系列
world.distance(Point(9.0,49.0)).sort_values()
如何获取按相同顺序排序的2 1.936475
20 2.586576
3 2.934453
158 5.016402
172 5.284416
...
6 179.671568
91 182.256232
69 188.780771
126 191.351813
122 197.120844
Length: 202, dtype: float64
Geodataframe的副本,因此如下所示?谢谢!
world
答案 0 :(得分:3)
您可以使用.loc
将DataFrame
重新排列到您喜欢的索引位置:
world = world.loc[world.distance(Point(9.0,49.0)).sort_values().index]
答案 1 :(得分:2)
好像您需要reindex
。使用从计算距离到重新索引world
所得的数据框:
world.reindex(world.distance(Point(9.0,49.0)).sort_values().index)