在Python中,三个forloop不在整个数据帧中循环

2024-09-30 00:24:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

Activity    SMILES  
0   1.0     CCN1CCCC1CNC(=O)c1cc([N+](=O)[O-])cc(O)c1OC     
1   1.0     O=c1cc(-c2cccs2)oc2ccc(OCCCCCCN3CCC(O)CC3)cc12 
2   1.0     CCCCCCCCCC(=O)N1c2ccc(Cl)cc2N=C(N2CCN(C)CC2)c2...   
3   1.0     CCN1C(=O)c2ccccc2S(=O)c2ccc(C(=O)NCc3ccc4c(c3)...   
5   1.0     FC(F)(F)c1cccc(N2CCN(Cc3cn(-c4ccccc4)c(-c4cccc...   

我想循环遍历它,这样我就得到了以下输出:

Activity    SMILES                                            cluster   cluster set
0   1.0     CCN1CCCC1CNC(=O)c1cc([N+](=O)[O-])cc(O)c1OC         0.0     val
1   1.0     O=c1cc(-c2cccs2)oc2ccc(OCCCCCCN3CCC(O)CC3)cc12      898.0   val
2   1.0     CCCCCCCCCC(=O)N1c2ccc(Cl)cc2N=C(N2CCN(C)CC2)c2...   7.0     val
3   1.0     CCN1C(=O)c2ccccc2S(=O)c2ccc(C(=O)NCc3ccc4c(c3)...   4.0     val
5   1.0     FC(F)(F)c1cccc(N2CCN(Cc3cn(-c4ccccc4)c(-c4cccc...   856.0   val

聚类点存储在元组列表中,名称存储在列表中

cluster_points = [train_points, test_points, validation_points] 
names = ['train', 'test', 'val']

例如,训练点(或测试点或验证点)可以是:

train_points = [(1,2,3), (4,2), (7,8,9,10)]

我想将这两列添加到dataframe中,并尝试了以下循环:

# this loop should be working but it doesn't work
for name, points in zip(name_points,list_points):
    for num, cluster in enumerate(points):
        for molecule in cluster:
            df.loc[molecule,'cluster'] = num
            df.loc[molecule, 'cluster set'] = name

然而,它只填充“val”的数据FRMAE,即使for循环中的“分子”是唯一的数字


Tags: 数据nameinfortrainvalactivitypoints

热门问题