我有一个数据帧,我想应用我自己的距离配对。 myDistance需要2个数据帧,使用skelarn pairwise_distance或scipy pdist转换的问题是ndarray。 示例:
df = pd.DataFrame([[1,2,3,3],[2,3,3,4],[4,1,3,2]],columns=['A','B','C','D'])
这将返回:
^{pr2}$然后:
def myDistance(f1,f2):
return f1['A']-f2['A']
myDistance(df.loc[0],df.loc[1])
此操作有效并返回-1。
但事实并非如此,因为pdist将df行视为ndarray
from scipy.spatial.distance import pdist
dist = pdist(df,myDistance)
索引器错误:只有整数、切片(:
)、省略号(...
),新轴(None
)和整数或布尔数组是有效的索引
我想我理解你的问题。您只需要计算dataframe的
A
列上的成对距离。在这种情况下,假设列A
是两个数据帧上的第一列,那么您需要将自定义函数更改为:现在运行:
^{pr2}$结果:
相关问题 更多 >
编程相关推荐