小编And*_*zur的帖子

生成元素之间的依赖关系矩阵

我必须建立一个数据框架元素之间的依赖关系矩阵。列“ 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
Run Code Online (Sandbox Code Playgroud)

这是生成上面显示的表的代码

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)
Run Code Online (Sandbox Code Playgroud)

我希望得到下表

    sa1    sa2    sa3    sa4    sa5    ...    sa9  
sa1  -     10      30           123           123
sa2  10     -
sa3  30              - 
sa4                       -
sa5 123                          -
...                                     -
sa9 123                                        -
Run Code Online (Sandbox Code Playgroud)

python algorithm pandas data-science

3
推荐指数
1
解决办法
46
查看次数

标签 统计

algorithm ×1

data-science ×1

pandas ×1

python ×1