将 (origin, destination, distance) 转换为距离矩阵

Convert (origin, destination, distance) to a distance matrix

我有一个包含三列(起点、终点、距离)的矩阵,我想将其转换为 origin/destination 矩阵 Pandas,有没有快速的方法(lambda,地图)在没有 for 循环的情况下做到这一点?

例如(我有的):

a b 10
a c 20
b c 30

我需要的:

   a  b  c
 a 0  10 20
 b 10 0  30
 c 20 30 0

这是一个选项,首先通过连接原始数据帧值和 origin-destination 交换值来复制数据帧信息,然后执行 pivot

pd.DataFrame(pd.np.concatenate([df.values, df.values[:, [1,0,2]]])).pivot(0,1,2).fillna(0)