python - 在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
任何建议将不胜感激
解决方案
我不熟悉 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"))}
矩阵的键是列,每列的键是行。您可能可以以更简洁的方式编写此代码,但这是符合您要求的唯一内置答案。
推荐阅读
- class - 如何在飞镖或颤振中正确创建一个类
- reactjs - 部署阶段出错。在 AWS 代码管道的日志中未发现错误
- kotlin - 仅当 Kotlin Flow 的排放量在给定时间内保持不变时,使 Kotlin Flow 排放量的运营商链是什么?
- r - 在 mlr 中调整超参数不会产生合理的结果?
- c# - B2C 太多自定义策略无法从应用程序链接到
- go - json.Decoder 不适用于通过 unixpacket 发送的较大消息
- javascript - javascript 中的自定义计划器,它从用户那里获取 2 个输入日期并在指定时间内划分预定义任务
- django - 石墨烯订阅错误(没有属性“执行”)
- c# - 具有两个依赖服务的循环依赖
- react-native - react-native 矢量图标动态背景