j18*_*897 6 python scipy euclidean-distance pandas
我有两个熊猫dataframes d1和d2看起来像这些:
d1 好像:
output value1 value2 value2
1 100 103 87
1 201 97.5 88.9
1 144 54 85
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
对于d1中的所有行,列输出的值为1,对于d2中的所有行,列的输出为0.这是一个分组变量.我需要找到d1和d2的每一行之间的欧氏距离(不在d1或d2内).如果d1有m行并且d2有n行,则距离矩阵将具有m行和n列
WeN*_*Ben 15
使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6404 次 |
| 最近记录: |