#pandas #filter
Вопрос:
У меня есть части ( пронумерованные жирным шрифтом 1,8,9 ) в системе координат. Я хочу, чтобы лучшая часть переехала на зеленые дороги. Детали не могут проходить друг мимо друга, поэтому мне нужно найти деталь в конце группы и добавить ее в столбец «открыть». ( другие предложения приветствуются )
Мне нужен способ найти best_index(тип) = index_nr
best_index(8)=9 ( не 10 ,даже если расстояние до выхода, в правом нижнем углу, короче, мешает тип 9)
best_index(1)=5 (меньшее расстояние до выхода ,нижний правый угол, затем индекс = 0 )
У меня есть это до сих пор, но это не дает мне явного типа part_type «открыть». Как мне это сделать?
def closest(point, points):
return points[cdist([point], points).argmin()]
df1= pd.DataFrame({ 'x_Now': [1,1,1,1,1,1,1,1,1],
'y_Now': [1,2,3,4,5,8,9,10,11],
'Type': [1,1,1,1,8,8,9,9,9],
'Moved': [0,0,0,0,0,0,0,0,0]
'Open': [0,0,0,0,0,0,0,0,0]})
df2 = pd.DataFrame({'x_green_road': [1,1,1],
'y_green_road': [0,6,12]})
df1['point'] = [(x, y) for x,y in zip(df1['x_Now'], df1['y_Now'])]
df2['point'] = [(x, y) for x,y in zip(df2['x_green_road'], df2['y_green_road'])]
df1['closest'] = [closest(x, list(df2['point'])) for x in df1['point']]