【发布时间】:2023-03-12 01:19:01
【问题描述】:
我有一个使用 Python Pandas 的特定查询。
为糟糕的介绍道歉
我有一个这样的 df
CG | T
------
10 | 0.5
21 | 0.2
33 | 0.3
45 | 0.6
我想为 CG 构建所有可能的对比
就像
CG1 || CG2 || T1 || T2 || contrast||
10 || 21 || 0.5 || 0.2 || 0.3 ||
10 || 33 || 0.5 || 0.3 || 0.2 ||
10 || 45 || 0.5 || 0.6 || -0.1 ||
21 || 33 || 0.2 || 0.3 || -0.1 ||
21 || 45|| 0.2 || 0.6 || -0.4 ||
33 || 45 || 0.3 || 0.6 || -0.3 ||
我完成了一个循环,循环遍历所有行并合并回来 - 当数据变大时效率不高(n CG = 800) 我想知道 1) 是否有一种有效的方法来执行这样的循环或/和 2) 将 df 转换为这样的合同矩阵:
--- || 10 || 21 || 33 || 45 ||
10 || 0.5 || 0.3 || 0.2 || -0.1 ||
21 || 0.3 || 0.2 || -0.1 || -0.4 ||
33 || 0.2 || -0.1 || 0.3 || -0.3 ||
45|| -0.1 || -0.4 ||-0.3 || 0.6 ||
我已经阅读了几篇关于高效循环的文章——这个查询的特殊性在于我想在所有组之间建立对比(CG);这就像使用对角矩阵进行分层,并希望使用从对角元素中获取的差异填充所有非对角单元格(因此我的想法是使用矩阵)。
大家干杯!
【问题讨论】:
标签: python loops pandas numpy matrix