首页 > 解决方案 > 在python中创建一个值矩阵

问题描述

我有一个数据集如下

d = {'dist': [100, 200, 200, 400],'id': [1, 2, 3, 4]}

df = pd.DataFrame(data= d)

我想围绕 id 创建一个值矩阵

使用计算:dist(id1) - dist(id2)

null  |  1  |  2  |  3  |  4
1     |  0  | 100 | 100 | 300 
2     |-100 |  0  |  0  | 200
3     |-100 |  0  |  0  | 200
4     |-300 |-200 |-200 | 0

任何建议将不胜感激

标签: pythonnumpymatrixdata-manipulation

解决方案


我不熟悉 numpy,但你可以使用这个稍微复杂的字典理解来创建矩阵,给定现有的数据结构:

matrix = {id: {v: d.get("dist")[i] - d.get("dist")[j] for j, v in enumerate(d.get("id"))} for i, id in enumerate(d.get("id"))}

矩阵的键是列,每列的键是行。您可能可以以更简洁的方式编写此代码,但这是符合您要求的唯一内置答案。


推荐阅读