2つpandas dataframes d1
およびd2
は次のようになります。
d1
は次のようになります。
output value1 value2 value2
1 100 103 87
1 201 97.5 88.9
1 144 54 85
d2
は次のようになります。
output value1 value2 value2
0 100 103 87
0 201 97.5 88.9
0 144 54 85
0 100 103 87
0 201 97.5 88.9
0 144 54 85
列出力の値は、d1のすべての行で1、d2のすべての行で0です。これはグループ化変数です。 d1とd2の各行の間のユークリッド距離を見つける必要があります(d1またはd2内ではありません)。 d1
にはm
行とd2
にはn
行があり、距離行列にはm
行とn列があります
scipy.spatial.distance.cdist
を使用して:
import scipy
ary = scipy.spatial.distance.cdist(d1.iloc[:,1:], d2.iloc[:,1:], metric='euclidean')
pd.DataFrame(ary)
Out[1274]:
0 1 2 3 4 5
0 0.000000 101.167485 65.886266 0.000000 101.167485 65.886266
1 101.167485 0.000000 71.808495 101.167485 0.000000 71.808495
2 65.886266 71.808495 0.000000 65.886266 71.808495 0.000000