代码之家  ›  专栏  ›  技术社区  ›  ScottieB

Pandas dataframe使用两个float列返回不正确的排序

  •  0
  • ScottieB  · 技术社区  · 6 年前

    我在玩一些地理数据。给定一个点,我试图映射到一个对象。对于每个连接,我生成两个距离,都是浮动的。为了找到最接近的,我想按两个距离对数据帧进行排序,然后选择最上面的一行。

    不幸的是当我运行排序时( df.sort_values(by=['direct distance', 'pt_to_candidate']

    enter image description here

    我原以为是前两排,但翻了。如果我单独对任一列运行排序,就会得到预期的结果。如果我翻转排序顺序( ['pt_to_candidate', 'direct distance'] )我得到了一个正确的,虽然不是我想要的函数。

    两列都是float64类型。

    为什么这种情况会奇怪地出现?

    为了完整性,我应该声明我有更多的列和行。从主数据帧,我先过滤,然后排序。另外,我无法通过手动将数据输入新的数据帧来重新创建,因此我怀疑浮点长度是问题所在。

    编辑 添加值取决于“直接距离”

    4.246947    7
    3.147303    2
    2.875081    1
    2.875081    1
    
    0 回复  |  直到 6 年前