【发布时间】:2020-01-06 17:21:04
【问题描述】:
我必须在数据框的元素之间建立一个依赖矩阵。 's' 列中的每个元素都有一个不同节点的列表(从 1 到 70)和相应的时间('t' 列)。任务是找到所有节点之间的所有依赖关系,并将时间值的总和放入表中。
例如: 节点sa1与以下节点有连接:sa2,sa3(0行),sa3(1行),sa5,sa9(3行)
对于节点 sa2、sa5、sa9 可以直接使用列“t”中的值,因为它们只出现一次。节点 3 出现在两行中,因此我们添加了 't' 值。
我尝试用许多 for 循环来解决它,但我有时间问题,处理数据大约需要 50 分钟,所以需要一些提示如何准备数据进行分析。
正如我刚刚注意到的,只需要计算主对角线上方的元素,主对角线将是 NaN,而主对角线下方的元素只是镜像。
这就是我的输入示例的样子
s t
0 sa1,sa2,sa3 10
1 sa1,sa3 20
2 sa1,sa5,sa9 123
这是生成上述表格的代码
sas = pd.Series(['sa1,sa2,sa3', 'sa1,sa3', 'sa1,sa5,sa9'], name='s')
times = pd.Series([10, 20, 123], name='t')
df = pd.concat([sas, times], axis=1)
我希望得到下表
sa1 sa2 sa3 sa4 sa5 ... sa9
sa1 - 10 30 123 123
sa2 10 -
sa3 30 -
sa4 -
sa5 123 -
... -
sa9 123 -
【问题讨论】:
标签: python pandas algorithm data-science