我正在处理一些地理数据。给定一点,我试图映射到一个对象。因此,对于每个连接,我都会生成两个距离,两个距离都是浮动的。要找到最接近的数据,我想按两个距离对数据框进行排序,然后选择第一行。
不幸的是,当我进行排序(df.sort_values(by=['direct distance', 'pt_to_candidate']
)时,我得到了以下乱序结果
我希望排在前两位,但倒挂。如果我对任一列单独运行排序,则可以得到预期的结果。如果翻转排序顺序(['pt_to_candidate', 'direct distance']
),我会得到正确的答案,尽管不是我的功能所必需的。
两列均为float64类型。
为什么这种排序奇怪地返回?
出于完整性考虑,我应该声明自己有更多的列和行。从主数据框中,我先过滤然后排序。另外,我无法通过手动将数据输入到新的数据框中来重新创建,因此我怀疑浮点长度是问题所在。
修改 在“直接距离”上添加value_counts
4.246947 7
3.147303 2
2.875081 1
2.875081 1