Python 如何从另一个数据帧中查找数据帧中点的最近邻

Python 如何从另一个数据帧中查找数据帧中点的最近邻,python,pandas,dataframe,knn,Python,Pandas,Dataframe,Knn,我想从数据帧B中查找数据帧A中所有点的k最近邻。这怎么可能? 似乎sklearn.neights.nearestneights只需要一组数据和一个查询点 比如: 从 我希望数据帧具有多个查询点,而不是[[1,1,1.]] 另外,我希望度量是Mahalanobis,它sklearn.neights.KDTree不接受,而且scipy.spatial.KDTree甚至没有任何度量选项。谢谢@bubble,我需要度量是Mahalanobis。可能会有用;它支持自定义距离非常感谢,但我想确保索引是B中3

我想从数据帧
B
中查找数据帧
A
中所有点的
k
最近邻。这怎么可能? 似乎
sklearn.neights.nearestneights
只需要一组数据和一个查询点

比如:

我希望数据帧具有多个查询点,而不是
[[1,1,1.]]


另外,我希望度量是
Mahalanobis
,它
sklearn.neights.KDTree
不接受,而且
scipy.spatial.KDTree
甚至没有任何度量选项。

谢谢@bubble,我需要度量是Mahalanobis。可能会有用;它支持自定义距离非常感谢,但我想确保索引是B中3个点的索引,它们是A中所有点最近的?
import pandas as pd
from scipy.spatial import KDTree

dataA = pd.DataFrame(pd.np.random.rand(100, 100))
dataB = pd.DataFrame(pd.np.random.rand(100, 100))

kdB = KDTree(dataB.values)
print(kdB.query(dataA.values, k=3)[-1]) # k desired number of neighbors 
#returns indices of 3-neighbors for all rows/points in A
import pandas as pd
from scipy.spatial import KDTree

dataA = pd.DataFrame(pd.np.random.rand(100, 100))
dataB = pd.DataFrame(pd.np.random.rand(100, 100))

kdB = KDTree(dataB.values)
print(kdB.query(dataA.values, k=3)[-1]) # k desired number of neighbors 
#returns indices of 3-neighbors for all rows/points in A