【问题标题】:Convert (origin, destination, distance) to a distance matrix将(起点、终点、距离)转换为距离矩阵
【发布时间】:2017-03-27 02:01:36
【问题描述】:

我有一个包含三列(起点、终点、距离)的矩阵,我想用 Pandas 将其转换为起点/终点矩阵,有没有一种快速的方法(lambda、map)可以在没有 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

【问题讨论】:

    标签: python pandas lambda o-d-matrix


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-19
      • 2019-01-11
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多