我在玩一些地理数据。给定一个点,我试图映射到一个对象。对于每个连接,我生成两个距离,都是浮动的。为了找到最接近的,我想按两个距离对数据帧进行排序,然后选择最上面的一行。
不幸的是当我运行排序时(
df.sort_values(by=['direct distance', 'pt_to_candidate']
我原以为是前两排,但翻了。如果我单独对任一列运行排序,就会得到预期的结果。如果我翻转排序顺序(
['pt_to_candidate', 'direct distance']
)我得到了一个正确的,虽然不是我想要的函数。
两列都是float64类型。
为什么这种情况会奇怪地出现?
为了完整性,我应该声明我有更多的列和行。从主数据帧,我先过滤,然后排序。另外,我无法通过手动将数据输入新的数据帧来重新创建,因此我怀疑浮点长度是问题所在。
编辑
添加值取决于“直接距离”
4.246947 7
3.147303 2
2.875081 1
2.875081 1