将 (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)
我有一个包含三列(起点、终点、距离)的矩阵,我想将其转换为 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)