我有一个带有 x,y 列的熊猫数据框,其中包含坐标。这些坐标是地面激光雷达点云坐标。我想找到最接近 1000 的 x 和最接近 2000 的 y 坐标的扫描位置坐标(在扫描期间设置为 X = 1000,Y = 2000 的原始扫描位置)。这是示例数据(h - 高度,i - 强度):
喜喜 0 1088.347856 1877.719005 94.869 0.0 1 1083.338856 1886.024105 95.404 2566.0 2 1078.758756 1890.846705 93.314 0.0 3 1078.781556 1890.810205 93.479 257.0 4 1078.791256 1890.804605 93.559 1026.0 5 1078.804756 1890.778805 93.729 1540.0 6 1078.900756 1890.792905 94.324 1283.0 7 1078.900756 1890.792905 94.579 0.0 8 1078.919556 1890.771805 94.749 513.0 9 1078.892856 1890.663205 95.934 770.0 10 1078.841956 1890.731405 95.259 1026.0
我到目前为止,试图找到最近的坐标:
for x_min in df['x']:
for y_min in df['y']:
x_min = min(df.iloc[:,0], key=lambda x:abs(x-1000))
y_min = min(df.iloc[:,1], key=lambda y:abs(y-2000))
这给了我大约 100 个最接近 1000 和 2000 的 X、Y 值。现在我想找到这些数字的索引值。
item_index_x = np.where(df.iloc[:,0]==x_min)
item_index_y = np.where(df.iloc[:,1]==y_min)
在这里我试图查找同一行中是否有任何 X,Y 坐标,不确定下面的代码是否正确。如果 item_index_x == item_index_y:打印(item_index_x)打印(item_index_y)
不幸的是,它没有在同一行中给出最接近 1000、2000 的坐标。但它独立地找到了 X 最接近 1000 和 Y 最接近 2000 的坐标,例如 X = 1000.00001 但 Y = 1998.0023。我想知道是否有人可以帮助我。