J'ai deux cadres de données dans pandas contenant des informations sur la localisation des voitures et des arbres.
df1
x y
car
3 216 13
4 218 12
5 217 12
df2
x y
tree
5 253 180
6 241 24
8 217 14
Comment puis-je calculer la distance euclidienne entre chaque voiture et chaque arbre, puis filtrer les distances inférieures à 5, par exemple ? Je voudrais créer un autre cadre de données avec le numéro de la voiture et de l'arbre, et la distance entre les deux (voir ci-dessous).
df3
car tree dist
5 8 2.2
Jusqu'à présent, je peux utiliser
distance = scipy.spatial.distance.cdist(df1, df2, metric='euclidean')
pour obtenir les distances euclidiennes pour tout, mais j'ai du mal à sélectionner les valeurs dont j'ai besoin (c'est-à-dire les distances < 5). Aide appréciée, merci !