使用自己的计算熊猫创建距离矩阵

时间:2019-08-30 14:59:59

标签: pandas

我有一个由> 50个维度组成的数据框。

利用欧几里得距离,我可以计算出距离矩阵:

import pandas as pd
df2=pd.DataFrame({'col1':[1,2,3,4],'col2':[5,6,7,8]})
df2
from scipy.spatial import distance_matrix
dm=pd.DataFrame(distance_matrix(df2.values, df2.values), index=df2.index, columns=df2.index)
dm

我想更加强调col1,所以想使用公式:

sqrt(w1(x1-x2)^2 + w2(y1-y2)^2), w1=0.7, w2=0.3

通读文档,我找不到实现此更改的方法。我对python还是比较陌生,所以想知道如何使用pandas实现它

这有可能创建吗?

1 个答案:

答案 0 :(得分:1)

您可以使用pdist并提供自己的指标公式:

w = (0.7, 0.3)
pd.DataFrame(squareform(pdist(df2.values, lambda u, v: np.sqrt((w*(u-v)**2).sum()))), index=df2.index, columns=df2.index)