python - 将(出发地、目的地、距离)转换为距离矩阵

标签 python pandas lambda o-d-matrix

我有一个包含三列(原点、目的地、距离)的矩阵,我想用 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

最佳答案

这里有一个选项,首先通过连接原始数据帧值和起点-目的地交换值来复制数据帧信息,然后进行透视:

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

enter image description here

关于python - 将(出发地、目的地、距离)转换为距离矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43036816/

相关文章:

python - 使用 Django 提供文件下载服务

Python pandas 通过对现有列进行分组来创建额外的数据框列

python - 如何根据条件替换数据框的值

java - byteman 可以在 lambda 上触发规则吗?

python - 使用 Python 删除多个文件名中的数字和空格

python - 使用 Homebrew 软件为 numpy 安装 gfortran

python - pandas .ix 中是否可以有两个条件?

javascript - 为什么使用 lambda 的 String.replace() 比重复调用 RegExp.exec() 的 while 循环慢?

python - 传递给另一个模块时 lambda 函数的范围

python - 尝试使用 django rest 框架运行 django 时没有名为 http_client 的模块错误