按照指定索引对数据框进行排序

3

目前我有一个名为worldGeoDataFrame,看起来像这样,其中几何表示一个点(纬度,经度)。

      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)

给定另一个点(lat,long),我想找到这个数据集中距离那个特定点最近的点。我使用了距离函数来计算最近的点。

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

我怎样才能得到按照相同顺序排序的world地理数据框,并呈现如下所示的效果?谢谢!

    name            geometry
2   Vaduz           POINT (9.516669472907267 47.13372377429357)
20   ....           ......................
2个回答

3
您可以使用 .locDataFrame 重新排列到您喜欢的任何索引位置:
world = world.loc[world.distance(Point(9.0,49.0)).sort_values().index]

2
似乎您需要使用“重新索引”功能,可以参考reindex。使用计算距离的结果数据框对world进行重新索引。最初的回答如下:
world.reindex(world.distance(Point(9.0,49.0)).sort_values().index)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接