当前位置: 首页 > 知识库问答 >
问题:

根据指定的索引对数据帧进行排序

阎庆
2023-03-14

目前,我有一个名为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

我怎样才能得到一个worldGeodataframe的副本,它按相同的顺序排序,如下所示?谢谢

    name            geometry
2   Vaduz           POINT (9.516669472907267 47.13372377429357)
20   ....           ......................

共有2个答案

耿俊彦
2023-03-14

似乎您需要重新索引。使用从计算距离得到的数据帧重新索引world

world.reindex(world.distance(Point(9.0,49.0)).sort_values().index)
宋唯
2023-03-14

您可以使用来实现这一点。loc要重新排列所需索引的数据帧

world = world.loc[world.distance(Point(9.0,49.0)).sort_values().index]
 类似资料:
  • 我有两个形状相同的python数据帧,例如: 我想使用df2中的值作为行索引来选择df1中的值,并创建一个形状相等的新数据帧。预期结果: 我已尝试使用.loc,它在单个列中运行良好: 但是我不能同时在所有列上使用. loc或. iloc。我想避免循环来优化性能,因为我正在处理一个大数据帧。有什么想法吗?

  • 我有一个像这样的数据框- 我有一个这样的列表- 现在,我想根据列名列表对数据框进行排序 因此,新的数据框将有列名称-

  • 我有一个数据表,我想在显示前排序。排序基于聚合。在下面的例子中,我已经计算了一些汽车,我想按每个制造商的汽车总数来订购数据框,按升序排列,例如“奔驰”,然后是“宝马”,然后是“奥迪”。 我想保留所有原始列-聚合仅用于确定排序顺序。 有没有一种更像蟒蛇/熊猫的方法来做到这一点,因为上面的感觉是我为一些应该简单的事情付出了太多的努力。

  • 我有一个假设 我的目的是以循环的方式基于来订购它。 输入: SortedList:

  • 问题内容: 对于这个有争议的问题,我无法得到明确的答案。 MSDN文档中提到 聚类 聚集索引根据它们的键值对数据行进行 排序 并将其存储在表或视图中。这些是索引定义中包括的列。只能有一个每个表的聚集索引,因为数据行本身可以 进行排序 在只有一个订单。 表中的数据行唯一 按排序 顺序存储的时间是表包含聚簇索引时。当表具有聚簇索引时,该表称为聚簇表。如果表没有聚集索引,则其数据行将存储在称为堆的无序结

  • 问题内容: 我想对以下数据框进行排序: 我想对它进行排序,以便根据列表对LSE列进行重新排序: 当然,其他列也需要相应地重新排序。有没有办法在熊猫里做到这一点? 问题答案: pandas0.15版中对s的改进支持使您可以轻松做到这一点: 如果这只是临时排序,则可能不希望将LSE列保留为a ,但是如果您希望这种排序能够在不同的上下文中使用几次,则是一个很好的解决方案。 在更高版本的,中,已被替换为,