将(原点,目的地,距离)转换为距离矩阵

时间:2017-03-27 02:01:36

标签: python pandas lambda

我有一个包含三列(原点,目的地,距离)的矩阵,我想用Pandas将其转换为原点/目标矩阵,有没有快速的方法(lambda,map)来做这个而不用for循环?< / p>

例如(我拥有的):

a b 10
a c 20
b c 30

我需要什么:

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

1 个答案:

答案 0 :(得分:2)

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

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

enter image description here